Unverified Commit d05e0a30 authored by Mccaskey, Alex's avatar Mccaskey, Alex Committed by GitHub
Browse files

Merge pull request #160 from amirebrahimi/argparse

Add argument parsing [unitaryHACK]
parents 6b2833b1 79e169e5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ configure_file("${CMAKE_SOURCE_DIR}/cmake/qcor_config.hpp.in"
               "${CMAKE_BINARY_DIR}/qcor_config.hpp")
install (FILES ${CMAKE_BINARY_DIR}/qcor_config.hpp DESTINATION include/qcor)

add_subdirectory(tpls)
add_subdirectory(handlers)
add_subdirectory(runtime)
add_subdirectory(tools)
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ add_test(NAME qrt_bell_multi COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT
add_test(NAME qrt_add_3_5 COMMAND ${CMAKE_BINARY_DIR}/qcor -v -c ${CMAKE_CURRENT_SOURCE_DIR}/adder/add_3_5.cpp WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/adder)
add_test(NAME qrt_mixed_language COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/simple/mixed_language.cpp)
add_test(NAME qrt_simple-demo COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/simple/simple-demo.cpp)
add_test(NAME qrt_simple-explicit-parser COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/argparse/simple-explicit-parser.cpp)
add_test(NAME qrt_simple-implicit-parser COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/argparse/simple-implicit-parser.cpp)
add_test(NAME qrt_deuteron_exp_inst COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/deuteron/deuteron_exp_inst.cpp)
add_test(NAME qrt_deuteron_task_initiate COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/deuteron/deuteron_task_initiate.cpp)
add_test(NAME qrt_qaoa_example COMMAND ${CMAKE_BINARY_DIR}/qcor -c ${CMAKE_CURRENT_SOURCE_DIR}/qaoa/qaoa_example.cpp)
+20 −0
Original line number Diff line number Diff line
__qpu__ void f(qreg q) {
  H(q);
  Measure(q);
}

int main(int argc, char** argv) {
    using namespace qcor::arg;
    
    ArgumentParser program(argv[0]);

    program.add_argument("n-qubits")
            .default_value(1)
            .action([](const std::string& value) { return std::stoi(value); });
    program.parse_args(argc, argv);
    auto N = program.get<int>("n-qubits");

    auto q = qalloc(N);
    f(q);
    q.print();
}
 No newline at end of file
+18 −0
Original line number Diff line number Diff line
__qpu__ void f(qreg q) {
  H(q);
  Measure(q);
}

int main(int argc, char** argv) {
    using namespace qcor::arg;

    add_argument("n-qubits")
        .default_value(1)
        .action([](const std::string& value) { return std::stoi(value); });
    parse_args(argc, argv);
    auto N = get_argument<int>("n-qubits");

    auto q = qalloc(N);
    f(q);
    q.print();
}
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -4,7 +4,12 @@ file(GLOB SRC *.cpp)

add_library(${LIBRARY_NAME} SHARED ${SRC})

target_include_directories(${LIBRARY_NAME} PUBLIC . ${CMAKE_BINARY_DIR} ${XACC_ROOT}/include/eigen)
target_include_directories(${LIBRARY_NAME} 
                            PUBLIC 
                            . 
                            ${CMAKE_BINARY_DIR} 
                            ${XACC_ROOT}/include/eigen
                            ${CMAKE_SOURCE_DIR}/tpls/argparse)

target_link_libraries(${LIBRARY_NAME} PUBLIC xacc::xacc xacc::quantum_gate xacc::pauli)

Loading