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:

QPanda::QCircuit

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