.. index:: pair: class; DistributedFullAmplitudeEngine .. _doxid-class_distributed_full_amplitude_engine: class DistributedFullAmplitudeEngine ==================================== .. toctree:: :hidden: Overview ~~~~~~~~ Distributed full amplitude engine. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class DistributedFullAmplitudeEngine: public :ref:`QPUImpl` { public: // methods virtual bool :target:`qubitMeasure`(size_t qn); virtual :ref:`QError` :target:`pMeasure`( :ref:`Qnum`& qnum, :ref:`prob_vec`& mResult ); virtual :ref:`QError` :target:`initState`( size_t head_rank, size_t rank_size, size_t qubit_num ); 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:`QStat` :ref:`getQState`(); virtual :ref:`QError` :ref:`Reset`(size_t qn); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // 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; .. _details-class_distributed_full_amplitude_engine: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Distributed full amplitude engine. Methods ------- .. index:: pair: function; unitarySingleQubitGate .. _doxid-class_distributed_full_amplitude_engine_1a6367bec1c13c56aec09ed06db7b39cb2: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QError` unitarySingleQubitGate(size_t qn, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType`) unitary single qubit gate .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - size_t - qubit address * - QStat& - matrix * - bool - state of conjugate * - GateType - gate type .. rubric:: Returns: QError .. index:: pair: function; controlunitarySingleQubitGate .. _doxid-class_distributed_full_amplitude_engine_1a8d758ea0c376ec57d12e88a66ee71f60: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QError` controlunitarySingleQubitGate( size_t qn, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType` ) controlunitary single qubit gate .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - size_t - qubit address * - Qnum& - control qubit addresses * - QStat - & matrix * - bool - state of conjugate * - GateType - gate type .. rubric:: Returns: QError .. index:: pair: function; unitaryDoubleQubitGate .. _doxid-class_distributed_full_amplitude_engine_1a7ac8ba8bfbf9acacb3e9b2d766197781: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QError` unitaryDoubleQubitGate( size_t qn_0, size_t qn_1, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType` ) unitary double qubit gate .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - size_t - first qubit address * - size_t - second qubit address * - QStat& - matrix * - bool - state of conjugate * - GateType - gate type .. rubric:: Returns: QError .. index:: pair: function; controlunitaryDoubleQubitGate .. _doxid-class_distributed_full_amplitude_engine_1acc8d367903a3a8c1f4d01bb11c2a41cf: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QError` controlunitaryDoubleQubitGate( size_t qn_0, size_t qn_1, :ref:`Qnum`& qnum, :ref:`QStat`& matrix, bool isConjugate, :ref:`GateType` ) controlunitary double qubit gate .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - size_t - first qubit address * - size_t - second qubit address * - Qnum& - control qubit addresses * - QStat& - quantum states * - bool - state of conjugate * - GateType - gate type .. rubric:: Returns: QError .. index:: pair: function; getQState .. _doxid-class_distributed_full_amplitude_engine_1af272bb852c94330a581933930215986f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QStat` getQState() get quantum states .. index:: pair: function; Reset .. _doxid-class_distributed_full_amplitude_engine_1a27a91284c53e6bc48edec06756e763e7: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`QError` Reset(size_t qn) reset qubit .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - size_t - qubit address