.. index:: pair: class; QPanda::PartialAmplitudeQVM .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m: class QPanda::PartialAmplitudeQVM ================================= .. toctree:: :hidden: Overview ~~~~~~~~ Quantum machine for partial amplitude simulation. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class PartialAmplitudeQVM: public :ref:`QPanda::QVM`, private :ref:`QPanda::TraversalInterface` { public: // fields :ref:`PartialAmplitudeGraph` :target:`m_graph_backend`; // methods virtual void :ref:`init`(); virtual std::map :ref:`directlyRun`(:ref:`QProg`& qProg); template void :target:`run`(_Ty& node); :ref:`qcomplex_t` :ref:`PMeasure_bin_index`(std::string); :ref:`qcomplex_t` :ref:`PMeasure_dec_index`(std::string); :ref:`stat_map` :ref:`PMeasure_subset`(const std::vector&); :ref:`prob_dict` :target:`getProbDict`(const :ref:`QVec`&); :ref:`prob_dict` :target:`probRunDict`( :ref:`QProg`& prog, const :ref:`QVec`& ); virtual :ref:`prob_vec` :target:`getProbList`(const :ref:`QVec`&); :ref:`prob_vec` :target:`probRunList`( :ref:`QProg`&, const :ref:`QVec`& ); void :target:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`>, std::shared_ptr<:ref:`QNode`> ); void :target:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`>, std::shared_ptr<:ref:`QNode`> ); }; 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); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); .. _details-class_q_panda_1_1_partial_amplitude_q_v_m: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Quantum machine for partial amplitude simulation. .. rubric:: See also: :ref:`QuantumMachine ` Methods ------- .. index:: pair: function; init .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m_1a0c667c2b0b0dd286dd13997eb0c3f02e: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void init() init .. rubric:: Returns: void .. index:: pair: function; directlyRun .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m_1a2362aa0c0add97f393c86fe2ab5892b7: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::map directlyRun(:ref:`QProg`& qProg) directlyRun .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - quantum program .. rubric:: Returns: std::map .. index:: pair: function; PMeasure_bin_index .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m_1a989022dc215e09f499ec94e423cbdece: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`qcomplex_t` PMeasure_bin_index(std::string) PMeasure by binary index. example: PMeasure_bin_index("0000000000") .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - std::string - binary index .. rubric:: Returns: qstate_type double .. index:: pair: function; PMeasure_dec_index .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m_1a86700e9b959c1f8687b276a2ddb51121: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`qcomplex_t` PMeasure_dec_index(std::string) PMeasure by decimal index. example: PMeasure_dec_index("1") .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - std::string - decimal index .. rubric:: Returns: qstate_type double .. index:: pair: function; PMeasure_subset .. _doxid-class_q_panda_1_1_partial_amplitude_q_v_m_1aa9c4cfa93beb51b440f6ed1f719a3773: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`stat_map` PMeasure_subset(const std::vector&) PMeasure_subset. output example: <0000000110:0.000167552> .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QProg ` - qubits vec * - std::vector - .. rubric:: Returns: prob_map std::map