Skip to content

Latest commit

 

History

History
1532 lines (1069 loc) · 53.5 KB

global.rst

File metadata and controls

1532 lines (1069 loc) · 53.5 KB
.. index:: pair: namespace; global

Global Namespace

.. toctree::
        :hidden:

        namespace_Base64.rst
        namespace_Eigen.rst
        namespace_GATEGPU.rst
        namespace_QGATE_SPACE.rst
        namespace_QPanda.rst
        namespace_gpu.rst
        namespace_std.rst
        enum_ComputeBackend.rst
        enum_GateType.rst
        enum_MetadataGateType.rst
        enum_NOISE_MODEL.rst
        enum_NodeType.rst
        enum_OperatorType.rst
        enum_Operatortype.rst
        enum_QError.rst
        struct_Complex.rst
        struct_QGateParam.rst
        struct_QubitVertice.rst
        class_AbstractComplexTensor.rst
        class_CPUComplexTensor.rst
        class_CPUImplQPUSingleThread.rst
        class_CPUImplQPUSingleThreadWithOracle.rst
        class_CPUImplQPUWithOracle.rst
        class_ComplexTensor.rst
        class_Edge.rst
        class_Instructions.rst
        class_MPS_Tensor.rst
        class_MeasureQVMType.rst
        class_NoisyQuantum.rst
        class_QProgMap.rst
        class_QuantumError.rst
        class_QuickBB.rst
        class_RandomEngine19937.rst
        class_TensorEngine.rst
        class_Vertice.rst
        class_VerticeMatrix.rst
        class_originirBaseVisitor.rst
        class_originirLexer.rst
        class_originirListener.rst
        class_originirParser.rst
        class_originirVisitor.rst
        class_qasmBaseVisitor.rst
        class_qasmLexer.rst
        class_qasmListener.rst
        class_qasmParser.rst
        class_qasmVisitor.rst

Overview

.. ref-code-block:: cpp
        :class: doxyrest-overview-code-block


        // namespaces

        namespace :ref:`Base64<doxid-namespace_base64>`;
        namespace :ref:`Eigen<doxid-namespace_eigen>`;
        namespace :ref:`GATEGPU<doxid-namespace_g_a_t_e_g_p_u>`;
        namespace :ref:`QGATE_SPACE<doxid-namespace_q_g_a_t_e___s_p_a_c_e>`;
        namespace :ref:`QPanda<doxid-namespace_q_panda>`;
                namespace :ref:`QPanda::DRAW_TEXT_PIC<doxid-namespace_q_panda_1_1_d_r_a_w___t_e_x_t___p_i_c>`;
                namespace :ref:`QPanda::Variational<doxid-namespace_q_panda_1_1_variational>`;
        namespace :ref:`gpu<doxid-namespacegpu>`;
        namespace :ref:`std<doxid-namespacestd>`;

        // typedefs

        typedef std::map<std::string, std::map<std::string, uint32_t>> :target:`config_map<doxid-instructions_8h_1a55d4d0d6f7920946e3cd55c30e9496ed>`;
        typedef double :target:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>`;
        typedef std::complex<:ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>`> :target:`qcomplex_t<doxid-_q_panda_namespace_8h_1a71506c06f9e4329b5ecaba7a6473a661>`;
        typedef std::vector<:ref:`qcomplex_t<doxid-_q_panda_namespace_8h_1a71506c06f9e4329b5ecaba7a6473a661>`> :target:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`;
        typedef std::vector<size_t> :target:`Qnum<doxid-_q_panda_namespace_8h_1ae79dd36dc218ce815071e5a63b7713f7>`;
        typedef std::vector<double> :target:`prob_vec<doxid-_q_panda_namespace_8h_1ac5ad900acfc23913f3100fa747b940c0>`;
        typedef std::unordered_map<std::string, :ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>`> :target:`prob_map<doxid-_q_panda_namespace_8h_1a984c8c48bbaa623e633d6800bf7e2b55>`;
        typedef std::unordered_map<std::string, :ref:`qcomplex_t<doxid-_q_panda_namespace_8h_1a71506c06f9e4329b5ecaba7a6473a661>`> :target:`stat_map<doxid-_q_panda_namespace_8h_1a5b1ec78da541eaa2f329249b544e0488>`;
        typedef std::map<std::string, double> :target:`prob_dict<doxid-_q_panda_namespace_8h_1a0b8487bf3711ffe87477dd745ab418dd>`;
        typedef std::vector<std::pair<size_t, double>> :target:`prob_tuple<doxid-_q_panda_namespace_8h_1ab92b79b1b1a44ee773053c13c7fb5344>`;
        typedef std::shared_ptr<:ref:`QPanda::QNode<doxid-class_q_panda_1_1_q_node>`> :target:`QNodeRef<doxid-_qubit_mapping_8h_1a5cd44073de95edede4a142612af4ae41>`;
        typedef wide_integer::generic_template::uint128_t :target:`uint128_t<doxid-_uinteger_8h_1ab23ac3d00ef1e3d7eb9211efd03de4b7>`;
        typedef wide_integer::generic_template::uint256_t :target:`uint256_t<doxid-_uinteger_8h_1a8cabad6c8ce9a9be1ae043b0fac95305>`;
        typedef wide_integer::generic_template::uint512_t :target:`uint512_t<doxid-_uinteger_8h_1a77bce31435304312e956325954e5b6d2>`;
        typedef size_t :target:`gpu_qsize_t<doxid-_g_p_u_struct_8h_1aa4a2f82378db335373525d1ddc735a61>`;
        typedef float :target:`gpu_qstate_t<doxid-_g_p_u_struct_8h_1a7cb9b1fe2e7d0267ca51a8ecfe7461f7>`;
        typedef std::complex<:ref:`gpu_qstate_t<doxid-_g_p_u_struct_8h_1a7cb9b1fe2e7d0267ca51a8ecfe7461f7>`> :target:`gpu_qcomplex_t<doxid-_g_p_u_struct_8h_1a5427351e226a0fe5f3d9c29058252f43>`;
        typedef std::pair<size_t, double> :target:`gpu_pair<doxid-_g_p_u_struct_8h_1ae6cc32a10a2499f5e108ac025a33f197>`;
        typedef std::vector<:ref:`gpu_pair<doxid-_g_p_u_struct_8h_1ae6cc32a10a2499f5e108ac025a33f197>`> :target:`touple_prob<doxid-_g_p_u_struct_8h_1a6f3c3b9b86a1c5f31c541051760b64fe>`;
        typedef std::vector<double> :target:`vec_prob<doxid-_g_p_u_struct_8h_1a9e7ff63ce19e8c10cc6912f1bbe27d6e>`;
        typedef std::vector<:ref:`gpu_qsize_t<doxid-_g_p_u_struct_8h_1aa4a2f82378db335373525d1ddc735a61>`> :target:`Qnum<doxid-_g_p_u_struct_8h_1a30f8cb6d9e512132464141bcc6f313fd>`;
        typedef Eigen::Matrix<:ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>`, Eigen::Dynamic, 1> :target:`rvector_t<doxid-_m_p_s_tensor_8h_1a0e3ae2c20c3a6f0c2b27dcfe25536bdd>`;
        typedef Eigen::Matrix<:ref:`qcomplex_t<doxid-_q_panda_namespace_8h_1a71506c06f9e4329b5ecaba7a6473a661>`, Eigen::Dynamic, 1> :target:`cvector_t<doxid-_m_p_s_tensor_8h_1a7154a7c56ab0263fd556061c5a87a225>`;
        typedef Eigen::Matrix<:ref:`qcomplex_t<doxid-_q_panda_namespace_8h_1a71506c06f9e4329b5ecaba7a6473a661>`, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> :target:`cmatrix_t<doxid-_m_p_s_tensor_8h_1a7be001f23f22e79d4c8e8fb6ad0a1aee>`;
        typedef std::vector<:ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`> :target:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`;

        typedef bool (*:target:`noise_mode_function<doxid-_noise_model_8h_1a23eefdad48b57ed970997f0938dcc4e3>`)(
                rapidjson::Value &,
                NoiseOp &
                );

        typedef std::vector<:ref:`QGateParam<doxid-struct_q_gate_param>`> :target:`vQParam<doxid-_q_p_u_impl_8h_1a902a178b3747917bdcc89bca8c9ccda5>`;
        typedef size_t :target:`vertex_index_t<doxid-_quick_b_b_8h_1a4c64fe2c1542d68195dfae3b74316c2b>`;
        typedef std::vector<:ref:`vertex_index_t<doxid-_quick_b_b_8h_1a4c64fe2c1542d68195dfae3b74316c2b>`> :target:`adj_arr_t<doxid-_quick_b_b_8h_1a2ee0029834ebe914c20b78588d15cac6>`;
        typedef std::map<:ref:`vertex_index_t<doxid-_quick_b_b_8h_1a4c64fe2c1542d68195dfae3b74316c2b>`, :ref:`adj_arr_t<doxid-_quick_b_b_8h_1a2ee0029834ebe914c20b78588d15cac6>`> :target:`graph_data_t<doxid-_quick_b_b_8h_1a85d3dda5284997d6cf7a47d3aa359798>`;
        typedef float :target:`qdata_t<doxid-_tensor_8h_1a32cbdf9f66e36c2fc6b54cf9e32230d3>`;
        typedef size_t :target:`qsize_t<doxid-_tensor_8h_1a9695bf30eeb2fa028ee7c75690380572>`;
        typedef std::complex<:ref:`qdata_t<doxid-_tensor_8h_1a32cbdf9f66e36c2fc6b54cf9e32230d3>`> :target:`qcomplex_data_t<doxid-_tensor_8h_1a4cadf8bed635e0bf84c11804444d3151>`;
        typedef std::vector<:ref:`qcomplex_data_t<doxid-_tensor_8h_1a4cadf8bed635e0bf84c11804444d3151>`> :target:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`;
        typedef std::vector<std::pair<size_t, bool>> :target:`qprog_sequence_t<doxid-_tensor_engine_8h_1ab1fd320f4cc67d35c6c2d2b6b23c39ec>`;
        typedef std::vector<std::pair<:ref:`qsize_t<doxid-_tensor_8h_1a9695bf30eeb2fa028ee7c75690380572>`, :ref:`qsize_t<doxid-_tensor_8h_1a9695bf30eeb2fa028ee7c75690380572>`>> :target:`qubit_vector_t<doxid-_tensor_node_8h_1af892fbee44ef3346256861d11383f4a1>`;
        typedef std::map<size_t, :ref:`Edge<doxid-class_edge>`> :target:`edge_map_t<doxid-_tensor_node_8h_1aa2ec0dbc2b2371ca27fda6883430e1d5>`;
        typedef std::map<:ref:`qsize_t<doxid-_tensor_8h_1a9695bf30eeb2fa028ee7c75690380572>`, :ref:`Vertice<doxid-class_vertice>`> :target:`vertice_map_t<doxid-_tensor_node_8h_1afc10359c1366160cefe2a9357c1a86b9>`;
        typedef std::vector<:ref:`vertice_map_t<doxid-_tensor_node_8h_1afc10359c1366160cefe2a9357c1a86b9>`> :target:`vertice_matrix_t<doxid-_tensor_node_8h_1a061ff6aeab93806ea04a98640129ede3>`;
        typedef struct :ref:`QubitVertice<doxid-struct_qubit_vertice>` :target:`qubit_vertice_t<doxid-_tensor_node_8h_1a7a7a3d1a9a71fab5e9a866e96a30cffa>`;

        // enums

        enum :ref:`ComputeBackend<doxid-_tensor_8h_1af82b80e30eed153c54317ba8ccfb5f00>`;
        enum :ref:`GateType<doxid-_q_global_variable_8h_1a842ca6790f315b3f79faf3cda6d6789c>`;
        enum :ref:`MetadataGateType<doxid-_q_global_variable_8h_1a9a37c80c5a19aef6f365af1f5dc1f766>`;
        enum :ref:`NOISE_MODEL<doxid-_noise_model_8h_1a4e433c5ef943716bf3d7b430a596f8a0>`;
        enum :ref:`NodeType<doxid-_q_global_variable_8h_1acac9cbaeea226ed297804c012dc12b16>`;
        enum :ref:`OperatorType<doxid-_q_global_variable_8h_1a6a02b2d1d62293b20242e3dcfbdd0117>`;
        enum :ref:`Operatortype<doxid-_q_global_variable_8h_1aac90bf8209b1a1a01eb17974a1311649>`;
        enum :ref:`QError<doxid-_q_error_8h_1af306abe1caf901637ac7f16626512874>`;

        // structs

        struct :ref:`Complex<doxid-struct_complex>`;
        struct :ref:`QGateParam<doxid-struct_q_gate_param>`;
        struct :ref:`QubitVertice<doxid-struct_qubit_vertice>`;

        // classes

        class :ref:`AbstractComplexTensor<doxid-class_abstract_complex_tensor>`;
        class :ref:`AbstractDistributedFullAmplitudeEngine<doxid-class_abstract_distributed_full_amplitude_engine>`;
        class :ref:`AbstractQuantumGates<doxid-class_abstract_quantum_gates>`;
        class :ref:`CPUComplexTensor<doxid-class_c_p_u_complex_tensor>`;
        class :ref:`CPUImplQPU<doxid-class_c_p_u_impl_q_p_u>`;
        class :ref:`CPUImplQPUSingleThread<doxid-class_c_p_u_impl_q_p_u_single_thread>`;
        class :ref:`CPUImplQPUSingleThreadWithOracle<doxid-class_c_p_u_impl_q_p_u_single_thread_with_oracle>`;
        class :ref:`CPUImplQPUWithOracle<doxid-class_c_p_u_impl_q_p_u_with_oracle>`;
        class :ref:`ComplexTensor<doxid-class_complex_tensor>`;
        class :ref:`DefaultRandomEngine<doxid-class_default_random_engine>`;
        class :ref:`DeleteUnitQnode<doxid-class_delete_unit_qnode>`;
        class :ref:`DistributedFullAmplitudeEngine<doxid-class_distributed_full_amplitude_engine>`;
        class :ref:`DoubleGateNoiseModeMap<doxid-class_double_gate_noise_mode_map>`;
        class :ref:`Edge<doxid-class_edge>`;
        class :ref:`Instructions<doxid-class_instructions>`;
        class :ref:`MPS_Tensor<doxid-class_m_p_s___tensor>`;
        class :ref:`MeasureQVMType<doxid-class_measure_q_v_m_type>`;
        class :ref:`NoisyCPUImplQPU<doxid-class_noisy_c_p_u_impl_q_p_u>`;
        class :ref:`NoisyQuantum<doxid-class_noisy_quantum>`;
        class :ref:`QPUImpl<doxid-class_q_p_u_impl>`;
        class :ref:`QProgMap<doxid-class_q_prog_map>`;
        class :ref:`QuantumError<doxid-class_quantum_error>`;
        class :ref:`QuickBB<doxid-class_quick_b_b>`;
        class :ref:`RandomEngine<doxid-class_random_engine>`;
        class :ref:`RandomEngine19937<doxid-class_random_engine19937>`;
        class :ref:`ReadLock<doxid-class_read_lock>`;
        class :ref:`SharedMutex<doxid-class_shared_mutex>`;
        class :ref:`SingleGateNoiseModeMap<doxid-class_single_gate_noise_mode_map>`;
        class :ref:`TensorEngine<doxid-class_tensor_engine>`;
        class :ref:`Vertice<doxid-class_vertice>`;
        class :ref:`VerticeMatrix<doxid-class_vertice_matrix>`;
        class :ref:`WriteLock<doxid-class_write_lock>`;
        class :ref:`XC_RandomEngine16807<doxid-class_x_c___random_engine16807>`;
        class :ref:`originirBaseVisitor<doxid-classoriginir_base_visitor>`;
        class :ref:`originirLexer<doxid-classoriginir_lexer>`;
        class :ref:`originirListener<doxid-classoriginir_listener>`;
        class :ref:`originirParser<doxid-classoriginir_parser>`;
        class :ref:`originirVisitor<doxid-classoriginir_visitor>`;
        class :ref:`qasmBaseVisitor<doxid-classqasm_base_visitor>`;
        class :ref:`qasmLexer<doxid-classqasm_lexer>`;
        class :ref:`qasmListener<doxid-classqasm_listener>`;
        class :ref:`qasmParser<doxid-classqasm_parser>`;
        class :ref:`qasmVisitor<doxid-classqasm_visitor>`;

        // global variables

        const :ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>` :ref:`PI<doxid-_q_global_variable_8h_1a4d5c20a533e37f77b0bcc6c5eb160b09>` = 3.14159265358979323846;
        constexpr :ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>` :target:`SQRT2<doxid-_q_global_variable_8h_1aa72a9c39cd34ac99b237647f7795f856>` = 1.4142135623731;
        const :ref:`gpu_qsize_t<doxid-_g_p_u_struct_8h_1aa4a2f82378db335373525d1ddc735a61>` :target:`kThreadDim<doxid-_g_p_u_struct_8h_1aeef7ee927cfb0dc21622a8e9c1fc9738>` = 1024;

        // global functions

        uint32_t :target:`LOAD<doxid-instructions_8h_1a946e393ea315fdb831b240fbe83fa557>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`STORE<doxid-instructions_8h_1ac28df6a68ded267477d4132d2cd9f05d>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`BEQ<doxid-instructions_8h_1a0cbd6349d5dac94ff14ed9e9d82576dc>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t imm
                );

        uint32_t :target:`BNE<doxid-instructions_8h_1a89a9a4d1e23c43e895cdd1a6effa3d09>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t imm
                );

        uint32_t :target:`BLT<doxid-instructions_8h_1a378861027bb729421056867f1c299b73>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t imm
                );

        uint32_t :target:`BGT<doxid-instructions_8h_1a556b5fe4555748c7a2299e9c0d2e9193>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t imm
                );

        uint32_t :target:`ADDI<doxid-instructions_8h_1a2d1d8ba34b07b373baa82615b6a4c441>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`ANDI<doxid-instructions_8h_1a45f4fc920771da440dead9f35441a7c2>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`XORI<doxid-instructions_8h_1a08f2126eccc746c4c4540d63359efdb5>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`ORI<doxid-instructions_8h_1a778d3b2ec90d976b55ce1fdcf3043bb2>`(
                uint32_t rs1,
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`ADD<doxid-instructions_8h_1a6ff5921cc2507fa25640f8a7dc1bb64f>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t rd
                );

        uint32_t :target:`AND<doxid-instructions_8h_1a272ba9aa1dbbda7d9a658356479e67eb>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t rd
                );

        uint32_t :target:`XOR<doxid-instructions_8h_1a33a5f1c049b44e3e8621569e75e53291>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t rd
                );

        uint32_t :target:`OR<doxid-instructions_8h_1a7ab1895f7c583461b916a7083ddc6157>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t rd
                );

        uint32_t :target:`QWAITI<doxid-instructions_8h_1a4ed374dcc9de20b8770194313ed5cd19>`(uint32_t imm);

        uint32_t :target:`FMR<doxid-instructions_8h_1a105fdd0468f7014b7e2f9f32793d097e>`(
                uint32_t rs1,
                uint32_t rd
                );

        uint32_t :target:`SMIS<doxid-instructions_8h_1a611e10775c55aab00a0c5ecb05cea8e7>`(
                uint32_t rd,
                uint32_t imm
                );

        uint32_t :target:`QI<doxid-instructions_8h_1aeb80d65149e5a389de36f4d66d70125d>`(
                uint32_t rs1,
                uint32_t rs2,
                uint32_t pi,
                uint32_t opcode1,
                uint32_t opcode2
                );

        uint32_t :target:`MEASURE<doxid-instructions_8h_1a8abbc52ba579bbc9c490a1d979bd6cb4>`(
                uint32_t rs1,
                uint32_t pi
                );

        std::string :target:`_file_name<doxid-_q_panda_namespace_8h_1a5ee6583e59e93d2276d25312f3503746>`(const char* file = "");

        template <typename UnsignedIntegralType>
        std::string :ref:`integerToBinary<doxid-group___utilities_1gaa65528bba400afbe3456b569805c1275>`(
                const UnsignedIntegralType& number,
                int ret_len
                );

        template <typename UnsignedIntegralType>
        std::string :ref:`integerToString<doxid-group___utilities_1ga674c5935aa6e6b7f5fc63dab3b4376c2>`(const UnsignedIntegralType& number);

        template <typename UnsignedIntegralType>
        UnsignedIntegralType :ref:`getDecIndex<doxid-group___utilities_1gae427c07ca7652b1f831ccf1eda056393>`(
                const UnsignedIntegralType& num1,
                const UnsignedIntegralType& num2,
                std::vector<size_t> qvec,
                size_t len
                );

        :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>` :target:`matrix_multiply<doxid-_noise_c_p_u_impl_q_p_u_8h_1a088032038179110cd9540ccf2f6cfc3d>`(
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& matrix_left,
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& matrix_right
                );

        :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>` :target:`matrix_tensor<doxid-_noise_model_8h_1a82f07f65d8f7b9d6814d9c8126cd4b5d>`(
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& matrix_left,
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& matrix_right
                );

        bool :target:`equal<doxid-_noise_model_8h_1a2fcd3d51181ffa3697051397cd4a62bc>`(
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& lhs,
                const :ref:`QStat<doxid-_q_panda_namespace_8h_1aef94fce258d1c9c8e692cf39254aa0ae>`& rhs
                );

        bool :target:`damping_kraus_operator<doxid-_noise_model_8h_1afe0044f9b1b74dd7808c59337cd8f8da>` (
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`dephasing_kraus_operator<doxid-_noise_model_8h_1a95f9961f2457b7a4d4baf4cdc1de1060>` (
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`decoherence_kraus_operator<doxid-_noise_model_8h_1a10a56d0f95c5578dc8d902fbcef62786>` (
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`double_damping_kraus_operator<doxid-_noise_model_8h_1aff1403e30ab6821043c2d6df250b8123>` (
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`double_decoherence_kraus_operator<doxid-_noise_model_8h_1a01c1af1dcffaae3f34653baaa262f7fe>` (
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`pauli_kraus_map<doxid-_noise_model_8h_1a045504bffe3877a5c8694bfee128431d>`(
                rapidjson::Value&,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`decoherence_kraus_operator_p1_p2<doxid-_noise_model_8h_1aa96b30941223d1d9541e5037b8d1c851>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`bitflip_kraus_operator<doxid-_noise_model_8h_1a949bfb1ad80a62d5a40071fec9128103>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`depolarizing_kraus_operator<doxid-_noise_model_8h_1aa354ecc773d9eba253b55c89dbe3eba1>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :ref:`bit_phase_flip_operator<doxid-group___virtual_quantum_processor_1ga387b0f99344a6794da969d23de3a96b0>` (rapidjson::Value& value, :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise);
        bool :ref:`phase_damping_oprator<doxid-group___virtual_quantum_processor_1gaec6e538178b20f1f902fcdf30ff9062d>`(rapidjson::Value& value, :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise);

        bool :target:`double_decoherence_kraus_operator_p1_p2<doxid-_noise_model_8h_1aab737c8bea9726b06445a821c4a20dd7>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`double_bitflip_kraus_operator<doxid-_noise_model_8h_1abfa9d8790dddfa552432d775c86d2600>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :target:`double_depolarizing_kraus_operator<doxid-_noise_model_8h_1ae395fd30ea36d7174f721b8836813033>` (
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        bool :ref:`double_bit_phase_flip_operator<doxid-group___virtual_quantum_processor_1gacc4ff7b27f520f6fb21a41c8848cdc0d>` (rapidjson::Value& value, :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise);
        bool :ref:`double_phase_damping_oprator<doxid-group___virtual_quantum_processor_1gaef3f3a9f7026dc7a790cb2e58448b5ae>`(rapidjson::Value& value, :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise);

        bool :target:`kraus_matrix_oprator<doxid-_noise_model_8h_1a4565d2e7881ac7371bd88f355b171883>`(
                rapidjson::Value& value,
                :ref:`NoiseOp<doxid-_noise_model_8h_1ab2a7591e4959d317081e50c00caad539>`& noise
                );

        double :target:`_default_random_generator<doxid-_random_engine_8h_1a76645e3b89b68e020526bda5352f3d54>`();

        double :target:`random_generator19937<doxid-_random_engine_8h_1a356389f609905c977c32e90691e1e443>`(
                double begine = 0,
                double end = 1
                );

        void :target:`H_Gate<doxid-_quantum_gates_8h_1a33f6afef750f382d1e8df8a851196780>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`T_Gate<doxid-_quantum_gates_8h_1a5f96175b2bb6a8ca8869e35c25eb990b>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`S_Gate<doxid-_quantum_gates_8h_1a7d0422e3b2635c753468283299298770>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`X_Gate<doxid-_quantum_gates_8h_1a309ee2fec720447bc542bfd31da19614>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`Y_Gate<doxid-_quantum_gates_8h_1aaa84cc245e73903282e35811044d59e6>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`Z_Gate<doxid-_quantum_gates_8h_1aa4444e1f7423598e4193c630edb16805>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`X1_Gate<doxid-_quantum_gates_8h_1aa544bc1fa8a9c8218d16d1dd08abc8ea>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`Y1_Gate<doxid-_quantum_gates_8h_1a78f69f80b413d120c4392b5e22828f69>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`Z1_Gate<doxid-_quantum_gates_8h_1a0a13b92011644012b4fbb9e551d303d1>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`RX_Gate<doxid-_quantum_gates_8h_1a7ab9109e48d22b86cabfc2e45520a141>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double angle,
                bool isDagger
                );

        void :target:`RY_Gate<doxid-_quantum_gates_8h_1a7dc2c46a8e176530b17eb14eedc95f34>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double angle,
                bool isDagger
                );

        void :target:`RZ_Gate<doxid-_quantum_gates_8h_1a975b311aecb9aebf80b25e068013c727>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double angle,
                bool isDagger
                );

        void :target:`U1_Gate<doxid-_quantum_gates_8h_1aecff3cfe7855df698fb02f96b7f197a9>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double angle,
                bool isDagger
                );

        void :target:`U2_Gate<doxid-_quantum_gates_8h_1ad1e6a8aab3b6ce22d1f31abba65e7dd4>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double phi,
                double lambda,
                bool isDagger
                );

        void :target:`U3_Gate<doxid-_quantum_gates_8h_1ae8a4f4f2334ca91a60accef7810ec369>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double theta,
                double phi,
                double lambda,
                bool isDagger
                );

        void :target:`U4_Gate<doxid-_quantum_gates_8h_1aa43adf6d8e4ba956ff9874549a1c076c>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double alpha,
                double beta,
                double gamma,
                double delta,
                bool isDagger
                );

        void :target:`CZ_Gate<doxid-_quantum_gates_8h_1a04925e5eb89ea5a7b9678248014cbf4c>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`CNOT_Gate<doxid-_quantum_gates_8h_1a6a2cdb8ffda4aa596afdb48e05620db4>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`ISWAP_Gate<doxid-_quantum_gates_8h_1a70146d0ca23f663c65e8eba3edca84bc>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`SQISWAP_Gate<doxid-_quantum_gates_8h_1a9bc45f6b002cb4df8123d4adeb637ede>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`SWAP_Gate<doxid-_quantum_gates_8h_1a8eba39db111b03c120fd7a152b360733>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        void :target:`CR_Gate<doxid-_quantum_gates_8h_1abc08b433de2e5417f6fcd8124e7f253a>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                double angle,
                bool isDagger
                );

        void :target:`TOFFOLI_Gate<doxid-_quantum_gates_8h_1a13c5c96c92bd0759a504143f9341d1d9>`(
                :ref:`qstate_t<doxid-_tensor_8h_1ad438ac446c53cb863102efc403f33f84>`& gate_tensor,
                bool isDagger
                );

        DLLEXPORT :ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* :ref:`initialize<doxid-_chemi_q_i_f_c_8h_1a54f4eda15dd20e82919fcc100fb101b1>`(char* dir);
        DLLEXPORT void :ref:`finalize<doxid-_chemi_q_i_f_c_8h_1a35c742ebb04759d05160c183573ab4bb>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq);
        DLLEXPORT void :ref:`setMolecule<doxid-_chemi_q_i_f_c_8h_1aff908db723c06f88faaaef4d80526cab>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* molecule);
        DLLEXPORT void :ref:`setMolecules<doxid-_chemi_q_i_f_c_8h_1a62cbe512973d55ce78d1098c69f651b8>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* molecules);
        DLLEXPORT void :ref:`setMultiplicity<doxid-_chemi_q_i_f_c_8h_1afa4616781c758abdd0e310cc583cc306>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int multiplicity);
        DLLEXPORT void :ref:`setCharge<doxid-_chemi_q_i_f_c_8h_1a0937e49cf4c0ac3e114c6c2c449bfe40>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int charge);
        DLLEXPORT void :ref:`setBasis<doxid-_chemi_q_i_f_c_8h_1a39356f40f231e4533f6225413d8b3901>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* basis);
        DLLEXPORT void :ref:`setEqTolerance<doxid-_chemi_q_i_f_c_8h_1a44dc21780dca0c8b323964422b1c0493>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double val);
        DLLEXPORT void :ref:`setTransformType<doxid-_chemi_q_i_f_c_8h_1a57571abf529d58ef4d197eb838a0df97>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type);
        DLLEXPORT void :ref:`setUccType<doxid-_chemi_q_i_f_c_8h_1a345009bff8bc327845abc1717c1714a3>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type);
        DLLEXPORT void :ref:`setOptimizerType<doxid-_chemi_q_i_f_c_8h_1a05337011ecbc3cdaec08d1b03cecfd47>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type);
        DLLEXPORT void :ref:`setOptimizerIterNum<doxid-_chemi_q_i_f_c_8h_1ad864b5c29eacb4a7c6254a7ef20e0cb6>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value);
        DLLEXPORT void :ref:`setOptimizerFuncCallNum<doxid-_chemi_q_i_f_c_8h_1a561c06e5f054902e7cb65a8b242090f8>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value);
        DLLEXPORT void :ref:`setOptimizerXatol<doxid-_chemi_q_i_f_c_8h_1aae3ec08bfa9031ff5a3aee9eebdc1875>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value);
        DLLEXPORT void :ref:`setOptimizerFatol<doxid-_chemi_q_i_f_c_8h_1a2c60296f22a5c3d2b79b194cfc75a2d8>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value);
        DLLEXPORT void :ref:`setLearningRate<doxid-_chemi_q_i_f_c_8h_1aa45474eef8eb830b36ff62efab13f60a>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value);
        DLLEXPORT void :ref:`setEvolutionTime<doxid-_chemi_q_i_f_c_8h_1adb9bce782572809474d8bfb805209336>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value);
        DLLEXPORT void :ref:`setHamiltonianSimulationSlices<doxid-_chemi_q_i_f_c_8h_1a7d5ccdc7d940147460c495a566c85627>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value);
        DLLEXPORT void :ref:`setSaveDataDir<doxid-_chemi_q_i_f_c_8h_1ab3e2454f231223067408305835b4105d>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* dir);
        DLLEXPORT int :ref:`getQubitsNum<doxid-_chemi_q_i_f_c_8h_1a81e94b8cdf104c702a20d2f52eebced7>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq);
        DLLEXPORT bool :ref:`exec<doxid-_chemi_q_i_f_c_8h_1a76ea93400681d101a95281b713f55211>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq);
        const DLLEXPORT char* :ref:`getLastError<doxid-_chemi_q_i_f_c_8h_1a6f7a633eff5c786c3d94002c6b8ed6dc>`(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq);

        // macros

        #define :target:`ANGLE_VAR_BASE<doxid-_json_config_param_8h_1af592bbef89c099f8d0ca85ac99e053b1>`
        #define :target:`COMPENSATE_ANGLE<doxid-_json_config_param_8h_1adff2a0561cde8a1d2c6814483863688b>`
        #define :target:`CONFIG_PATH<doxid-_json_config_param_8h_1a863ab5d791c86f9dfff4c6e90624130c>`
        #define :target:`CONST_GATE<doxid-_c_p_u_impl_q_p_u_8h_1a18005d49ae00702328d036fc06855285>`(NAME)
        #define :target:`CONTROL_CONST_GATE<doxid-_c_p_u_impl_q_p_u_8h_1a6d0815a9698bafe7f2d1687e3287ae16>`(NAME)
        #define :target:`CONTROL_SINGLE_ANGLE_GATE<doxid-_c_p_u_impl_q_p_u_8h_1a68f818200ac956e8ccee01f59d6c3e49>`(NAME)
        #define :target:`DECL_ANGLE_GATE_MATRIX<doxid-_c_p_u_impl_q_p_u_8h_1ad412042fda449c86a58d4be0c1bdb968>`(NAME)
        #define :target:`DECL_GATE_MATRIX<doxid-_c_p_u_impl_q_p_u_8h_1a52269caa683e0718f0d36d007952c9d8>`(NAME)
        #define :target:`DEFAULT_THREAD_CNT<doxid-_thread_pool_8h_1afaec1f11c35702b38040be5ed91dfd5e>`
        #define :target:`DOUBLE_GATE_TIME<doxid-_grid_device_8h_1a7ecbe58a45346d1d72c6a1dd3c349d5f>`
        #define :target:`DoubleGateMatrixSize<doxid-_transform_decomposition_8h_1a786eca5682d042d2a5a9d8c3e967213e>`
        #define :target:`GATE_BARRIER<doxid-_tranform_q_gate_type_string_and_enum_8h_1a6c7e2c067c0520d67bf21365ddff2fc5>`
        #define :target:`GATE_CNOT<doxid-_tranform_q_gate_type_string_and_enum_8h_1aa70918acb12d7206233c9d51e935a2c3>`
        #define :target:`GATE_CPHASE<doxid-_tranform_q_gate_type_string_and_enum_8h_1afa36c891f1f8e486f87b943d5c9b554d>`
        #define :target:`GATE_CU<doxid-_tranform_q_gate_type_string_and_enum_8h_1af3a7f838fedac1e3b5932d4ca94ebdc4>`
        #define :target:`GATE_CZ<doxid-_tranform_q_gate_type_string_and_enum_8h_1ae365f3a56f9bbe6804e508d31088d6b6>`
        #define :target:`GATE_ECHO<doxid-_tranform_q_gate_type_string_and_enum_8h_1a93e7b186e3d6d6701dd57b11e231a5d8>`
        #define :target:`GATE_H<doxid-_tranform_q_gate_type_string_and_enum_8h_1accf1399ed9e119b2ebf1052343a8d900>`
        #define :target:`GATE_I<doxid-_tranform_q_gate_type_string_and_enum_8h_1a658192c84784d8c41556ec2060ee7c1f>`
        #define :target:`GATE_ISWAP<doxid-_tranform_q_gate_type_string_and_enum_8h_1add29a4c4aa0ee58dc2fadc8eef1578c4>`
        #define :target:`GATE_ISWAPTheta<doxid-_tranform_q_gate_type_string_and_enum_8h_1a0b644e94bde80ac69c44defff475bee2>`
        #define :target:`GATE_QDoubleGate<doxid-_tranform_q_gate_type_string_and_enum_8h_1a1c6415c6857039a2d667d820e26669cf>`
        #define :target:`GATE_RPHI<doxid-_tranform_q_gate_type_string_and_enum_8h_1a2ed7e448bba3c78b3c7144893385c426>`
        #define :target:`GATE_RX<doxid-_tranform_q_gate_type_string_and_enum_8h_1ac92a2dfe0627d9dff1d58d0372f4077d>`
        #define :target:`GATE_RY<doxid-_tranform_q_gate_type_string_and_enum_8h_1a84559b227a6bc8186adfe562e3e19d18>`
        #define :target:`GATE_RZ<doxid-_tranform_q_gate_type_string_and_enum_8h_1a48512e139cb1a052fa3415072ee88481>`
        #define :target:`GATE_S<doxid-_tranform_q_gate_type_string_and_enum_8h_1a08d87fe113f166f07f48999cca3ed782>`
        #define :target:`GATE_SQISWAP<doxid-_tranform_q_gate_type_string_and_enum_8h_1aa51ec35406c5c4eaae0663308a70fb1b>`
        #define :target:`GATE_SWAP<doxid-_tranform_q_gate_type_string_and_enum_8h_1ae6d42c357b188bfe0bdda90cc37fbb5d>`
        #define :target:`GATE_T<doxid-_tranform_q_gate_type_string_and_enum_8h_1ad25c2469366ad1f114d81446ccc1ed36>`
        #define :target:`GATE_TYPE_MEASURE<doxid-_noise_model_8h_1a6b86504a58ad7b643150bd14dcef22eb>`
        #define :target:`GATE_TYPE_READOUT<doxid-_noise_model_8h_1a6a266722b48d853ac9923eef94ef0816>`
        #define :target:`GATE_TYPE_RESET<doxid-_noise_model_8h_1a5ac8e272c8a4eabdeb5a35c3494df9d3>`
        #define :target:`GATE_U1<doxid-_tranform_q_gate_type_string_and_enum_8h_1ab1908d026e4a23e1d670a3dd8e527f18>`
        #define :target:`GATE_U2<doxid-_tranform_q_gate_type_string_and_enum_8h_1a154270213218edde8b1eec1d789ffba7>`
        #define :target:`GATE_U3<doxid-_tranform_q_gate_type_string_and_enum_8h_1a6d683e20d2deeb9113624089eda3524d>`
        #define :target:`GATE_U4<doxid-_tranform_q_gate_type_string_and_enum_8h_1a137c1fe302b99579d93ea9694ba7784e>`
        #define :target:`GATE_X<doxid-_tranform_q_gate_type_string_and_enum_8h_1a34f5a4f262106b39200bc9410214bd2e>`
        #define :target:`GATE_X1<doxid-_tranform_q_gate_type_string_and_enum_8h_1ad73c6d04ea4aec14fb0bd5ebe02cd55b>`
        #define :target:`GATE_Y<doxid-_tranform_q_gate_type_string_and_enum_8h_1a21e02e2eb12a12b2dc29222059c8f905>`
        #define :target:`GATE_Y1<doxid-_tranform_q_gate_type_string_and_enum_8h_1a2e16e050b1c22c31c438f0bc0a59501e>`
        #define :target:`GATE_Z<doxid-_tranform_q_gate_type_string_and_enum_8h_1ae4764c59ee9523bedf9b94da3d6afb7d>`
        #define :target:`GATE_Z1<doxid-_tranform_q_gate_type_string_and_enum_8h_1a61252043ca3cf2606a60dc1519ff90f4>`
        #define :target:`HIGH_FREQUENCY_QUBIT<doxid-_json_config_param_8h_1adcfbdc73a733e0cd5784510956e2c68e>`
        #define :target:`INF<doxid-_origin_c_o_b_y_l_a_8h_1a12c2040f25d8e3a7b9e1c2024c618cb6>`
        #define :target:`INF<doxid-_origin_l_b_f_g_s_b_8h_1a12c2040f25d8e3a7b9e1c2024c618cb6>`
        #define :target:`INF<doxid-_origin_s_l_s_q_p_8h_1a12c2040f25d8e3a7b9e1c2024c618cb6>`
        #define :target:`KMETADATA_GATE_TYPE_COUNT<doxid-_transform_decomposition_8h_1a14d296229066432844f3c67b1375898d>`
        #define :target:`MACRO_GET_GATETYPE<doxid-_origin_i_r_to_q_prog_8h_1a9d1e3b75ddfa6d98b095382065226e85>`(name)
        #define :target:`MAX_COMPARE_PRECISION<doxid-_q_stat_matrix_8h_1aaab9ae15c383b59119c5834d77704d26>`
        #define :target:`MAX_LAYER<doxid-_process_on_traversing_8h_1a912d8a5fc768baa70d250f6d8f0cf751>`
        #define :target:`MAX_THREADS<doxid-_thread_pool_8h_1a8b5173357adb02a86c027316e0acdfa0>`
        #define :target:`PI<doxid-_noise_c_p_u_impl_q_p_u_8h_1a598a3330b3c21701223ee0ca14316eca>`
        #define :target:`PI<doxid-_c_p_u_impl_q_p_u_single_thread_8h_1a598a3330b3c21701223ee0ca14316eca>`
        #define :target:`PI<doxid-_c_p_u_impl_q_p_u_8h_1a598a3330b3c21701223ee0ca14316eca>`
        #define :target:`PI<doxid-_prase_expression_str_8h_1a598a3330b3c21701223ee0ca14316eca>`
        #define :target:`PI<doxid-_oracle_8h_1a598a3330b3c21701223ee0ca14316eca>`
        #define :target:`PRINT_TRACE<doxid-_search_space_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :target:`PRINT_TRACE<doxid-_q_p_e_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :target:`PRINT_TRACE<doxid-_grover_algorithm_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :target:`PRINT_TRACE<doxid-_search_data_type_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :target:`PRINT_TRACE<doxid-_quantum_counting_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :target:`PRINT_TRACE<doxid-_oracle_8h_1a31c31bc14c0a859acd22b782f55e38a2>`
        #define :ref:`QCERR<doxid-_q_panda_namespace_8h_1acb29825331db5ae6632fbb0647a72534>`(x)

        #define :target:`QCERR_AND_THROW<doxid-_q_panda_namespace_8h_1aa593575691cacd4f398f17842c52da25>`( \
                std_exception, \
                _Message_ \
                )

        #define :ref:`QCERR_AND_THROW_ERRSTR<doxid-_q_panda_namespace_8h_1aac47299986cc9e801758ad7946bea4b2>`( \
                std_exception, \
                x \
                )

        #define :target:`QCIRCUIT_OPTIMIZER<doxid-_json_config_param_8h_1a90c1173bac3e0c194a52b65b22382c66>`
        #define :target:`QIF_REGISTER<doxid-_control_flow_8h_1a35a941193ad6c93151abfcef3528b3d9>`(className)

        #define :target:`QPANDA_ASSERT<doxid-_q_panda_namespace_8h_1a14cac1e094ac288c788c71afac2ffc4c>`( \
                con, \
                argv \
                )

        #define :target:`QPANDA_BEGIN<doxid-_q_panda_namespace_8h_1a375c0f5e0d6568b83528815afc55ff80>`
        #define :target:`QPANDA_END<doxid-_q_panda_namespace_8h_1a9d806bab2e1c7ce92bcacc6b92a9bc56>`
        #define :target:`QPANDA_MAJOR_VERSION<doxid-_q_panda_version_8h_1a48e2632dfb9270c54aae8fe071ad474e>`
        #define :target:`QPANDA_MINOR_VERSION<doxid-_q_panda_version_8h_1a4098041d07b1dbc91cc2d4604d3ecd1c>`

        #define :target:`QPANDA_OP<doxid-_q_panda_namespace_8h_1aa7eaf0750827df972ee0af8b14e4b0b1>`( \
                con, \
                op \
                )

        #define :target:`QPANDA_PATCH_VERSION<doxid-_q_panda_version_8h_1af34d2ab9691f05843fe2b55e21c40845>`

        #define :target:`QPANDA_RETURN<doxid-_q_panda_namespace_8h_1a6b4c9da880c984086f036b337f9eae29>`( \
                con, \
                value \
                )

        #define :target:`QUBIT_ADJACENT_MATRIX<doxid-_json_config_param_8h_1a5d878ab7b4d9b9dec04e5da21c834d69>`
        #define :target:`QWHILE_REGISTER<doxid-_control_flow_8h_1a2e7197bd17e1381a1b7d3543c885c833>`(className)

        #define :target:`REGISTER_ANGLE_GATE_MATRIX<doxid-_c_p_u_impl_q_p_u_8h_1a687b351bc98ff94af7e6dbe8e2330cab>`( \
                NAME, \
                Nx, \
                Ny, \
                Nz \
                )

        #define :target:`REGISTER_CBIT_NAME_<doxid-_c_bit_factory_8h_1a525e2032447e839948cf7e4e58036a1d>`(classname)
        #define :target:`REGISTER_CEXPR<doxid-_c_expr_factory_8h_1ac10412947dd322dd48a27281c2c905e4>`(classname)
        #define :target:`REGISTER_CLASSICAL_PROGRAM<doxid-_classical_program_8h_1a63cb828b756b7fecd311bb7bf9a7e7f4>`(className)
        #define :target:`REGISTER_CMEM_SIZE_<doxid-_c_mem_factory_8h_1a4242abc25a0eb7e62744e7e57f3ef2ca>`(classname)

        #define :target:`REGISTER_GATE_MATRIX<doxid-_c_p_u_impl_q_p_u_8h_1ad5f4a3bb046db093ac0a53ce2e4c32f9>`( \
                NAME, \
                U00, \
                U01, \
                U10, \
                U11 \
                )

        #define :target:`REGISTER_MEASURE<doxid-_quantum_measure_8h_1ae544a6292807422a6aa83bb4590bea80>`(className)
        #define :target:`REGISTER_PHYSICAL_QUBIT<doxid-_physical_qubit_factory_8h_1ac0fd399f03c12f868397e773537ce30b>`(classname)
        #define :target:`REGISTER_QCIRCUIT<doxid-_q_circuit_8h_1a3e42ff079ec9d8a23f0918a0beb54f17>`(className)
        #define :target:`REGISTER_QPROGRAM<doxid-_q_program_8h_1a10351e486d0664cd0074c0256e23821a>`(className)
        #define :target:`REGISTER_QRES_NAME<doxid-_q_result_factory_8h_1aa32a38eda5b34a5784c80f3fb5e8b2f3>`(classname)
        #define :target:`REGISTER_QUANTUM_MACHINE<doxid-_quantum_machine_factory_8h_1af337fede31e3237363c0a93ae25d4ec1>`(classname)
        #define :target:`REGISTER_QUBIT<doxid-_qubit_factory_8h_1a48daedf3982e615fafd5b51904200304>`(classname)
        #define :target:`REGISTER_QUBIT_POOL_SIZE_<doxid-_qubit_pool_factory_8h_1abefada4c93076db141865fe08b110e39>`(classname)
        #define :target:`REGISTER_RESET<doxid-_q_reset_8h_1a77a508fb5edb4fac1e164e89cf1ade0b>`(className)
        #define :target:`SAFE_DELETE_PTR<doxid-_judge_two_node_iter_is_swappable_8h_1a9ab67f7f66ec2e7a2dc3542cf06a6fb8>`(p)
        #define :target:`SINGLETON_DECLARE<doxid-macro_8h_1a86a90fab08d07cd727c94da9594a1de2>`(Type)
        #define :target:`SINGLETON_IMPLEMENT_EAGER<doxid-macro_8h_1add8c8d20b359e4be7a7451fa1052db63>`(Type)
        #define :target:`SINGLETON_IMPLEMENT_LAZY<doxid-macro_8h_1ad5ff7948e947124a9de03a299399cffd>`(Type)
        #define :target:`SINGLE_ANGLE_GATE<doxid-_c_p_u_impl_q_p_u_8h_1a3ba9b536f4f4be4ddb39870acb88f43a>`(NAME)
        #define :target:`SINGLE_GATE_TIME<doxid-_grid_device_8h_1a3d2e28c7dbe57ee37779ec3ede77ebaa>`
        #define :target:`SQ2<doxid-_c_p_u_impl_q_p_u_single_thread_8h_1a0b19f406e0cc4cbaf7a935f155567869>`
        #define :target:`SQ2<doxid-_c_p_u_impl_q_p_u_8h_1a0b19f406e0cc4cbaf7a935f155567869>`
        #define :target:`SQ2<doxid-_noise_c_p_u_impl_q_p_u_8h_1a0b19f406e0cc4cbaf7a935f155567869>`
        #define :target:`SWAP_TIME<doxid-_grid_device_8h_1acea310a60cd0d3bbd40c1eaf149a3f29>`
        #define :target:`SingleGateMatrixSize<doxid-_transform_decomposition_8h_1a5cc35d85fd0872be5f41ffd4c971f52c>`
        #define :target:`UNDEF_DOUBLE<doxid-_transform_decomposition_8h_1a88c85d3154f2c63a1019a79f203f8f0f>`
        #define :target:`USING_QPANDA<doxid-_q_panda_namespace_8h_1af7466c9c1ed8b95983912dd5449b75f4>`
        #define :target:`VIRTUAL_Z_CONFIG<doxid-_json_config_param_8h_1acf581a6115c010987537a843e5bec8d4>`
        #define :target:`ZeroJudgement<doxid-_transform_decomposition_8h_1ae5cd83615b00885b469014317591e8d8>`
        #define :target:`_DOUBLE_ANGLE_GATE<doxid-_partial_amplitude_graph_8h_1ac4ac74220876e7668927a747d8c4c385>`(NAME)
        #define :target:`_DOUBLE_GATE<doxid-_partial_amplitude_graph_8h_1a25aa5fb0f107d2c3e3b9c6851251e880>`(NAME)
        #define :target:`_SINGLE_ANGLE_GATE<doxid-_partial_amplitude_graph_8h_1ab04bb57d9d2c1c3ad8b126dd3db64bdc>`(NAME)
        #define :target:`_SINGLE_GATE<doxid-_partial_amplitude_graph_8h_1abd4b56edaa9b31f023d2a10e7d66cb62>`(NAME)
        #define :target:`_TRIPLE_GATE<doxid-_partial_amplitude_graph_8h_1a8cbc0d2696af3e70b30079778246f130>`(NAME)
        #define :target:`__FILENAME__<doxid-_q_panda_namespace_8h_1a5fccb4fc71e44089a1b1a77fc76c0b68>`

        #define :target:`const_single_qubit_gate<doxid-_c_p_u_impl_q_p_u_8h_1ad852122396459f511d981c1b0cc8c570>`( \
                GATE_NAME, \
                qn, \
                isConjugate, \
                error_rate \
                )

        #define :target:`control_const_single_qubit_gate<doxid-_c_p_u_impl_q_p_u_8h_1a7388a268e200122bfff00ebbd313a78e>`( \
                GATE_NAME, \
                qn, \
                vControlBit, \
                isConjugate, \
                error_rate \
                )

        #define :target:`control_single_qubit_angle_gate<doxid-_c_p_u_impl_q_p_u_8h_1ac9fa7b2e86c6d084cb527a2838c98018>`( \
                GATE_NAME, \
                qn, \
                theta, \
                vControlBit, \
                isConjugate, \
                error_rate \
                )

        #define :target:`iunit<doxid-_quantum_gate_parameter_8h_1ac1aec01c10b9205cebf2e8efd8e1e029>`

        #define :target:`single_qubit_angle_gate<doxid-_c_p_u_impl_q_p_u_8h_1a3ac2db895d08fa984afb344692cc5b20>`( \
                GATE_NAME, \
                qn, \
                theta, \
                isConjugate, \
                error_rate \
                )

Detailed Documentation

Global Variables

.. index:: pair: variable; PI
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        const :ref:`qstate_type<doxid-_q_panda_namespace_8h_1ad41e917590ba0a7303522998805aaa9f>` PI = 3.14159265358979323846

Square root of two

Global Functions

.. index:: pair: function; integerToBinary
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        template <typename UnsignedIntegralType>
        std::string integerToBinary(
                const UnsignedIntegralType& number,
                int ret_len
                )

Unsigned integer to binary string.

Parameters:

const UnsignedIntegralType & number
int binary string length

Returns:

std::string unsigned integer string

.. index:: pair: function; integerToString
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        template <typename UnsignedIntegralType>
        std::string integerToString(const UnsignedIntegralType& number)

Unsigned integer to binary string.

Parameters:

const UnsignedIntegralType & number

Returns:

std::string unsigned integer string

.. index:: pair: function; getDecIndex
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        template <typename UnsignedIntegralType>
        UnsignedIntegralType getDecIndex(
                const UnsignedIntegralType& num1,
                const UnsignedIntegralType& num2,
                std::vector<size_t> qvec,
                size_t len
                )

Get quantum state dec index in pmeasure.

Parameters:

const UnsignedIntegralType & num1
const UnsignedIntegralType & num2
std::vector<size_t> qvec
size_t binary string length

Returns:

Unsigned Integral Type

.. index:: pair: function; initialize
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT :ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* initialize(char* dir)

Initialize the quantum chemistry calculation.

Parameters:

std::string The dir of the psi4 chemistry calculation package

Returns:

ChemiQ* a ChemiQ object ptr

.. index:: pair: function; finalize
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void finalize(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq)

Finalize the quantum chemistry calculation.

Parameters:

ChemiQ* the ChemiQ object ptr will be finalized
.. index:: pair: function; setMolecule
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setMolecule(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* molecule)

Set the molecular model to calculate.

Parameters:

ChemiQ* the target ChemiQ object ptr
std::string molecule model
.. index:: pair: function; setMolecules
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setMolecules(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* molecules)

Set the molecular model to calculate.

Parameters:

ChemiQ* the target ChemiQ object ptr
char* the molecules ptr
.. index:: pair: function; setMultiplicity
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setMultiplicity(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int multiplicity)

Set the multiplicity of the molecular model.

Parameters:

ChemiQ* the target ChemiQ object ptr
int multiplicity
.. index:: pair: function; setCharge
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setCharge(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int charge)

Set the charge of the molecular model.

Parameters:

ChemiQ* the target ChemiQ object ptr
int charge
.. index:: pair: function; setBasis
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setBasis(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* basis)

Set the calculation basis.

Parameters:

ChemiQ* the target ChemiQ object ptr
std::string basis
.. index:: pair: function; setEqTolerance
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setEqTolerance(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double val)

Set Eq Tolerance.

Parameters:

ChemiQ* the target ChemiQ object ptr
double EqTolerance value
.. index:: pair: function; setTransformType
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setTransformType(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type)

Set the transform type from Fermion operator to Pauli operator.

Parameters:

ChemiQ* the target ChemiQ object ptr
int transform type

See also:

QPanda::TransFormType

.. index:: pair: function; setUccType
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setUccType(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type)

Set the ucc type to contruct the Fermion operator.

Parameters:

ChemiQ* the target ChemiQ object ptr
int ucc type

See also:

QPanda::UccType

.. index:: pair: function; setOptimizerType
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setOptimizerType(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int type)

Set the optimizer type.

Parameters:

ChemiQ* the target ChemiQ object ptr
int optimizer type

See also:

QPanda::OptimizerType

.. index:: pair: function; setOptimizerIterNum
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setOptimizerIterNum(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value)

Set the optimizer iteration number.

Parameters:

ChemiQ* the target ChemiQ object ptr
size_t iteration number
.. index:: pair: function; setOptimizerFuncCallNum
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setOptimizerFuncCallNum(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value)

Set the optimizer function callback number.

Parameters:

ChemiQ* the target ChemiQ object ptr
size_t function callback number
.. index:: pair: function; setOptimizerXatol
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setOptimizerXatol(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value)

Set the optimizer iteration number.

Parameters:

ChemiQ* the target ChemiQ object ptr
size_t iteration number
.. index:: pair: function; setOptimizerFatol
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setOptimizerFatol(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value)

Set the optimizer fatol.It is the Absolute error in func(xopt) between iterations that is acceptable for convergence.

Parameters:

ChemiQ* the target ChemiQ object ptr
double absolute error between func(xopt)
.. index:: pair: function; setLearningRate
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setLearningRate(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value)

Set the learing rate when using Gradient optimizer.

Parameters:

ChemiQ* the target ChemiQ object ptr
double learing rate
.. index:: pair: function; setEvolutionTime
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setEvolutionTime(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, double value)

Set the evolution time when doing hamiltonian simulation.

Parameters:

ChemiQ* the target ChemiQ object ptr
double evolution time
.. index:: pair: function; setHamiltonianSimulationSlices
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setHamiltonianSimulationSlices(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, int value)

Set the hamiltonian simulation slices (e^iAt/n*e^iBt/n)^n, n is the slices.

Parameters:

ChemiQ* the target ChemiQ object ptr
double hamiltonian simulation slices
.. index:: pair: function; setSaveDataDir
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT void setSaveDataDir(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq, char* dir)

Set the directory to save the calculated data. If it's a not exist dir data will not be saved.

Parameters:

ChemiQ* the target ChemiQ object ptr
std::string dir
.. index:: pair: function; getQubitsNum
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT int getQubitsNum(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq)

get qubits num with the above config.

Parameters:

ChemiQ* the target ChemiQ object ptr

Returns:

int -1:means failed.

.. index:: pair: function; exec
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        DLLEXPORT bool exec(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq)

exec molecule calculate.

Parameters:

ChemiQ* the target ChemiQ object ptr

Returns:

bool true:success; false:failed

.. index:: pair: function; getLastError
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        const DLLEXPORT char* getLastError(:ref:`ChemiQ<doxid-class_q_panda_1_1_chemi_q>`* chemiq)

get last error.

Parameters:

ChemiQ* the target ChemiQ object ptr

Returns:

char* last error

Macros

.. index:: pair: define; QCERR
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        #define QCERR(x)

QPanda2 cout error message.

.. index:: pair: define; QCERR_AND_THROW_ERRSTR
.. ref-code-block:: cpp
        :class: doxyrest-title-code-block

        #define QCERR_AND_THROW_ERRSTR(std_exception, x)

output the error string to standard error and throw a standard exception. A standard exception can be of the following types: runtime_error, invalid_argument, range_error, etc