.. index:: pair: class; CPUImplQPUSingleThreadWithOracle .. _doxid-class_c_p_u_impl_q_p_u_single_thread_with_oracle: class CPUImplQPUSingleThreadWithOracle ====================================== .. toctree:: :hidden: .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class CPUImplQPUSingleThreadWithOracle: public :ref:`CPUImplQPUSingleThread` { public: // methods :ref:`QError` :target:`controlOracularGate`( std::vector bits, std::vector controlbits, bool is_dagger, std::string name ); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // fields :ref:`vQParam` :ref:`qubit2stat`; :ref:`vQParam` :ref:`init_qubit2stat`; // methods virtual bool :ref:`qubitMeasure`(size_t qn) = 0; virtual :ref:`QError` :ref:`pMeasure`(:ref:`Qnum`& qnum, :ref:`prob_vec`& mResult) = 0; virtual :ref:`QError` :ref:`initState`(size_t head_rank, size_t rank_size, size_t qubit_num) = 0; virtual :ref:`QError` :ref:`initState`(size_t qubit_num, const :ref:`QStat`& state = {}) = 0; virtual :ref:`QError` :ref:`unitarySingleQubitGate`(size_t qn, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`) = 0; virtual :ref:`QError` :ref:`controlunitarySingleQubitGate`(size_t qn, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`) = 0; virtual :ref:`QError` :ref:`unitaryDoubleQubitGate`(size_t qn_0, size_t qn_1, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`) = 0; virtual :ref:`QError` :ref:`controlunitaryDoubleQubitGate`(size_t qn_0, size_t qn_1, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`) = 0; virtual :ref:`QStat` :ref:`getQState`() = 0; virtual void :ref:`set_random_engine`(:ref:`RandomEngine`* rng); virtual double :ref:`get_random_double`(); virtual :ref:`QError` :ref:`Reset`(size_t qn) = 0; :ref:`QGateParam`& :ref:`findgroup`(size_t qn); bool :ref:`TensorProduct`(:ref:`QGateParam`& qgroup0, :ref:`QGateParam`& qgroup1); virtual :ref:`QError` :ref:`unitarySingleQubitGate`(size_t qn, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`); virtual :ref:`QError` :ref:`controlunitarySingleQubitGate`(size_t qn, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`); virtual :ref:`QError` :ref:`unitaryDoubleQubitGate`(size_t qn_0, size_t qn_1, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`); virtual :ref:`QError` :ref:`controlunitaryDoubleQubitGate`(size_t qn_0, size_t qn_1, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`); virtual :ref:`QError` :ref:`P0`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`P0`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`P1`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`P1`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Hadamard`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Hadamard`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`X`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`X`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Y`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Y`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Z`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`Z`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`T`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`T`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`S`(size_t qn, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`S`(size_t qn, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`U1_GATE`(size_t qn, double theta, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`RX_GATE`(size_t qn, double theta, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`RX_GATE`( size_t qn, double theta, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`RY_GATE`(size_t qn, double theta, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`RY_GATE`( size_t qn, double theta, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`RZ_GATE`(size_t qn, double theta, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`RZ_GATE`( size_t qn, double theta, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`CNOT`(size_t qn_0, size_t qn_1, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`CNOT`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`CR`( size_t qn_0, size_t qn_1, double theta, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`CR`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, double theta, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`CZ`(size_t qn_0, size_t qn_1, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`CZ`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`iSWAP`( size_t qn_0, size_t qn_1, double theta, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`iSWAP`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, double theta, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`iSWAP`(size_t qn_0, size_t qn_1, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`iSWAP`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`SqiSWAP`(size_t qn_0, size_t qn_1, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`SqiSWAP`( size_t qn_0, size_t qn_1, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QError` :ref:`DiagonalGate`(:ref:`Qnum`& vQubit, :ref:`QStat`& matrix, bool isConjugate, double error_rate); virtual :ref:`QError` :ref:`controlDiagonalGate`( :ref:`Qnum`& vQubit, :ref:`QStat`& matrix, :ref:`Qnum`& vControlBit, bool isConjugate, double error_rate ); virtual :ref:`QStat` :ref:`getQState`(); virtual :ref:`QError` :ref:`Reset`(size_t qn); virtual bool :ref:`qubitMeasure`(size_t qn); :ref:`QError` :ref:`pMeasure`(:ref:`Qnum`& qnum, :ref:`prob_tuple`& mResult, int select_max = -1); virtual :ref:`QError` :ref:`pMeasure`(:ref:`Qnum`& qnum, :ref:`prob_vec`& mResult); virtual :ref:`QError` :ref:`initState`(size_t head_rank, size_t rank_size, size_t qubit_num); virtual :ref:`QError` :ref:`initState`(size_t qubit_num, const :ref:`QStat`& state = {});