Loading examples/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ add_qcor_compile_and_exe_test(qrt_qpu_lambdas_in_loop qpu_lambda/deuteron_lambda add_qcor_compile_and_exe_test(qrt_qpu_lambda_deuteron qpu_lambda/deuteron_vqe.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_objfunc qpu_lambda/deuteron_vqe_obj_func.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_hadamard_test ctrl-gates/hadamard_test.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_multiple_calls qpu_lambda/lambda_multiple_bell.cpp) # Arithmetic tests add_qcor_compile_and_exe_test(qrt_qpu_arith_adder arithmetic/simple.cpp) Loading examples/qpu_lambda/lambda_multiple_bell.cpp 0 → 100644 +30 −0 Original line number Diff line number Diff line #include "qcor.hpp" void test_run() { auto x_lambda = qpu_lambda([](qubit q) { X(q); }); auto bell = qpu_lambda( [](qreg q) { H(q[0]); // Call the captured lambda x_lambda.ctrl(q[0], q[1]); Measure(q); }, x_lambda); auto q = qalloc(2); bell(q); q.print(); qcor_expect(q.counts().size() == 2); qcor_expect(q.counts()["00"] > 400); qcor_expect(q.counts()["11"] > 400); // Entangled... qcor_expect(q.counts()["00"] + q.counts()["11"] == 1024); } int main(int argc, char **argv) { set_shots(1024); // Call a function containing qpu_lambda multiple times. test_run(); test_run(); } Loading
examples/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ add_qcor_compile_and_exe_test(qrt_qpu_lambdas_in_loop qpu_lambda/deuteron_lambda add_qcor_compile_and_exe_test(qrt_qpu_lambda_deuteron qpu_lambda/deuteron_vqe.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_objfunc qpu_lambda/deuteron_vqe_obj_func.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_hadamard_test ctrl-gates/hadamard_test.cpp) add_qcor_compile_and_exe_test(qrt_qpu_lambda_multiple_calls qpu_lambda/lambda_multiple_bell.cpp) # Arithmetic tests add_qcor_compile_and_exe_test(qrt_qpu_arith_adder arithmetic/simple.cpp) Loading
examples/qpu_lambda/lambda_multiple_bell.cpp 0 → 100644 +30 −0 Original line number Diff line number Diff line #include "qcor.hpp" void test_run() { auto x_lambda = qpu_lambda([](qubit q) { X(q); }); auto bell = qpu_lambda( [](qreg q) { H(q[0]); // Call the captured lambda x_lambda.ctrl(q[0], q[1]); Measure(q); }, x_lambda); auto q = qalloc(2); bell(q); q.print(); qcor_expect(q.counts().size() == 2); qcor_expect(q.counts()["00"] > 400); qcor_expect(q.counts()["11"] > 400); // Entangled... qcor_expect(q.counts()["00"] + q.counts()["11"] == 1024); } int main(int argc, char **argv) { set_shots(1024); // Call a function containing qpu_lambda multiple times. test_run(); test_run(); }