MCPcopy Create free account
hub / github.com/OriginQ/QPanda-2 / real_chip_expectation

Method real_chip_expectation

Extensions/PilotOSMachine/QPilotOSMachine.cpp:616–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

614}
615
616double QPilotOSMachine::real_chip_expectation(const QProg &prog, const std::string &hamiltonian, const std::vector<uint32_t> &qubits,
617 const int shot, const int chip_id, const bool is_amend, const bool is_mapping, const bool is_optimization, const std::vector<uint32_t> &specified_block,
618 const std::string& task_describe)
619{
620 try
621 {
622 std::vector<double> result;
623 if (m_machine_type == "Pilot") {
624 CalcConfig config;
625 config.backend_id = chip_id;
626 config.shot = shot;
627 config.task_type = static_cast<int>(TaskType::REAL_EXPECTATION);
628 config.is_amend = is_amend;
629 config.is_mapping = is_mapping;
630 config.is_optimization = is_optimization;
631 config.hamiltonian = hamiltonian;
632 config.ir = convert_qprog_to_originir(const_cast<QProg &>(prog), this);
633 config.task_describe = task_describe;
634 config.specified_block = specified_block;
635 m_pilot_machine->execute_expectation_task(config, qubits, result);
636 if (result.size() > 0) {
637 return result[0];
638 }
639 else {
640 throw std::runtime_error("task execute error!");
641 }
642 }
643 return 0;
644 }
645 catch (const std::exception& e)
646 {
647 PTraceInfo("Catch unknow exception" << e.what());
648 }
649}
650
651std::string QPilotOSMachine::async_real_chip_expectation(const QProg& prog, const std::string &hamiltonian, const std::vector<uint32_t> &qubits,
652 const int shot, const int chip_id, const bool is_amend, const bool is_mapping, const bool is_optimization, const std::vector<uint32_t> &specified_block,

Callers 1

Calls 4

sizeMethod · 0.45
whatMethod · 0.45

Tested by 1