Core¶
Overview¶
QPanda2 Core Group. More…
// global functions bool QPanda::init(QMachineType type = CPU); void QPanda::finalize(); Qubit* QPanda::qAlloc(); Qubit* QPanda::qAlloc(size_t stQubitAddr); std::map<std::string, bool> QPanda::directlyRun(QProg& qProg); QVec QPanda::qAllocMany(size_t stQubitNumber); ClassicalCondition QPanda::cAlloc(); ClassicalCondition QPanda::cAlloc(size_t stCBitaddr); std::vector<ClassicalCondition> QPanda::cAllocMany(size_t stCBitNumber); void QPanda::cFree(ClassicalCondition&); void QPanda::cFreeAll(std::vector<ClassicalCondition> vCBit); QMachineStatus* QPanda::getstat(); size_t QPanda::getAllocateQubitNum(); prob_tuple QPanda::getProbTupleList(QVec, int selectMax = -1); prob_vec QPanda::getProbList(QVec, int selectMax = -1); prob_dict QPanda::getProbDict(QVec, int selectMax = -1); prob_tuple QPanda::probRunTupleList(QProg&, QVec, int selectMax = -1); prob_vec QPanda::probRunList(QProg&, QVec, int selectMax = -1); prob_dict QPanda::probRunDict(QProg&, QVec, int selectMax = -1); std::map<std::string, size_t> QPanda::runWithConfiguration(QProg&, std::vector<ClassicalCondition>&, int); std::map<std::string, size_t> QPanda::quickMeasure(QVec, int); prob_vec QPanda::accumulateProbability(prob_vec& prob_list); std::map<std::string, size_t> QPanda::quick_measure( QVec qubit_vector, int shots, prob_vec& accumulate_probabilites ); QStat QPanda::getQState(); QuantumMachine* QPanda::initQuantumMachine(QMachineType type = CPU); void QPanda::destroyQuantumMachine(QuantumMachine* qvm); QPanda::QProg QPanda::MeasureAll(QVec, std::vector<ClassicalCondition>); size_t QPanda::getAllocateCMemNum(); prob_tuple QPanda::pMeasure(QVec qubit_vector, int select_max); prob_vec QPanda::pMeasureNoIndex(QVec qubit_vector); QMeasure QPanda::Measure(Qubit*, ClassicalCondition); QMeasure QPanda::Measure(int, int);
Detailed Documentation¶
QPanda2 Core Group.
Global Functions¶
bool QPanda::init(QMachineType type = CPU)
Init the environment.
Use this at the beginning
Parameters:
QMachineType |
Quantum machine type |
Returns:
bool
See also:
void QPanda::finalize()
Finalize the environment.
Use this at the end
Returns:
void
Qubit* QPanda::qAlloc()
Allocate a qubit.
Call init() before you use this
Returns:
void
Qubit* QPanda::qAlloc(size_t stQubitAddr)
Allocate a qubit.
Call init() before you use this
Parameters:
size_t |
set qubit address |
Returns:
void
std::map<std::string, bool> QPanda::directlyRun(QProg& qProg)
Directly run a quantum program.
Parameters:
QProg& |
Quantum program |
Returns:
std::map<std::string, bool> result
QVec QPanda::qAllocMany(size_t stQubitNumber)
Allocate many qubits.
Call init() before you use this
Parameters:
size_t |
set qubit number |
ClassicalCondition QPanda::cAlloc()
Allocate a cbit.
Call init() before you use this
Returns:
ClassicalCondition cbit
ClassicalCondition QPanda::cAlloc(size_t stCBitaddr)
Allocate a cbit.
Call init() before you use this
Parameters:
size_t |
set cbit address |
Returns:
ClassicalCondition Cbit
std::vector<ClassicalCondition> QPanda::cAllocMany(size_t stCBitNumber)
Allocate many cbits.
Call init() before you use this
Parameters:
size_t |
set cbit number |
void QPanda::cFree(ClassicalCondition&)
Free a cbit.
Parameters:
ClassicalCondition& |
a reference to a cbit |
Returns:
void
void QPanda::cFreeAll(std::vector<ClassicalCondition> vCBit)
Free a list of cbits.
Parameters:
std::vector<ClassicalCondition> |
a list of cbits |
Returns:
void
QMachineStatus* QPanda::getstat()
Get the status(ptr) of the Quantum machine.
Returns:
QPanda::QMachineStatus * Quantum machine status(ptr)
size_t QPanda::getAllocateQubitNum()
Get all allocate qubit num.
Returns:
size_t Qubit num
prob_tuple QPanda::getProbTupleList(QVec, int selectMax = -1)
Get pmeasure result as tuple list.
selectMax can not exceed (1ull << the size of qubits vector)
Parameters:
pmeasure qubits vector |
|
int |
Selectmax:the returned value num |
Returns:
std::vector<std::pair<size_t, double>> result
prob_vec QPanda::getProbList(QVec, int selectMax = -1)
Get pmeasure result as list.
SelectMax can not exceed (1ull << the size of qubits vector)
Parameters:
pmeasure qubits vector |
|
int |
Selectmax:the returned value num |
Returns:
prob_vec result
prob_dict QPanda::getProbDict(QVec, int selectMax = -1)
Get pmeasure result as dict.
SelectMax can not exceed (1ull << the size of qubits vector)
Parameters:
pmeasure qubits vector |
|
int |
Selectmax:the returned value num |
Returns:
std::map<std::string, double> result
prob_tuple QPanda::probRunTupleList(QProg&, QVec, int selectMax = -1)
Get pmeasure result as dict.
SelectMax can not exceed (1ull << the size of qubits vector)
Parameters:
QProg& |
Quantum program |
pmeasure qubits vector |
|
int |
Selectmax:the returned value num |
Returns:
std::vector<std::pair<size_t, double>> result
prob_vec QPanda::probRunList(QProg&, QVec, int selectMax = -1)
Get pmeasure result as list.
SelectMax can not exceed (1ull << the size of qubits vector)
Parameters:
QProg& |
Quantum program |
Pmeasure qubits vector |
|
int |
selectmax:the returned value num |
Returns:
prob_vec result
prob_dict QPanda::probRunDict(QProg&, QVec, int selectMax = -1)
Get pmeasure result as dict.
SelectMax can not exceed (1ull << the size of qubits vector)
Parameters:
QProg& |
Quantum program |
pmeasure qubits vector |
|
int |
Selectmax:the returned value num |
Returns:
std::map<std::string, double> result
std::map<std::string, size_t> QPanda::runWithConfiguration( QProg&, std::vector<ClassicalCondition>&, int )
Measure run with configuration.
Parameters:
QProg& |
Quantum program |
std::vector<ClassicalCondition>& |
cbits vector |
int |
Shots:the repeat num of measure operate |
Returns:
std::map<std::string, size_t> result
std::map<std::string, size_t> QPanda::quickMeasure(QVec, int)
Quick measure operate.
Parameters:
qubits vector |
|
int |
Shots:the repeat num of measure operate |
Returns:
std::map<std::string,size_t> result
prob_vec QPanda::accumulateProbability(prob_vec& prob_list)
AccumulateProbability.
Parameters:
prob_vec |
& prob_list Abstract Quantum program pointer |
Returns:
prob_vec
std::map<std::string, size_t> QPanda::quick_measure( QVec qubit_vector, int shots, prob_vec& accumulate_probabilites )
Quick measure.
Parameters:
qubits vector |
|
int |
Shots:the repeat num of measure operate |
prob_vec& |
accumulate Probabilites |
Returns:
std::map<std::string,size_t> Results
QStat QPanda::getQState()
Get quantum state.
Returns:
qstat Quantum state vector
QuantumMachine* QPanda::initQuantumMachine(QMachineType type = CPU)
Init a Quantum machine.
default Quantum machine type :cpu
Parameters:
QMachineType |
Returns:
QPanda::QuantumMachine * Quantum machine pointer
See also:
void QPanda::destroyQuantumMachine(QuantumMachine* qvm)
Destroy Quantum machine.
Parameters:
QuantumMachine* |
Quantum machine pointer |
Returns:
void
QPanda::QProg QPanda::MeasureAll(QVec, std::vector<ClassicalCondition>)
Measure All ClassicalCondition.
Parameters:
QVec& |
qubits vector |
std::vector<ClassicalCondition> |
Cbits vector |
Returns:
QPanda::QProg Quantum program
size_t QPanda::getAllocateCMemNum()
Get allocate cbit number.
Returns:
size_t Cbit number
prob_tuple QPanda::pMeasure(QVec qubit_vector, int select_max)
pMeasure
Parameters:
qubit vector |
|
int |
Selectmax:the returned value num |
Returns:
std::vector<std::pair<size_t, double>> result
prob_vec QPanda::pMeasureNoIndex(QVec qubit_vector)
pMeasure only return result with no index
Parameters:
qubit vector |
Returns:
prob_vec result
QMeasure QPanda::Measure(Qubit*, ClassicalCondition)
QPanda2 basic interface for creating a quantum measure node.
Parameters:
Qubit* |
qubit address |
cbit |
Returns:
QPanda::QMeasure quantum measure node
QMeasure QPanda::Measure(int, int)
QPanda2 basic interface for creating a quantum measure node.
Parameters:
int |
qubit address |
int |
cbit address |
Returns:
QPanda::QMeasure quantum measure node