.. index:: pair: class; QPanda::QCloudMachine .. _doxid-class_q_panda_1_1_q_cloud_machine: class QPanda::QCloudMachine =========================== .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class QCloudMachine: public :ref:`QPanda::QVM` { public: // methods void :ref:`init`(std::string token); void :target:`set_compute_api`(std::string url); void :target:`set_inqure_api`(std::string url); void :target:`set_noise_model`( :ref:`NOISE_MODEL` model, const std::vector single_params, const std::vector double_params ); std::map :ref:`noise_measure`( :ref:`QProg`&, int shot, std::string task_name = "Qurator Experiment" ); std::map :ref:`full_amplitude_measure`( :ref:`QProg`&, int shot, std::string task_name = "Qurator Experiment" ); std::map :ref:`full_amplitude_pmeasure`( :ref:`QProg`& prog, :ref:`Qnum` qubit_vec, std::string task_name = "Qurator Experiment" ); std::map`> :ref:`partial_amplitude_pmeasure`( :ref:`QProg`& prog, std::vector amplitude_vec, std::string task_name = "Qurator Experiment" ); :ref:`qcomplex_t` :ref:`single_amplitude_pmeasure`(:ref:`QProg`& prog, std::string amplitude, std::string task_name = "Qurator Experiment"); std::map :ref:`real_chip_measure`( :ref:`QProg`&, int shot, size_t chipid = 0, std::string task_name = "Qurator Experiment" ); std::map :ref:`real_chip_task`( :ref:`QProg`&, int shot, bool mapping_flag, bool circuit_optimization, bool is_vip, size_t chipid = 0 ); std::vector<:ref:`QStat`> :ref:`get_state_tomography_density`(:ref:`QProg`&, int shot, size_t chipid = 0); std::string :ref:`get_result_json`(std::string taskid, :ref:`CLOUD_QMACHINE_TYPE` type); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual :ref:`Qubit`* :ref:`allocateQubitThroughPhyAddress`(size_t) = 0; virtual :ref:`Qubit`* :ref:`allocateQubitThroughVirAddress`(size_t) = 0; virtual void :ref:`init`() = 0; virtual :ref:`QMachineStatus`* :ref:`getStatus`() const = 0; virtual std::map :ref:`directlyRun`(:ref:`QProg`& qProg) = 0; virtual std::map :ref:`runWithConfiguration`(:ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, rapidjson::Document&) = 0; virtual std::map :ref:`runWithConfiguration`(:ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, int) = 0; virtual std::map<:ref:`GateType`, size_t> :ref:`getGateTimeMap`() const = 0; virtual void :ref:`finalize`() = 0; virtual :ref:`QStat` :ref:`getQState`() const = 0; virtual size_t :ref:`getVirtualQubitAddress`(:ref:`Qubit`*) const = 0; virtual bool :ref:`swapQubitPhysicalAddress`(:ref:`Qubit`*, :ref:`Qubit`*) = 0; virtual void :ref:`setConfig`(const :ref:`Configuration`&) = 0; virtual :ref:`Qubit`* :ref:`allocateQubit`() = 0; virtual :ref:`QVec` :ref:`allocateQubits`(size_t) = 0; virtual :ref:`ClassicalCondition` :ref:`allocateCBit`() = 0; virtual :ref:`ClassicalCondition` :ref:`allocateCBit`(size_t) = 0; virtual std::vector<:ref:`ClassicalCondition`> :ref:`allocateCBits`(size_t) = 0; virtual void :ref:`Free_Qubit`(:ref:`Qubit`*) = 0; virtual void :ref:`Free_Qubits`(:ref:`QVec`&) = 0; virtual void :ref:`Free_CBit`(:ref:`ClassicalCondition`&) = 0; virtual void :ref:`Free_CBits`(std::vector<:ref:`ClassicalCondition`>&) = 0; virtual size_t :ref:`getAllocateQubit`() = 0; virtual size_t :ref:`getAllocateCMem`() = 0; virtual void :ref:`setConfigure`(const :ref:`Configuration`&) = 0; virtual :ref:`Qubit`* :ref:`qAlloc`() = 0; virtual :ref:`QVec` :ref:`qAllocMany`(size_t qubit_count) = 0; virtual :ref:`ClassicalCondition` :ref:`cAlloc`() = 0; virtual :ref:`ClassicalCondition` :ref:`cAlloc`(size_t) = 0; virtual std::vector<:ref:`ClassicalCondition`> :ref:`cAllocMany`(size_t) = 0; virtual void :ref:`qFree`(:ref:`Qubit`*) = 0; virtual void :ref:`qFreeAll`(:ref:`QVec`&) = 0; virtual void :ref:`cFree`(:ref:`ClassicalCondition`&) = 0; virtual void :ref:`cFreeAll`(std::vector<:ref:`ClassicalCondition`>&) = 0; virtual size_t :ref:`getAllocateQubitNum`() = 0; virtual size_t :ref:`getAllocateCMemNum`() = 0; virtual void :ref:`initState`(const :ref:`QStat`& state = {}, const :ref:`QVec`& qlist = {}) = 0; virtual size_t :ref:`get_allocate_qubits`(:ref:`QVec`&) = 0; virtual size_t :ref:`get_allocate_cbits`(std::vector<:ref:`ClassicalCondition`>&) = 0; virtual double :ref:`get_expectation`(:ref:`QProg`, const QHamiltonian&, const :ref:`QVec`&) = 0; virtual double :ref:`get_expectation`(:ref:`QProg`, const QHamiltonian&, const :ref:`QVec`&, int) = 0; virtual void :ref:`initState`(const :ref:`QStat`& state = {}, const :ref:`QVec`& qlist = {}); virtual :ref:`Qubit`* :ref:`allocateQubitThroughPhyAddress`(size_t); virtual :ref:`Qubit`* :ref:`allocateQubitThroughVirAddress`(size_t); virtual :ref:`QMachineStatus`* :ref:`getStatus`() const; virtual :ref:`QResult`* :ref:`getResult`(); virtual std::map :ref:`getResultMap`(); virtual void :ref:`finalize`(); virtual std::map :ref:`directlyRun`(:ref:`QProg`& qProg); virtual std::map :ref:`runWithConfiguration`(:ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, rapidjson::Document&); virtual std::map :ref:`runWithConfiguration`(:ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, int); virtual std::map :ref:`runWithConfiguration`(:ref:`QProg`&, std::vector&, int); virtual std::map<:ref:`GateType`, size_t> :ref:`getGateTimeMap`() const; virtual :ref:`QStat` :ref:`getQState`() const; virtual size_t :ref:`getVirtualQubitAddress`(:ref:`Qubit`*) const; virtual bool :ref:`swapQubitPhysicalAddress`(:ref:`Qubit`*, :ref:`Qubit`*); virtual void :ref:`set_random_engine`(:ref:`RandomEngine`* rng); virtual void :ref:`setConfig`(const :ref:`Configuration`& config); virtual :ref:`Qubit`* :ref:`allocateQubit`(); virtual :ref:`QVec` :ref:`allocateQubits`(size_t); virtual :ref:`ClassicalCondition` :ref:`allocateCBit`(); virtual std::vector<:ref:`ClassicalCondition`> :ref:`allocateCBits`(size_t); virtual :ref:`ClassicalCondition` :ref:`allocateCBit`(size_t); virtual size_t :ref:`getAllocateQubit`(); virtual size_t :ref:`getAllocateCMem`(); virtual void :ref:`Free_Qubit`(:ref:`Qubit`*); virtual void :ref:`Free_Qubits`(:ref:`QVec`&); virtual void :ref:`Free_CBit`(:ref:`ClassicalCondition`&); virtual void :ref:`Free_CBits`(std::vector<:ref:`ClassicalCondition`>&); virtual void :ref:`setConfigure`(const :ref:`Configuration`&); virtual :ref:`Qubit`* :ref:`qAlloc`(); virtual :ref:`QVec` :ref:`qAllocMany`(size_t qubit_count); virtual :ref:`ClassicalCondition` :ref:`cAlloc`(); virtual :ref:`ClassicalCondition` :ref:`cAlloc`(size_t); virtual std::vector<:ref:`ClassicalCondition`> :ref:`cAllocMany`(size_t); virtual void :ref:`qFree`(:ref:`Qubit`*); virtual void :ref:`qFreeAll`(:ref:`QVec`&); virtual void :ref:`cFree`(:ref:`ClassicalCondition`&); virtual void :ref:`cFreeAll`(std::vector<:ref:`ClassicalCondition`>&); virtual size_t :ref:`getAllocateQubitNum`(); virtual size_t :ref:`getAllocateCMemNum`(); virtual size_t :ref:`get_allocate_qubits`(:ref:`QVec`&); virtual size_t :ref:`get_allocate_cbits`(std::vector<:ref:`ClassicalCondition`>&); virtual double :ref:`get_expectation`(:ref:`QProg`, const QHamiltonian&, const :ref:`QVec`&); virtual double :ref:`get_expectation`(:ref:`QProg`, const QHamiltonian&, const :ref:`QVec`&, int); .. _details-class_q_panda_1_1_q_cloud_machine: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; init .. _doxid-class_q_panda_1_1_q_cloud_machine_1a3544a8e3d897ae583bf2a1f34034efb2: .. ref-code-block:: cpp :class: doxyrest-title-code-block void init(std::string token) Init the quantum machine environment. use this at the begin .. rubric:: Returns: void .. index:: pair: function; noise_measure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a7760a3c6412f9b37cdc2b1d508897314: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map noise_measure( :ref:`QProg`&, int shot, std::string task_name = "Qurator Experiment" ) run a measure quantum program .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - int& - shot * - std::map - .. rubric:: Returns: measure result .. index:: pair: function; full_amplitude_measure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a1c18bc917b46d97add7eba23f8faaa10: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map full_amplitude_measure( :ref:`QProg`&, int shot, std::string task_name = "Qurator Experiment" ) run a measure quantum program .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - int& - shot * - std::map - .. rubric:: Returns: measure result .. index:: pair: function; full_amplitude_pmeasure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a402a84489c778d58fd9e521a33fd04d8: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map full_amplitude_pmeasure( :ref:`QProg`& prog, :ref:`Qnum` qubit_vec, std::string task_name = "Qurator Experiment" ) run a pmeasure quantum program .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - Qnum - & qubit address vector * - std::map - .. rubric:: Returns: pmeasure result .. index:: pair: function; partial_amplitude_pmeasure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a9b0aa99970c003407ede312e35e9fe34: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map`> partial_amplitude_pmeasure( :ref:`QProg`& prog, std::vector amplitude_vec, std::string task_name = "Qurator Experiment" ) run a pmeasure quantum program with partial amplitude backend .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - std::vector - & amplitude subset * - std::map - .. rubric:: Returns: pmeasure result .. index:: pair: function; single_amplitude_pmeasure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a5aa5a65e1d212080bfa199293a1be130: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`qcomplex_t` single_amplitude_pmeasure( :ref:`QProg`& prog, std::string amplitude, std::string task_name = "Qurator Experiment" ) run a pmeasure quantum program with single amplitude backend .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - std::string - amplitude * - qcomplex_t - .. rubric:: Returns: pmeasure result .. index:: pair: function; real_chip_measure .. _doxid-class_q_panda_1_1_q_cloud_machine_1a8adc86c4b49fa08f668f1107a2a7bb0e: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map real_chip_measure( :ref:`QProg`&, int shot, size_t chipid = 0, std::string task_name = "Qurator Experiment" ) run a measure quantum program .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - int& - shot * - std::map - .. rubric:: Returns: measure result .. index:: pair: function; real_chip_task .. _doxid-class_q_panda_1_1_q_cloud_machine_1a7705475bdf440a43a07c7258ec28ab06: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::map real_chip_task( :ref:`QProg`&, int shot, bool mapping_flag, bool circuit_optimization, bool is_vip, size_t chipid = 0 ) run a measure quantum program .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - int& - shot * - std::map - .. rubric:: Returns: measure result .. index:: pair: function; get_state_tomography_density .. _doxid-class_q_panda_1_1_q_cloud_machine_1aa47e1e5e32624ceb6c42acfc3012c0d1: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::vector<:ref:`QStat`> get_state_tomography_density(:ref:`QProg`&, int shot, size_t chipid = 0) get real chip qst matrix .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - the reference to a quantum program * - int& - shot * - QStat - matrix .. rubric:: Returns: matrix .. index:: pair: function; get_result_json .. _doxid-class_q_panda_1_1_q_cloud_machine_1a32e95a44728a06c2aa2c24a17e31845c: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::string get_result_json(std::string taskid, :ref:`CLOUD_QMACHINE_TYPE` type) get task result .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - std::string - taskid * - CLOUD_QMACHINE_TYPE - type * - std::string& - empty taskid .. rubric:: Returns: string