.. index:: pair: class; QPanda::NoiseQVM .. _doxid-class_q_panda_1_1_noise_q_v_m: class QPanda::NoiseQVM ====================== .. toctree:: :hidden: Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class NoiseQVM: public :ref:`QPanda::QVM` { public: // methods virtual void :ref:`init`(); void :target:`init`(rapidjson::Document&); 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 :target:`runWithConfiguration`( :ref:`QProg`& prog, std::vector&, int ); virtual std::map :ref:`directlyRun`(:ref:`QProg`& qProg); virtual void :target:`run`(:ref:`QProg`& prog); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double prob ); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double prob, const :ref:`QVec`& qubits ); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double prob, const std::vector<:ref:`QVec`>& qubits ); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double T1, double T2, double t_gate ); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double T1, double T2, double t_gate, const :ref:`QVec`& qubits ); void :target:`set_noise_model`( const :ref:`NOISE_MODEL`& model, const :ref:`GateType`& type, double T1, double T2, double t_gate, const std::vector<:ref:`QVec`>& qubits ); void :target:`set_measure_error`( const :ref:`NOISE_MODEL`& model, double prob, const :ref:`QVec`& qubits = {} ); void :target:`set_measure_error`( const :ref:`NOISE_MODEL`& model, double T1, double T2, double t_gate, const :ref:`QVec`& qubits = {} ); void :target:`set_mixed_unitary_error`( const :ref:`GateType`& type, const std::vector<:ref:`QStat`>& unitary_matrices, const std::vector& probs ); void :target:`set_mixed_unitary_error`( const :ref:`GateType`& type, const std::vector<:ref:`QStat`>& unitary_matrices, const std::vector& probs, const :ref:`QVec`& qubits ); void :target:`set_mixed_unitary_error`( const :ref:`GateType`& type, const std::vector<:ref:`QStat`>& unitary_matrices, const std::vector& probs, const std::vector<:ref:`QVec`>& qubits ); void :target:`set_reset_error`( double p0, double p1, const :ref:`QVec`& qubits = {} ); void :target:`set_readout_error`( const std::vector>& probs_list, const :ref:`QVec`& qubits = {} ); void :ref:`set_rotation_error`(double error); }; 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_noise_q_v_m: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; init .. _doxid-class_q_panda_1_1_noise_q_v_m_1a46b2fc848827943ea96124536ffa4c74: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void init() init .. rubric:: Returns: void .. index:: pair: function; runWithConfiguration .. _doxid-class_q_panda_1_1_noise_q_v_m_1a5aa290e2ecd98bce296a84b670856bf1: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::map runWithConfiguration( :ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, rapidjson::Document& ) runWithConfiguration .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - quantum program * - std::vector& - * - rapidjson::Document& - .. rubric:: Returns: std::map .. index:: pair: function; runWithConfiguration .. _doxid-class_q_panda_1_1_noise_q_v_m_1a47bd3329930f053b06a2c0c1510f9fbc: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::map runWithConfiguration( :ref:`QProg`&, std::vector<:ref:`ClassicalCondition`>&, int ) runWithConfiguration .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QProg& - quantum program * - std::vector& - * - int - .. rubric:: Returns: std::map .. index:: pair: function; directlyRun .. _doxid-class_q_panda_1_1_noise_q_v_m_1ae7139fbb84abe1884c339b1e2ffae85d: .. 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; set_rotation_error .. _doxid-class_q_panda_1_1_noise_q_v_m_1a1d5a75aad44fd7fdd33c0842e7f3c2fb: .. ref-code-block:: cpp :class: doxyrest-title-code-block void set_rotation_error(double error) set :ref:`QGate ` rotation angle errors .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - double - rotation angle errors .. rubric:: Returns: void .. rubric:: See also: :ref:`QNode `