Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 8 additions & 5 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@ jobs:
with:
toolchain: ${{ steps.rust_toolchain.outputs.channel }}

- name: Prepare cache dir (linux)
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
mkdir /tmp/ci-cache
chmod 755 /tmp/ci-cache
#TODO: re-enable
#- name: Prepare cache dir (linux)
# if: ${{ matrix.os == 'ubuntu-latest' }}
# run: |
# mkdir /tmp/ci-cache
# chmod 755 /tmp/ci-cache

- uses: quantinuum/hugrverse-env/install-hugrenv-action@main
with:
Expand All @@ -132,6 +133,8 @@ jobs:

# Cache the rust build intermediates
- uses: actions/cache@v5
# TODO: re-enable ubuntu-latest caching
if: ${{ matrix.os != 'ubuntu-latest' }}
with:
path: |
/tmp/ci-cache/selene
Expand Down
9 changes: 5 additions & 4 deletions selene-ext/interfaces/sol_qis/c/include/sol_qis/sol_ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,9 @@ EXPORT void ___rz(uint64_t q, double theta);
EXPORT void ___rp(uint64_t q, double theta, double phi);
EXPORT void ___rz(uint64_t q, double theta);
EXPORT void ___rpp(uint64_t q1, uint64_t q2, double theta, double phi);
// TODO: check if this is included
//EXPORT void ___rxxyyzz(uint64_t q1, uint64_t q2, double alpha, double beta, double gamma);
EXPORT void ___reset(uint64_t q);
EXPORT bool ___measure(uint64_t q);
EXPORT uint64_t ___lazy_measure(uint64_t q);
EXPORT uint64_t ___lazy_measure_leaked(uint64_t q);
EXPORT uint64_t ___future_measure(uint64_t q, uint64_t flags);
EXPORT void ___dec_future_refcount(uint64_t r);
EXPORT void ___inc_future_refcount(uint64_t r);
EXPORT bool ___read_future_bool(uint64_t r);
Expand All @@ -32,4 +29,8 @@ EXPORT uint64_t get_tc(void);
EXPORT void setup(uint64_t time_cursor);
EXPORT uint64_t teardown(void);

// DEPRECATED
EXPORT uint64_t ___lazy_measure(uint64_t q);
EXPORT uint64_t ___lazy_measure_leaked(uint64_t q);

#endif
39 changes: 30 additions & 9 deletions selene-ext/interfaces/sol_qis/c/src/sol_ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <selene/selene.h> // selene_ functions
#include <base_qis/selene_lifetime.h> // selene_instance
#include <base_qis/unwrap.h> // unwrap
#include <base_qis/panic.h> // panic_str

#include "logging.h" // DIAGNOSTIC

Expand Down Expand Up @@ -44,17 +45,22 @@ bool ___measure(uint64_t q) {
DIAGNOSTIC(" returned %s\n", result ? "true" : "false");
return result;
}
uint64_t ___lazy_measure(uint64_t q) {
DIAGNOSTIC("___lazy_measure(%" PRIu64 ")\n", q);
uint64_t reference = unwrap(selene_qubit_lazy_measure(selene_instance, q));
DIAGNOSTIC(" reference: %" PRIu64 "\n", reference);
return reference;
}
uint64_t ___lazy_measure_leaked(uint64_t q) {
DIAGNOSTIC("___lazy_measure_leaked(%" PRIu64 ")\n", q);
uint64_t reference = unwrap(selene_qubit_lazy_measure_leaked(selene_instance, q));
uint64_t ___future_measure(uint64_t q, uint64_t flags) {
DIAGNOSTIC("___future_measure(%" PRIu64 ", %" PRIu64 ")\n", q, flags);
uint64_t reference = 0;
switch(flags){
case 0:
reference = unwrap(selene_qubit_lazy_measure(selene_instance, q));
break;
case 1:
reference = unwrap(selene_qubit_lazy_measure_leaked(selene_instance, q));
break;
default:
panic_str(20000, "___future_measure: invalid flags value (expect 0 or 1)");
}
DIAGNOSTIC(" reference: %" PRIu64 "\n", reference);
return reference;

}
void ___dec_future_refcount(uint64_t r) {
DIAGNOSTIC("___dec_future_refcount(%" PRIu64 ")\n", r);
Expand Down Expand Up @@ -114,3 +120,18 @@ void ___sleep(uint64_t* qubits, uint64_t qubits_len, uint64_t sleep_time) {
unwrap(selene_local_barrier(selene_instance, qubits, qubits_len, sleep_time));
DIAGNOSTIC(" [done]\n");
}

// DEPRECATED: use ___future_measure instead
uint64_t ___lazy_measure(uint64_t q) {
DIAGNOSTIC("___lazy_measure(%" PRIu64 ")\n", q);
uint64_t reference = unwrap(selene_qubit_lazy_measure(selene_instance, q));
DIAGNOSTIC(" reference: %" PRIu64 "\n", reference);
return reference;
}

uint64_t ___lazy_measure_leaked(uint64_t q) {
DIAGNOSTIC("___lazy_measure_leaked(%" PRIu64 ")\n", q);
uint64_t reference = unwrap(selene_qubit_lazy_measure_leaked(selene_instance, q));
DIAGNOSTIC(" reference: %" PRIu64 "\n", reference);
return reference;
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading