.. index:: pair: class; QPanda::IdealQVM .. _doxid-class_q_panda_1_1_ideal_q_v_m: class QPanda::IdealQVM ====================== .. toctree:: :hidden: .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class IdealQVM: public :ref:`QPanda::QVM`, public :ref:`QPanda::IdealMachineInterface` { public: // methods virtual :ref:`prob_tuple` :target:`getProbTupleList`( :ref:`QVec`, int selectMax = -1 ); virtual :ref:`prob_vec` :target:`getProbList`( :ref:`QVec`, int selectMax = -1 ); virtual :ref:`prob_dict` :target:`getProbDict`( :ref:`QVec`, int selectMax = -1 ); virtual :ref:`prob_tuple` :target:`probRunTupleList`( :ref:`QProg`&, :ref:`QVec`, int selectMax = -1 ); virtual :ref:`prob_vec` :target:`probRunList`( :ref:`QProg`&, :ref:`QVec`, int selectMax = -1 ); virtual :ref:`prob_dict` :target:`probRunDict`( :ref:`QProg`&, :ref:`QVec`, int selectMax = -1 ); :ref:`prob_tuple` :target:`probRunTupleList`( :ref:`QProg`&, const std::vector&, int selectMax = -1 ); :ref:`prob_vec` :target:`probRunList`( :ref:`QProg`&, const std::vector&, int selectMax = -1 ); :ref:`prob_dict` :target:`probRunDict`( :ref:`QProg`&, const std::vector&, int selectMax = -1 ); virtual std::map :target:`quickMeasure`( :ref:`QVec`, size_t ); virtual :ref:`QStat` :target:`getQStat`(); virtual :ref:`prob_tuple` :target:`PMeasure`( :ref:`QVec` qubit_vector, int select_max ); virtual :ref:`prob_vec` :target:`PMeasure_no_index`(:ref:`QVec` qubit_vector); :ref:`QStat` :target:`getQState`(); :ref:`prob_tuple` :target:`pMeasure`( :ref:`QVec` qubit_vector, int select_max ); :ref:`prob_vec` :target:`pMeasureNoIndex`(:ref:`QVec` qubit_vector); }; // direct descendants class :ref:`CPUQVM`; class :ref:`CPUSingleThreadQVM`; class :ref:`GPUQVM`; class :ref:`MPSQVM`; 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 :ref:`prob_vec` :ref:`PMeasure_no_index`(:ref:`QVec` qubit_vector) = 0; virtual :ref:`prob_tuple` :ref:`getProbTupleList`(:ref:`QVec`, int) = 0; virtual :ref:`prob_vec` :ref:`getProbList`(:ref:`QVec`, int) = 0; virtual :ref:`prob_dict` :ref:`getProbDict`(:ref:`QVec`, int) = 0; virtual :ref:`prob_tuple` :ref:`probRunTupleList`(:ref:`QProg`&, :ref:`QVec`, int) = 0; virtual :ref:`prob_vec` :ref:`probRunList`(:ref:`QProg`&, :ref:`QVec`, int) = 0; virtual :ref:`prob_dict` :ref:`probRunDict`(:ref:`QProg`&, :ref:`QVec`, int) = 0; virtual std::map :ref:`quickMeasure`(:ref:`QVec`, size_t) = 0; virtual :ref:`prob_tuple` :ref:`PMeasure`(:ref:`QVec` qubit_vector, int select_max) = 0; virtual :ref:`QStat` :ref:`getQStat`() = 0;