.. index:: pair: class; QPanda::QProgBuilder .. _doxid-class_q_panda_1_1_q_prog_builder: class QPanda::QProgBuilder ========================== .. toctree:: :hidden: enum_QPanda_QProgBuilder_GateType.rst Quantum Program Builder. .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class QProgBuilder { public: // enums enum :ref:`GateType`; // construction :target:`QProgBuilder`( :ref:`QuantumMachine`* qm, :ref:`QVec`& qv, std::vector<:ref:`ClassicalCondition`>& cv ); // methods :ref:`QProg` :target:`get_qprog`(); size_t :target:`get_qubits_size`(); size_t :target:`get_cbits_size`(); void :target:`set_define_qgate_function`(const :ref:`DefineQGateContent`& define_qgate); :ref:`DefineQGateContent` :target:`get_define_qgate_function`(const std::string& gate_name); void :target:`alloc_qubit`(int num); void :target:`alloc_cbit`(int num); size_t :target:`add_prog`(); void :target:`insert_subprog`( size_t progid_dst, size_t progid_src ); size_t :target:`add_qgate`( :ref:`GateType` type, std::vector index, std::vector parameters ); size_t :target:`add_qgate_cc`( :ref:`GateType` type, std::vector exprid, std::vector index, std::vector parameters ); size_t :target:`add_measure_literal`( size_t qidx, size_t cidx ); size_t :target:`add_measure_cc`( size_t exprid, size_t cidx ); size_t :target:`add_reset_literal`(size_t qidx); size_t :target:`add_reset_cc`(size_t exprid); size_t :target:`add_barrier_literal`( size_t exprid, :ref:`QVec` qv ); size_t :target:`add_barrier_cc`( size_t exprid, :ref:`QVec` qv ); size_t :target:`add_expr_stat`(size_t exprid); size_t :target:`make_qif`( size_t exprid, size_t progid ); size_t :target:`make_qifelse`( size_t exprid, size_t progid_true, size_t progid_false ); size_t :target:`make_qwhile`( size_t exprid, size_t progid ); void :target:`delete_prog`(size_t progid); size_t :target:`cc_init_id`(size_t cidx); size_t :target:`cc_init_literal`(double value); size_t :target:`cc_op_cc`( size_t exprid1, size_t exprid2, int op_type ); size_t :target:`cc_op_literal`( size_t exprid1, double literal2, int op_type ); size_t :target:`literal_op_cc`( double literal1, size_t exprid2, int op_type ); size_t :target:`op_cc`( size_t exprid, int op_type ); void :target:`make_dagger`(size_t progid); size_t :target:`make_dagger_new`(size_t progid); void :target:`make_control`( size_t progid, std::vector idx ); size_t :target:`make_control_new`( size_t progid, std::vector idx ); :ref:`QVec` :target:`make_qvec`( std::vector expridx, std::vector idx ); void :target:`make_control_cc`( size_t progid, std::vector expridx, std::vector idx ); size_t :target:`make_control_cc_new`( size_t progid, std::vector expridx, std::vector idx ); static :ref:`GateType` :target:`get_gatetype`(std::string gatename); };