Loading examples/qsim/VqeWithAnsatzCircuit.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ int main(int argc, char **argv) { // Instantiate a VQE workflow with the nlopt optimizer auto workflow = qsim::getWorkflow("vqe", {{"optimizer", optimizer}}); // Result should contain the observable expectation value along Trotter steps. // Result should contain the ground-state energy along with the optimal // parameters. auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); Loading lib/qsim/base/kernel_evaluator.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ public: KernelFunctor(std::shared_ptr<CompositeInstruction> composite) { kernel = composite; q = qalloc(composite->nPhysicalBits()); nbParams = composite->nParameters(); nbParams = composite->nVariables(); } qreg &getQreg() { return q; } size_t nParams() const { return nbParams; } Loading lib/qsim/impls/modules/tests/CMakeLists.txt +9 −4 Original line number Diff line number Diff line link_directories(${XACC_ROOT}/lib) add_executable(TimeSeriesQpeTester TimeSeriesQpeTester.cpp) add_test(NAME qcor_TimeSeriesQpeTester COMMAND TimeSeriesQpeTester) target_include_directories(TimeSeriesQpeTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest ${XACC_ROOT}/include/eigen) link_directories(${XACC_ROOT}/lib) target_link_libraries(TimeSeriesQpeTester ${XACC_ROOT}/lib/libgtest.so ${XACC_ROOT}/lib/libgtest_main.so xacc::xacc xacc::quantum_gate qcor-qsim) target_link_libraries(TimeSeriesQpeTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(TimeSeriesQpeNoiseTester TimeSeriesQpeNoiseTester.cpp) add_test(NAME qcor_TimeSeriesQpeNoiseTester COMMAND TimeSeriesQpeNoiseTester) target_include_directories(TimeSeriesQpeNoiseTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest ${XACC_ROOT}/include/eigen) link_directories(${XACC_ROOT}/lib) target_compile_definitions(TimeSeriesQpeNoiseTester PRIVATE RESOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/resources") target_link_libraries(TimeSeriesQpeNoiseTester ${XACC_ROOT}/lib/libgtest.so ${XACC_ROOT}/lib/libgtest_main.so xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file target_link_libraries(TimeSeriesQpeNoiseTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(VqeWorkflowTester VqeWorkflowTester.cpp) add_test(NAME qcor_VqeWorkflowTester COMMAND VqeWorkflowTester) target_include_directories(VqeWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(VqeWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file lib/qsim/impls/modules/tests/VqeWorkflowTester.cpp 0 → 100644 +37 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include "qcor_qsim.hpp" #include "xacc.hpp" #include <gtest/gtest.h> TEST(VqeWorkflowTest, checkInputComposite) { using namespace qcor; auto observable = 5.907 - 2.1433 * X(0) * X(1) - 2.1433 * Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1); xacc::internal_compiler::qpu = xacc::getAccelerator("qpp"); auto xasm = xacc::getCompiler("xasm"); auto tmp = xasm->compile(R"#(__qpu__ void ansatz(qbit q, double theta) { X(q[0]); exp_i_theta(q, theta, {{"pauli", "X0 Y1 - Y0 X1"}}); } )#"); auto kernel = tmp->getComposites()[0]; auto H = 5.907 - 2.1433 * X(0) * X(1) - 2.143 * Y(0) * Y(1) + 0.21829 * Z(0) - 6.125 * Z(1); auto problemModel = qsim::ModelBuilder::createModel(kernel, H); auto optimizer = createOptimizer("nlopt"); // Instantiate a VQE workflow with the nlopt optimizer auto workflow = qsim::getWorkflow("vqe", {{"optimizer", optimizer}}); auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); std::cout << "Min energy: " << energy << "\n"; EXPECT_NEAR(energy, -1.748, 0.1); } int main(int argc, char **argv) { xacc::Initialize(); ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); xacc::Finalize(); return ret; } No newline at end of file Loading
examples/qsim/VqeWithAnsatzCircuit.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ int main(int argc, char **argv) { // Instantiate a VQE workflow with the nlopt optimizer auto workflow = qsim::getWorkflow("vqe", {{"optimizer", optimizer}}); // Result should contain the observable expectation value along Trotter steps. // Result should contain the ground-state energy along with the optimal // parameters. auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); Loading
lib/qsim/base/kernel_evaluator.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ public: KernelFunctor(std::shared_ptr<CompositeInstruction> composite) { kernel = composite; q = qalloc(composite->nPhysicalBits()); nbParams = composite->nParameters(); nbParams = composite->nVariables(); } qreg &getQreg() { return q; } size_t nParams() const { return nbParams; } Loading
lib/qsim/impls/modules/tests/CMakeLists.txt +9 −4 Original line number Diff line number Diff line link_directories(${XACC_ROOT}/lib) add_executable(TimeSeriesQpeTester TimeSeriesQpeTester.cpp) add_test(NAME qcor_TimeSeriesQpeTester COMMAND TimeSeriesQpeTester) target_include_directories(TimeSeriesQpeTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest ${XACC_ROOT}/include/eigen) link_directories(${XACC_ROOT}/lib) target_link_libraries(TimeSeriesQpeTester ${XACC_ROOT}/lib/libgtest.so ${XACC_ROOT}/lib/libgtest_main.so xacc::xacc xacc::quantum_gate qcor-qsim) target_link_libraries(TimeSeriesQpeTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(TimeSeriesQpeNoiseTester TimeSeriesQpeNoiseTester.cpp) add_test(NAME qcor_TimeSeriesQpeNoiseTester COMMAND TimeSeriesQpeNoiseTester) target_include_directories(TimeSeriesQpeNoiseTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest ${XACC_ROOT}/include/eigen) link_directories(${XACC_ROOT}/lib) target_compile_definitions(TimeSeriesQpeNoiseTester PRIVATE RESOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/resources") target_link_libraries(TimeSeriesQpeNoiseTester ${XACC_ROOT}/lib/libgtest.so ${XACC_ROOT}/lib/libgtest_main.so xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file target_link_libraries(TimeSeriesQpeNoiseTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) add_executable(VqeWorkflowTester VqeWorkflowTester.cpp) add_test(NAME qcor_VqeWorkflowTester COMMAND VqeWorkflowTester) target_include_directories(VqeWorkflowTester PRIVATE ../../ ../../../base ${XACC_ROOT}/include/gtest) target_link_libraries(VqeWorkflowTester ${XACC_TEST_LIBRARIES} xacc::xacc xacc::quantum_gate qcor-qsim) No newline at end of file
lib/qsim/impls/modules/tests/VqeWorkflowTester.cpp 0 → 100644 +37 −0 Original line number Diff line number Diff line #include "qcor.hpp" #include "qcor_qsim.hpp" #include "xacc.hpp" #include <gtest/gtest.h> TEST(VqeWorkflowTest, checkInputComposite) { using namespace qcor; auto observable = 5.907 - 2.1433 * X(0) * X(1) - 2.1433 * Y(0) * Y(1) + .21829 * Z(0) - 6.125 * Z(1); xacc::internal_compiler::qpu = xacc::getAccelerator("qpp"); auto xasm = xacc::getCompiler("xasm"); auto tmp = xasm->compile(R"#(__qpu__ void ansatz(qbit q, double theta) { X(q[0]); exp_i_theta(q, theta, {{"pauli", "X0 Y1 - Y0 X1"}}); } )#"); auto kernel = tmp->getComposites()[0]; auto H = 5.907 - 2.1433 * X(0) * X(1) - 2.143 * Y(0) * Y(1) + 0.21829 * Z(0) - 6.125 * Z(1); auto problemModel = qsim::ModelBuilder::createModel(kernel, H); auto optimizer = createOptimizer("nlopt"); // Instantiate a VQE workflow with the nlopt optimizer auto workflow = qsim::getWorkflow("vqe", {{"optimizer", optimizer}}); auto result = workflow->execute(problemModel); const auto energy = result.get<double>("energy"); std::cout << "Min energy: " << energy << "\n"; EXPECT_NEAR(energy, -1.748, 0.1); } int main(int argc, char **argv) { xacc::Initialize(); ::testing::InitGoogleTest(&argc, argv); auto ret = RUN_ALL_TESTS(); xacc::Finalize(); return ret; } No newline at end of file