QuantumCircuit¶
Overview¶
QPanda2 quantum circuit and quantum program. More…
// classes class QGATE_SPACE::AbstractAngleParameter; class QPanda::AbstractClassicalProg; class QPanda::AbstractControlFlowNode; class QPanda::AbstractNodeManager; class QPanda::AbstractQGateNode; class QPanda::AbstractQuantumCircuit; class QPanda::AbstractQuantumMeasure; class QPanda::AbstractQuantumProgram; class QPanda::AbstractQuantumReset; class QPanda::CExpr; class QPanda::CExprFactory; class QPanda::CExprFactoryHelper; class QPanda::ClassicalCondition; class QPanda::ClassicalProg; class QPanda::ClassicalProgFactory; class QPanda::ClassicalProgRegisterAction; class QPanda::HadamardQCircuit; class QPanda::Item; class QPanda::OriginCExpr; class QPanda::OriginCircuit; class QPanda::OriginClassicalProg; class QPanda::OriginItem; class QPanda::OriginProgram; class QPanda::OriginQGate; class QPanda::OriginQIf; class QPanda::OriginQWhile; class QPanda::OriginReset; class QPanda::QCircuit; class QPanda::QGate; template <typename ... Targs> class QGATE_SPACE::QGateFactory; class QPanda::QGateNodeFactory; class QPanda::QIfFactory; class QPanda::QIfProg; class QPanda::QIfRegisterAction; class QPanda::QMeasure; class QPanda::QNode; class QPanda::QNodeDeepCopy; class QPanda::QProg; class QPanda::QReset; class QPanda::QResetFactory; class QPanda::QWhileFactory; class QPanda::QWhileProg; class QPanda::QuantumCircuitFactory; class QGATE_SPACE::QuantumGate; class QPanda::QuantumMeasureFactory; class QPanda::QuantumProgramFactory; // global functions QIfProg QPanda::createIfProg(ClassicalCondition cc, QProg true_node); QIfProg QPanda::createIfProg(ClassicalCondition cc, QProg true_node, QProg false_node); QWhileProg QPanda::createWhileProg(ClassicalCondition cc, QProg true_node); QCircuit QPanda::createEmptyCircuit(); HadamardQCircuit QPanda::createHadamardQCircuit(QVec& pQubitVector); QGate QPanda::I(Qubit* qubit); QGate QPanda::X(Qubit* qubit); QGate QPanda::X1(Qubit* qubit); QGate QPanda::RX(Qubit*, double angle); QGate QPanda::U1(Qubit*, double angle); QGate QPanda::U2(Qubit* qubit, double phi, double lambda); QGate QPanda::U3(Qubit* qubit, double theta, double phi, double lambda); QGate QPanda::Y(Qubit* qubit); QGate QPanda::Y1(Qubit* qubit); QGate QPanda::RY(Qubit*, double angle); QGate QPanda::Z(Qubit* qubit); QGate QPanda::Z1(Qubit* qubit); QGate QPanda::RZ(Qubit*, double angle); QGate QPanda::RPhi(Qubit* qubit, double angle, double phi); QGate QPanda::S(Qubit* qubit); QGate QPanda::T(Qubit*); QGate QPanda::H(Qubit* qubit); QGate QPanda::ECHO(Qubit* qubit); QGate QPanda::BARRIER(Qubit* qubit); QGate QPanda::BARRIER(QVec qubits); QGate QPanda::CNOT(Qubit* control_qubit, Qubit* target_qubit); QGate QPanda::CZ(Qubit* control_qubit, Qubit* target_qubit); QGate QPanda::U4(double alpha, double beta, double gamma, double delta, Qubit*); QGate QPanda::U4(QStat& matrix, Qubit*); QGate QPanda::QDouble(QStat& matrix, Qubit* qubit1, Qubit* qubit2); QGate QPanda::CU(double alpha, double beta, double gamma, double delta, Qubit*, Qubit*); QGate QPanda::CU(QStat& matrix, Qubit*, Qubit*); QGate QPanda::iSWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second, double theta); QGate QPanda::CR(Qubit* control_qubit, Qubit* targit_qubit, double theta); QGate QPanda::SqiSWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second); QGate QPanda::SWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second); QGate QPanda::U4(Qubit*, double alpha, double beta, double gamma, double delta); QGate QPanda::U4(Qubit*, QStat& matrix); QGate QPanda::QDouble(Qubit* qubit1, Qubit* qubit2, QStat& matrix); QGate QPanda::CU(Qubit*, Qubit*, double alpha, double beta, double gamma, double delta); QGate QPanda::CU(Qubit*, Qubit*, QStat& matrix); QGate QPanda::I(int qaddr); QGate QPanda::X(int qaddr); QGate QPanda::X1(int qaddr); QGate QPanda::RX(int qaddr, double angle); QGate QPanda::U1(int qaddr, double angle); QGate QPanda::U2(int qaddr, double phi, double lambda); QGate QPanda::U3(int qaddr, double theta, double phi, double lambda); QGate QPanda::Y(int qaddr); QGate QPanda::Y1(int qaddr); QGate QPanda::RY(int qaddr, double angle); QGate QPanda::Z(int qaddr); QGate QPanda::Z1(int qaddr); QGate QPanda::RZ(int qaddr, double angle); QGate QPanda::RPhi(int qaddr, double angle, double phi); QGate QPanda::S(int qaddr); QGate QPanda::T(int qaddr); QGate QPanda::H(int qaddr); QGate QPanda::ECHO(int qaddr); QGate QPanda::BARRIER(int qaddr); QGate QPanda::BARRIER(std::vector<int> qaddrs); QGate QPanda::CNOT(int control_qaddr, int target_qaddr); QGate QPanda::CZ(int control_qaddr, int target_qaddr); QGate QPanda::iSWAP(int control_qaddr, int target_qaddr, double theta); QGate QPanda::CR(int control_qaddr, int target_qaddr, double theta); QGate QPanda::SqiSWAP(int control_qaddr, int target_qaddr); QGate QPanda::SWAP(int control_qaddr, int target_qaddr); QGate QPanda::U4(int qaddr, double alpha, double beta, double gamma, double delta); QGate QPanda::U4(int qaddr, QStat& matrix); QGate QPanda::QDouble(int control_qaddr, int target_qaddr, QStat& matrix); QGate QPanda::CU( int control_qaddr, int target_qaddr, double alpha, double beta, double gamma, double delta ); QGate QPanda::CU(int control_qaddr, int target_qaddr, QStat& matrix); template <typename _Ty> _Ty QPanda::deepCopy(_Ty& node); QProg QPanda::createEmptyQProg(); QReset QPanda::Reset(Qubit*); QReset QPanda::Reset(int qaddr);
Detailed Documentation¶
QPanda2 quantum circuit and quantum program.
Global Functions¶
QIfProg QPanda::createIfProg(ClassicalCondition cc, QProg true_node)
QPanda2 basic interface for creating a QIf program.
Parameters:
| ClassicalCondition | Cbit |
| QProg | QIf true node |
Returns:
QIfProg QIf program
QIfProg QPanda::createIfProg(ClassicalCondition cc, QProg true_node, QProg false_node)
QPanda2 basic interface for creating a QIf program.
Parameters:
| ClassicalCondition | Cbit |
| QProg | QIf true node |
| QProg | QIf false node |
Returns:
QIfProg QIf program
QWhileProg QPanda::createWhileProg(ClassicalCondition cc, QProg true_node)
QPanda2 basic interface for creating a QWhile program.
Parameters:
| ClassicalCondition | Cbit |
| QProg | QWhile true node |
Returns:
QWhileProg QWhile program
QCircuit QPanda::createEmptyCircuit()
QPanda2 basic interface for creating a empty circuit.
Returns:
HadamardQCircuit QPanda::createHadamardQCircuit(QVec& pQubitVector)
Create a hadamard qcircuit.
Parameters:
| QVec& | qubit vector |
Returns:
QPanda::HadamardQCircuit hadamard qcircuit
QGate QPanda::I(Qubit* qubit)
Construct a new I gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::X(Qubit* qubit)
Construct a new quantum X gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::X1(Qubit* qubit)
Construct a new quantum X1 gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RX(Qubit*, double angle)
Construct a new quantum RX gate.
Parameters:
| Qubit* | target qubit |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U1(Qubit*, double angle)
Construct a new quantum U1 gate.
Parameters:
| Qubit* | target qubit |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U2(Qubit* qubit, double phi, double lambda)
Construct a new quantum U2 gate.
Parameters:
| Qubit* | target qubit |
| double | phi |
| double | lambda |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U3(Qubit* qubit, double theta, double phi, double lambda)
Construct a new quantum U3 gate.
Parameters:
| Qubit* | target qubit |
| double | theta |
| double | phi |
| double | lambda |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Y(Qubit* qubit)
Construct a new quantum Y gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Y1(Qubit* qubit)
Construct a new quantum Y1 gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RY(Qubit*, double angle)
Construct a new quantum RY gate.
Parameters:
| Qubit* | target qubit |
| double | angle target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Z(Qubit* qubit)
Construct a new quantum Z gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Z1(Qubit* qubit)
Construct a new quantum Z1 gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RZ(Qubit*, double angle)
Construct a new quantum RZ gate.
Parameters:
| Qubit* | target qubit |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RPhi(Qubit* qubit, double angle, double phi)
Construct a new quantum RZPhi gate.
Parameters:
| Qubit* | target qubit |
| double | angle |
| double | phi |
Returns:
QPanda::QGate quantum gate
QGate QPanda::S(Qubit* qubit)
Construct a new quantum S gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::T(Qubit*)
Construct a new quantum T gate.
Parameters:
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::H(Qubit* qubit)
Construct a new quantum H gate.
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::ECHO(Qubit* qubit)
Construct a new quantum ECHO gate; Only for 6 qubits online projects !
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::BARRIER(Qubit* qubit)
Construct a new quantum BARRIER gate; Only for 6 qubits online projects !
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::BARRIER(QVec qubits)
Construct a new quantum BARRIER gate; Only for 6 qubits online projects !
Parameters:
| Qubit* | qubit target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CNOT(Qubit* control_qubit, Qubit* target_qubit)
Construct a new quantum CNOT gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CZ(Qubit* control_qubit, Qubit* target_qubit)
Construct a new quantum CZ gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(double alpha, double beta, double gamma, double delta, Qubit*)
Construct a new quantum U4 gate.
Parameters:
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(QStat& matrix, Qubit*)
Construct a new quantum U4 gate.
Parameters:
| QStat& | matrix |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::QDouble(QStat& matrix, Qubit* qubit1, Qubit* qubit2)
Construct a new quantum QDouble gate.
Parameters:
| QStat | matrix |
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU(double alpha, double beta, double gamma, double delta, Qubit*, Qubit*)
Construct a new quantum CU gate.
Parameters:
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU(QStat& matrix, Qubit*, Qubit*)
Construct a new quantum CU gate.
Parameters:
| QStat | & matrix |
| Qubit* | target qubit |
| Qubit* | control qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::iSWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second, double theta)
Construct a new quantum iSWAP gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
| double | theta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CR(Qubit* control_qubit, Qubit* targit_qubit, double theta)
Construct a new quantum CR gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | targit qubit |
| double | theta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::SqiSWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second)
Construct a new quantum SqiSWAP gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::SWAP(Qubit* targitBit_fisrt, Qubit* targitBit_second)
Construct a new quantum SWAP gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(Qubit*, double alpha, double beta, double gamma, double delta)
Construct a new quantum U4 gate.
Parameters:
| Qubit* | target qubit |
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(Qubit*, QStat& matrix)
Construct a new quantum U4 gate.
Parameters:
| Qubit* | target qubit |
| QStat& | matrix |
Returns:
QPanda::QGate quantum gate
QGate QPanda::QDouble(Qubit* qubit1, Qubit* qubit2, QStat& matrix)
Construct a new quantum QDouble gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
| QStat | matrix |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU(Qubit*, Qubit*, double alpha, double beta, double gamma, double delta)
Construct a new quantum CU gate.
Parameters:
| Qubit* | control qubit |
| Qubit* | target qubit |
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU(Qubit*, Qubit*, QStat& matrix)
Construct a new quantum CU gate.
Parameters:
| Qubit* | target qubit |
| Qubit* | control qubit |
| QStat | & matrix |
Returns:
QPanda::QGate quantum gate
QGate QPanda::I(int qaddr)
Construct a new I gate.
Construct QGate by Qubit physics addr
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::X(int qaddr)
Construct a new quantum X gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::X1(int qaddr)
Construct a new quantum X1 gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RX(int qaddr, double angle)
Construct a new quantum RX gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U1(int qaddr, double angle)
Construct a new quantum U1 gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U2(int qaddr, double phi, double lambda)
Construct a new quantum U2 gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | phi |
| double | lambda |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U3(int qaddr, double theta, double phi, double lambda)
Construct a new quantum U3 gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | theta |
| double | phi |
| double | lambda |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Y(int qaddr)
Construct a new quantum Y gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Y1(int qaddr)
Construct a new quantum Y1 gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RY(int qaddr, double angle)
Construct a new quantum RY gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | angle target qubit |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Z(int qaddr)
Construct a new quantum Z gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::Z1(int qaddr)
Construct a new quantum Z1 gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RZ(int qaddr, double angle)
Construct a new quantum RZ gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | angle |
Returns:
QPanda::QGate quantum gate
QGate QPanda::RPhi(int qaddr, double angle, double phi)
Construct a new quantum RZPhi gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | angle |
| double | phi |
Returns:
QPanda::QGate quantum gate
QGate QPanda::S(int qaddr)
Construct a new quantum S gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::T(int qaddr)
Construct a new quantum T gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::H(int qaddr)
Construct a new quantum H gate.
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::ECHO(int qaddr)
Construct a new quantum ECHO gate; Only for 6 qubits online projects !
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::BARRIER(int qaddr)
Construct a new quantum BARRIER gate; Only for 6 qubits online projects !
Parameters:
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::BARRIER(std::vector<int> qaddrs)
Construct a new quantum BARRIER gate; Only for 6 qubits online projects !
Parameters:
| std::vector<int> | qaddrs all qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CNOT(int control_qaddr, int target_qaddr)
Construct a new quantum CNOT gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CZ(int control_qaddr, int target_qaddr)
Construct a new quantum CZ gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::iSWAP(int control_qaddr, int target_qaddr, double theta)
Construct a new quantum iSWAP gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
| double | theta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CR(int control_qaddr, int target_qaddr, double theta)
Construct a new quantum CR gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
| double | theta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::SqiSWAP(int control_qaddr, int target_qaddr)
Construct a new quantum SqiSWAP gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::SWAP(int control_qaddr, int target_qaddr)
Construct a new quantum SWAP gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(int qaddr, double alpha, double beta, double gamma, double delta)
Construct a new quantum U4 gate.
Parameters:
| int | qaddr target qubit phy addr |
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::U4(int qaddr, QStat& matrix)
Construct a new quantum U4 gate.
Parameters:
| int | qaddr target qubit phy addr |
| QStat& | matrix |
Returns:
QPanda::QGate quantum gate
QGate QPanda::QDouble(int control_qaddr, int target_qaddr, QStat& matrix)
Construct a new quantum QDouble gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
| QStat | matrix |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU( int control_qaddr, int target_qaddr, double alpha, double beta, double gamma, double delta )
Construct a new quantum CU gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
| double | alpha |
| double | beta |
| double | gamma |
| double | delta |
Returns:
QPanda::QGate quantum gate
QGate QPanda::CU(int control_qaddr, int target_qaddr, QStat& matrix)
Construct a new quantum CU gate.
Parameters:
| int | qaddr control qubit phy addr |
| int | qaddr target qubit phy addr |
| QStat | & matrix |
Returns:
QPanda::QGate quantum gate
template <typename _Ty> _Ty QPanda::deepCopy(_Ty& node)
deep copy interface for classess base on QNode
Parameters:
| _Ty | & node |
Returns:
_Ty
QProg QPanda::createEmptyQProg()
QPanda2 basic interface for creating a empty quantum program.
Returns:
QPanda::QProg quantum program
QReset QPanda::Reset(Qubit*)
QPanda2 basic interface for creating a quantum Reset node.
Parameters:
| Qubit* | Qubit pointer |
Returns:
QPanda::QReset quantum reset node
QReset QPanda::Reset(int qaddr)
QPanda2 basic interface for creating a quantum Reset node.
Parameters:
| int | qubit phy addr |
Returns:
QPanda::QReset quantum reset node