pyqpanda.pyQPanda
¶
Module Contents¶
Classes¶
quantum AbstractOptimizer class |
|
variational quantum AdaGradOptimizer |
|
variational quantum AdamOptimizer |
|
quantum ansatz class |
|
ansatz gate struct |
|
Quantum ansatz gate type |
|
Quantum machine backend type |
|
quantum classical bit |
|
quantum machine cpu |
|
quantum machine class for cpu single thread |
|
origin quantum real chip type |
|
Classical condition class Proxy class of cexpr class |
|
quantum ClassicalProg |
|
quantum complex vertex split method |
|
Quantum dag node type |
|
Quantum matrix decomposition mode |
|
simulator for density matrix |
|
Quantum double gate transfer type |
|
quantum amplitude encode |
|
pliot error code |
|
quantum fusion operation |
|
quantum gate type |
|
quantum hhl algorithm class |
|
Quantum latex gate type |
|
Generate quantum circuits latex src code can be compiled on latex package 'qcircuit' |
|
quantum matrix product state machine class |
|
quantum error mitigation |
|
variational quantum MomentumOptimizer |
|
Detailed information of a QProg node |
|
quantum node iter |
|
quantum node type |
|
Quantum machine for noise simulation |
|
noise model type |
|
quantum machine class for simulate noise prog |
|
variational quantum Optimizer class |
|
quantum OptimizerFactory class |
|
variational quantum OptimizerMode |
|
quantum OptimizerType |
|
origin quantum cmem |
|
A relatively free data collection class for saving data |
|
quantum qubit pool |
|
quantum partial amplitude machine class |
|
Physical Qubit abstract class |
|
pliot noise simulate params |
|
quantum circuit node |
|
Quantum circuit optimize mode |
|
origin quantum cloud machine |
|
Quantum QError Type |
|
quantum gate node |
|
quantum imaginary time evolution |
|
quantum if prog node |
|
Quantum machine type |
|
quantum measure node |
|
quantum operator class |
|
quantum QOptimizationResult class |
|
pliot machine |
|
origin quantum pilot OS Machine |
|
Quantum program,can construct quantum circuit,data struct is linked list |
|
quantum prog dag class |
|
quantum prog dag edge |
|
quantum prog dag vertex node |
|
quantum reset node |
|
QResult abstract class, this class contains the result of the quantum measurement |
|
Qubit vector basic class |
|
quantum while node |
|
quantum machine base class |
|
quantum state tomography class |
|
Qubit abstract class |
|
variational quantum RMSPropOptimizer |
|
quantum single amplitude machine class |
|
Quantum single gate transfer type |
|
quantum sparse machine class |
|
simulator for basic clifford simulator |
|
quantum imaginary time evolution update mode |
|
variational quantum VanillaGradientDescentOptimizer |
|
variational quantum CIRCUIT class |
|
variational quantum gate base class |
|
variational quantum CNOT gate class |
|
variational quantum CR gate class |
|
variational quantum CRX gate class |
|
variational quantum CRY gate class |
|
variational quantum CRZ gate class |
|
variational quantum CU gate class |
|
variational quantum CZ gate class |
|
variational quantum H gate class |
|
variational quantum I gate class |
|
variational quantum RX gate class |
|
variational quantum RY gate class |
|
variational quantum RZ gate class |
|
variational quantum S gate class |
|
variational quantum SWAP gate class |
|
variational quantum SqiSWAP gate class |
|
variational quantum T gate class |
|
variational quantum U1 gate class |
|
variational quantum U2 gate class |
|
variational quantum U3 gate class |
|
variational quantum U4 gate class |
|
variational quantum X gate class |
|
variational quantum X1 gate class |
|
variational quantum Y gate class |
|
variational quantum Y1 gate class |
|
variational quantum Z gate class |
|
variational quantum Z1 gate class |
|
variational quantum iSWAP gate class |
|
origin quantum real chip error_mitigation type |
|
variational quantum expression class |
|
hadamard circuit class |
|
origin quantum real chip type enum |
|
quantum variational class |
Functions¶
|
Create a BARRIER gate |
|
Returns: |
|
Returns: |
|
Returns: |
|
Create a CU gate |
|
Returns: |
|
Create an empty QCircuit Container |
|
Create an empty QProg Container |
|
Create a classical quantum IfProg |
|
Create a WhileProg |
|
Quantum grover circuit |
use Grover algorithm to search target data, return QProg and search_result |
|
|
Create a H gate |
|
Use HHL algorithm to solve the target linear systems of equations : Ax = b |
|
Create a I gate |
|
Quantum adder MAJ module |
|
Quantum adder MAJ2 module |
|
Create an measure node |
|
OPT_BMT mapping |
|
Create a P gate |
|
Deprecated, use pmeasure instead |
|
Deprecated, use pmeasure_no_index instead |
|
Quantum adder that supports signed operations, but ignore carry |
|
Quantum adder with carry |
|
Args: |
|
Convert quantum state to binary complement representation |
|
Quantum division |
|
Args: |
|
Quantum division, only supports positive division, and the highest position of a and b and c is sign bit |
|
Args: |
|
Returns: |
|
Build QFT quantum circuit |
|
Quantum multiplication |
|
Quantum multiplication, only supports positive multiplication |
|
Generate QOracle Gate |
|
Quantum phase estimation |
|
Quantum subtraction |
|
Create a RX gate |
|
Create a RXX gate |
|
Create a RY gate |
|
Create a RYY gate |
|
Create a RZ gate |
|
Create a RZX gate |
|
Create a RZZ gate |
|
Create a Reset node |
|
Create a S gate |
|
Returns: |
|
Use Shor factorize integer num |
|
Returns: |
|
Create a T gate |
|
Create a Toffoli gate |
|
Create a U1 gate |
|
Create a U2 gate |
|
Create a U3 gate |
|
Create a U4 gate |
|
Quantum adder UMA module |
|
variational quantum CNOT batch gates |
|
variational quantum CU batch gates |
|
variational quantum CZ batch gates |
|
variational quantum H batch gates |
|
variational quantum I batch gates |
|
variational quantum SWAP batch gates |
|
variational quantum S batch gates |
|
variational quantum SqiSWAP batch gates |
|
variational quantum T batch gates |
|
variational quantum U1 batch gates |
|
variational quantum U2 batch gates |
|
variational quantum U3 batch gates |
|
variational quantum U4 batch gates |
|
variational quantum X1 batch gates |
|
variational quantum X batch gates |
|
variational quantum Y1 batch gates |
|
variational quantum Y batch gates |
|
variational quantum Z1 batch gates |
|
variational quantum Z batch gates |
|
variational quantum iSWAP batch gates |
|
Create a X gate |
|
Create a X1 gate |
|
Create a Y gate |
|
Create a Y1 gate |
|
Create a Z gate |
|
Create a Z1 gate |
|
Accumulate the probability from a prob list |
|
Accumulate the probability from a prob list |
|
Accumulate the probability from a prob list |
|
|
|
|
|
Generate graph of maxcut problem |
Encode the input double data to the amplitude of qubits |
|
|
Apply QGate to qubits |
|
|
|
|
|
|
compare two quantum states , Get the state fidelity |
|
|
Parse binary data transfor to quantum program |
|
Args: |
|
Args: |
|
build the quantum circuit for HHL algorithm to solve the target linear systems of equations : Ax = b |
|
Allocate a CBit |
|
Allocate several CBits |
|
Free a CBit |
|
Free all cbits |
calculate quantum volume |
|
|
Cast QProg to QCircuit |
|
Cast QProg to QGate |
|
Cast QProg to QMeasure |
|
Quantum circuit layering |
|
Optimize QCircuit |
|
QCircuit optimizer |
|
Args: |
|
Args: |
|
Args: |
|
Parse binary data to quantum program |
|
Trans OriginIR to QProg |
|
Read OriginIR file and trans to QProg |
|
Trans QASM to QProg |
|
Read QASM file and trans to QProg |
Store quantum program in binary file |
|
|
Args: |
|
Convert QProg to QASM instruction string |
|
convert QProg to Quil instruction |
|
|
|
Count quantum gate num under quantum program, quantum circuit |
|
|
Count quantum gate num under quantum program |
|
|
Create an empty QCircuit Container |
|
Create an empty QProg Container |
Create a classical quantum IfProg |
|
|
Create a WhileProg |
|
|
|
Decompose multiple control QGate |
|
|
|
Delete weakly connected edges |
|
Delete weakly connected edges |
|
Delete weakly connected edges |
|
Destroy a quantum machine |
|
Directly run quantum prog |
|
|
|
|
|
double gate xeb |
|
double qubit rb with WU YUAN chip |
|
Convert a quantum prog/circuit to latex source code, and save the source code to file in current path with name QCircuit.tex |
|
Convert a quantum prog/circuit to latex source code with time sequence, and save the source code to file in current path with name QCircuit.tex |
|
Convert a quantum prog/circuit to text-pic(UTF-8 code), |
|
Convert a quantum prog/circuit to text-pic(UTF-8 code) with time sequence, |
|
|
|
|
|
Evaluate topology performance |
|
|
|
|
|
calculate the matrix power of e |
Extending linear equations to N dimension, N = 2 ^ n |
|
|
Fill the input QProg by I gate, return a new quantum program |
|
Finalize the environment and destory global unique quantum machine. |
|
Special character conversion |
|
Flatten quantum circuit |
|
Deprecated, use get_allocate_cmem_num instead |
|
Deprecated, use get_allocate_qubit_num instead |
|
Get the adjacent quantum gates's(the front one and the back one) typeinfo from QProg |
|
Get all the used quantum bits in the input prog |
|
Get all the used quantum bits addr in the input prog |
|
Get allocated cbits of QuantumMachine |
|
get allocate cmem num |
|
get allocate qubit num |
|
Get allocated qubits of QuantumMachine |
|
Get quantum program binary data |
|
Transfor quantum program to string |
|
Get the optimal topology of the input circuit |
|
Get quantum program clock cycle |
|
Get complex points |
|
get double gate block topology |
|
Get the target matrix between the input two Nodeiters |
|
Get pmeasure result as dict |
|
Get pmeasure result as list |
Count quantum gate num under quantum program |
|
|
Get Quantum Program Clock Cycle |
|
|
|
Get sub graph |
|
Get pmeasure result as tuple list |
|
Get the target matrix between the input two Nodeiters |
|
Count quantum program unsupported gate numner |
|
Get the status of the Quantum machine |
|
Returns: |
|
Init the global unique quantum machine at background. |
|
Create and initialize a new quantum machine, and let it be global unique quantum machine |
|
|
|
Construct a circuit to determine if there is a carry |
|
Judge the QGate if match the target topologic structure of quantum circuit |
|
Judge if the target node is a QGate type |
|
Judge the specialed two NodeIters in qprog whether can be exchanged |
|
estimate the probability corresponding to the ground state |1> of the last bit |
|
Decompose multiple control QGate |
|
|
Matrix decomposition |
|
decompose matrix into paulis combination |
|
|
Create a list of measure node |
|
|
|
Read OriginIR file and trans to QProg |
|
|
|
planarity testing |
|
Get the probability distribution over qubits |
|
Get the probability distribution over qubits |
|
|
|
Print matrix element |
|
Run quantum program and get pmeasure result as dict |
|
Run quantum program and get pmeasure result as list |
|
Run quantum program and get pmeasure result as tuple list |
|
|
|
Allocate a qubits |
|
Allocate several qubits |
|
Free a qubit |
|
Free a list of qubits |
|
|
|
|
|
Quantum chip adaptive conversion |
|
Build quantum-walk algorithm quantum circuit |
|
Use Quantum-walk Algorithm to search target data, return QProg and search_result |
|
Quick measure |
|
Generate random quantum circuit |
|
Generate random quantum program |
|
Recover edges from the candidate edges |
|
Source qunatum program is mapped to the target qubits |
|
Replacing complex points with subgraphs |
Run quantum program with configuration |
|
sabre mapping |
|
|
|
|
|
|
Single qubit rb with WU YUAN chip |
|
|
|
Splitting complex points into multiple points |
|
|
compare two quantum states , Get the state fidelity |
|
|
|
|
|
|
|
|
Transform QProg to Quil instruction |
|
Transform QProg to OriginIR string |
|
Judge QProg/QCircuit matches the topology of the physical qubits |
|
Parse binary data trans to quantum program |
|
Transform OriginIR to QProg |
Save quantum program to file as binary data |
|
|
Quantum program transform to OriginIR string |
|
Transform QProg to Quil instruction |
|
Basic quantum - gate conversion |
|
transfrom pauli operator to matrix |
|
|
|
Get valid QGates and valid double bit QGate type |
|
Get valid QGates and valid single bit QGate type |
|
Inner product of vector x and y |
|
virtual z transform |
- class pyqpanda.pyQPanda.AbstractOptimizer(*args, **kwargs)[源代码]¶
quantum AbstractOptimizer class
- class pyqpanda.pyQPanda.AdaGradOptimizer(arg0: var, arg1: float, arg2: float, arg3: float)[源代码]¶
variational quantum AdaGradOptimizer
- class pyqpanda.pyQPanda.AdamOptimizer(arg0: var, arg1: float, arg2: float, arg3: float, arg4: float)[源代码]¶
variational quantum AdamOptimizer
- class pyqpanda.pyQPanda.Ansatz[源代码]¶
- class pyqpanda.pyQPanda.Ansatz(arg0: QGate)
- class pyqpanda.pyQPanda.Ansatz(arg0: AnsatzGate)
- class pyqpanda.pyQPanda.Ansatz(ansatz: List[AnsatzGate], thetas: List[float] = [])
- class pyqpanda.pyQPanda.Ansatz(ansatz_circuit: Ansatz, thetas: List[float] = [])
- class pyqpanda.pyQPanda.Ansatz(circuit: QCircuit, thetas: List[float] = [])
quantum ansatz class
- get_ansatz_list() List[AnsatzGate] [源代码]¶
- insert(gate: QGate) None [源代码]¶
- insert(gate: AnsatzGate) None
- insert(gate: List[AnsatzGate]) None
- insert(gate: QCircuit) None
- insert(gate: Ansatz, thetas: List[float] = []) None
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int)[源代码]¶
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float)
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float, arg3: int)
ansatz gate struct
- type: AnsatzGateType[源代码]¶
- class pyqpanda.pyQPanda.AnsatzGateType(value: int)[源代码]¶
Quantum ansatz gate type
Members:
AGT_X
AGT_H
AGT_RX
AGT_RY
AGT_RZ
- AGT_H: ClassVar[AnsatzGateType] = Ellipsis[源代码]¶
- AGT_RX: ClassVar[AnsatzGateType] = Ellipsis[源代码]¶
- AGT_RY: ClassVar[AnsatzGateType] = Ellipsis[源代码]¶
- AGT_RZ: ClassVar[AnsatzGateType] = Ellipsis[源代码]¶
- AGT_X: ClassVar[AnsatzGateType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.BackendType(value: int)[源代码]¶
Quantum machine backend type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
MPS
- CPU: ClassVar[BackendType] = Ellipsis[源代码]¶
- CPU_SINGLE_THREAD: ClassVar[BackendType] = Ellipsis[源代码]¶
- GPU: ClassVar[BackendType] = Ellipsis[源代码]¶
- MPS: ClassVar[BackendType] = Ellipsis[源代码]¶
- NOISE: ClassVar[BackendType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.CPUQVM[源代码]¶
Bases:
QuantumMachine
quantum machine cpu
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]¶
Get the probability distribution over qubits
- prob_run_dict(program: QProg, qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]¶
- prob_run_dict(program: QProg, qubit_addr_list: List[int], select_max: int = -1) Dict[str, float]
- prob_run_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[float] [源代码]¶
- prob_run_list(program: QProg, qubit_addr_list: List[int], select_max: int = -1) List[float]
- class pyqpanda.pyQPanda.CPUSingleThreadQVM[源代码]¶
Bases:
QuantumMachine
quantum machine class for cpu single thread
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]¶
Get the probability distribution over qubits
- prob_run_dict(program: QProg, qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]¶
- prob_run_dict(program: QProg, qubit_addr_list: List[int], select_max: int = -1) Dict[str, float]
- prob_run_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[float] [源代码]¶
- prob_run_list(program: QProg, qubit_addr_list: List[int], select_max: int = -1) List[float]
- class pyqpanda.pyQPanda.ChipID(value: int)[源代码]¶
origin quantum real chip type
Members:
Simulation
WUYUAN_1
WUYUAN_2
WUYUAN_3
- class pyqpanda.pyQPanda.ClassicalCondition(*args, **kwargs)[源代码]¶
Classical condition class Proxy class of cexpr class
- class pyqpanda.pyQPanda.ClassicalProg(arg0: ClassicalCondition)[源代码]¶
quantum ClassicalProg
- class pyqpanda.pyQPanda.ComplexVertexSplitMethod(value: int)[源代码]¶
quantum complex vertex split method
Members:
METHOD_UNDEFINED
LINEAR
RING
- LINEAR: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]¶
- METHOD_UNDEFINED: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]¶
- RING: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.DAGNodeType(value: int)[源代码]¶
Quantum dag node type
Members:
NUKNOW_SEQ_NODE_TYPE
MAX_GATE_TYPE
MEASURE
QUBIT
RESET
- MAX_GATE_TYPE: ClassVar[DAGNodeType] = Ellipsis[源代码]¶
- MEASURE: ClassVar[DAGNodeType] = Ellipsis[源代码]¶
- NUKNOW_SEQ_NODE_TYPE: ClassVar[DAGNodeType] = Ellipsis[源代码]¶
- QUBIT: ClassVar[DAGNodeType] = Ellipsis[源代码]¶
- RESET: ClassVar[DAGNodeType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.DecompositionMode(value: int)[源代码]¶
Quantum matrix decomposition mode
Members:
QR
HOUSEHOLDER_QR
QSDecomposition
CSDecomposition
- CSDecomposition: ClassVar[DecompositionMode] = Ellipsis[源代码]¶
- HOUSEHOLDER_QR: ClassVar[DecompositionMode] = Ellipsis[源代码]¶
- QR: ClassVar[DecompositionMode] = Ellipsis[源代码]¶
- QSDecomposition: ClassVar[DecompositionMode] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.DensityMatrixSimulator[源代码]¶
Bases:
QuantumMachine
simulator for density matrix
- get_density_matrix(prog: QProg) numpy.ndarray[numpy.complex128[m, n]] [源代码]¶
Run quantum program and get full density matrix
- Args:
prog: quantum program
- Returns:
full density matrix
- Raises:
run_fail: An error occurred in get_density_matrix
- get_expectation(prog: QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qubits: QVec) float [源代码]¶
- get_expectation(prog: QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qubits: List[int]) float
Run quantum program and hamiltonian expection for current qubits
- Args:
prog: quantum program hamiltonian: QHamiltonian qubits: select qubits
- Returns:
hamiltonian expection for current qubits
- Raises:
run_fail: An error occurred in get_expectation
- get_probabilities(prog: QProg) List[float] [源代码]¶
- get_probabilities(prog: QProg, qubits: QVec) List[float]
- get_probabilities(prog: QProg, qubits: List[int]) List[float]
- get_probabilities(prog: QProg, indices: List[str]) List[float]
Run quantum program and get all indices probabilities for current binary indices
- Args:
prog: quantum program indices: select binary indices
- Returns:
probabilities result of quantum program
- Raises:
run_fail: An error occurred in get_probabilities
- get_probability(prog: QProg, index: int) float [源代码]¶
- get_probability(prog: QProg, index: str) float
Run quantum program and get index probability
- Args:
prog: quantum program index: measure index in [0,2^N - 1]
- Returns:
probability result of quantum program
- Raises:
run_fail: An error occurred in get_probability
- get_reduced_density_matrix(prog: QProg, qubits: QVec) numpy.ndarray[numpy.complex128[m, n]] [源代码]¶
- get_reduced_density_matrix(prog: QProg, qubits: List[int]) numpy.ndarray[numpy.complex128[m, n]]
Run quantum program and get density matrix for current qubits
- Args:
prog: quantum program qubits: quantum program select qubits
- Returns:
density matrix
- Raises:
run_fail: An error occurred in get_reduced_density_matrix
- set_noise_model(arg0: numpy.ndarray[numpy.complex128[m, n]]) None [源代码]¶
- set_noise_model(arg0: List[numpy.ndarray[numpy.complex128[m, n]]]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: List[QVec]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: float, arg4: float) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float, arg5: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: float, arg4: float, arg5: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float, arg5: List[QVec]) None
- class pyqpanda.pyQPanda.DoubleGateTransferType(value: int)[源代码]¶
Quantum double gate transfer type
Members:
DOUBLE_GATE_INVALID
DOUBLE_BIT_GATE
- DOUBLE_BIT_GATE: ClassVar[DoubleGateTransferType] = Ellipsis[源代码]¶
- DOUBLE_GATE_INVALID: ClassVar[DoubleGateTransferType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.Encode[源代码]¶
quantum amplitude encode
- amplitude_encode(qubit: QVec, data: List[float]) None [源代码]¶
- amplitude_encode(qubit: QVec, data: List[complex]) None
- amplitude_encode_recursive(qubit: QVec, data: List[float]) None [源代码]¶
- amplitude_encode_recursive(qubit: QVec, data: List[complex]) None
Encode by amplitude recursive
- Args:
QVec: qubits QStat: amplitude
- Returns:
circuit
- Raises:
run_fail: An error occurred in get amplitude_encode_recursive
- angle_encode(qubit: QVec, data: List[float], gate_type: GateType = GateType.RY_GATE) None [源代码]¶
Encode by angle
- Args:
QVec: qubits prob_vec: data
- Returns:
circuit
- Raises:
run_fail: An error occurred in get angle_encode
- approx_mps(qubit: QVec, data: List[float], layers: int = 3, sweeps: int = 100, double2float: bool = False) None [源代码]¶
- approx_mps(qubit: QVec, data: List[complex], layers: int = 3, sweeps: int = 100) None
approx mps encode
- Args:
Qubit: qubits data: std::vector<qcomplex_t> int: layer int: step
- Returns:
circuit
- Raises:
run_fail: An error occurred in approx_mps
- basic_encode(qubit: QVec, data: str) None [源代码]¶
basic_encode
- Args:
QVec: qubits string: data
- Returns:
circuit
- Raises:
run_fail: An error occurred in basic_encode
- bid_amplitude_encode(qubit: QVec, data: List[float], split: int = 0) None [源代码]¶
Encode by bid
- Args:
QVec: qubits QStat: amplitude split: int
- Returns:
circuit
- Raises:
run_fail: An error occurred in bid_amplitude_encode
- dc_amplitude_encode(qubit: QVec, data: List[float]) None [源代码]¶
Encode by dc amplitude
- Args:
QVec: qubits QStat: amplitude
- Returns:
circuit
- Raises:
run_fail: An error occurred in dc_amplitude_encode
- dense_angle_encode(qubit: QVec, data: List[float]) None [源代码]¶
Encode by dense angle
- Args:
QVec: qubits prob_vec: data
- Returns:
circuit
- Raises:
run_fail: An error occurred in dense_angle_encode
- ds_quantum_state_preparation(qubit: QVec, data: Dict[str, float]) None [源代码]¶
- ds_quantum_state_preparation(qubit: QVec, data: Dict[str, complex]) None
- ds_quantum_state_preparation(qubit: QVec, data: List[float]) None
- ds_quantum_state_preparation(qubit: QVec, data: List[complex]) None
- efficient_sparse(qubit: QVec, data: Dict[str, float]) None [源代码]¶
- efficient_sparse(qubit: QVec, data: Dict[str, complex]) None
- efficient_sparse(qubit: QVec, data: List[float]) None
- efficient_sparse(qubit: QVec, data: List[complex]) None
- get_fidelity(data: List[float]) float [源代码]¶
- get_fidelity(data: List[complex]) float
- get_fidelity(data: List[float]) float
- iqp_encode(qubit: QVec, data: List[float], control_list: List[Tuple[int, int]] = [], bool_inverse: bool = False, repeats: int = 1) None [源代码]¶
Encode by iqp
- Args:
QVec: qubits prob_vec: data list: control_list bool: bool_inverse int: repeats
- Returns:
circuit
- Raises:
run_fail: An error occurred in iqp_encode
- class pyqpanda.pyQPanda.ErrorCode(value: int)[源代码]¶
pliot error code
Members:
NO_ERROR_FOUND
DATABASE_ERROR
ORIGINIR_ERROR
JSON_FIELD_ERROR
BACKEND_CALC_ERROR
ERR_TASK_BUF_OVERFLOW
EXCEED_MAX_QUBIT
ERR_UNSUPPORT_BACKEND_TYPE
EXCEED_MAX_CLOCK
ERR_UNKNOW_TASK_TYPE
ERR_QVM_INIT_FAILED
ERR_QCOMPILER_FAILED
ERR_PRE_ESTIMATE
ERR_MATE_GATE_CONFIG
ERR_FIDELITY_MATRIX
ERR_QST_PROG
ERR_EMPTY_PROG
ERR_QUBIT_SIZE
ERR_QUBIT_TOPO
ERR_QUANTUM_CHIP_PROG
ERR_REPEAT_MEASURE
ERR_OPERATOR_DB
ERR_TASK_STATUS_BUF_OVERFLOW
ERR_BACKEND_CHIP_TASK_SOCKET_WRONG
CLUSTER_SIMULATE_CALC_ERR
ERR_SCHEDULE_CHIP_TOPOLOGY_SUPPORTED
ERR_TASK_CONFIG
ERR_NOT_FOUND_APP_ID
ERR_NOT_FOUND_TASK_ID
ERR_PARSER_SUB_TASK_RESULT
ERR_SYS_CALL_TIME_OUT
ERR_TASK_TERMINATED
ERR_INVALID_URL
ERR_PARAMETER
ERR_QPROG_LENGTH
ERR_CHIP_OFFLINE
UNDEFINED_ERROR
ERR_SUB_GRAPH_OUT_OF_RANGE
ERR_TCP_INIT_FATLT
ERR_TCP_SERVER_HALT
CLUSTER_BASE
- class pyqpanda.pyQPanda.GateType(value: int)[源代码]¶
quantum gate type
Members:
GATE_NOP
GATE_UNDEFINED
P0_GATE
P1_GATE
PAULI_X_GATE
PAULI_Y_GATE
PAULI_Z_GATE
X_HALF_PI
Y_HALF_PI
Z_HALF_PI
HADAMARD_GATE
T_GATE
S_GATE
P_GATE
CP_GATE
RX_GATE
RY_GATE
RZ_GATE
RXX_GATE
RYY_GATE
RZZ_GATE
RZX_GATE
U1_GATE
U2_GATE
U3_GATE
U4_GATE
CU_GATE
CNOT_GATE
CZ_GATE
CPHASE_GATE
ISWAP_THETA_GATE
ISWAP_GATE
SQISWAP_GATE
SWAP_GATE
TWO_QUBIT_GATE
P00_GATE
P11_GATE
TOFFOLI_GATE
ORACLE_GATE
I_GATE
BARRIER_GATE
RPHI_GATE
- class pyqpanda.pyQPanda.HHLAlg(arg0: QuantumMachine)[源代码]¶
quantum hhl algorithm class
- class pyqpanda.pyQPanda.LATEX_GATE_TYPE(value: int)[源代码]¶
Quantum latex gate type
Members:
GENERAL_GATE
CNOT_GATE
SWAP_GATE
- CNOT_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]¶
- GENERAL_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]¶
- SWAP_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.LatexMatrix[源代码]¶
Generate quantum circuits latex src code can be compiled on latex package 'qcircuit' circuits element treated as matrix element in latex syntax
qcircuit package tutorial [https://physics.unm.edu/CQuIC/Qcircuit/Qtutorial.pdf]
- insert_barrier(rows: List[int], from_col: int) int [源代码]¶
- Args:
rows: rows need be barriered, may not continus
- insert_gate(target_rows: List[int], ctrl_rows: List[int], from_col: int, gate_type: LATEX_GATE_TYPE, gate_name: str = '', dagger: bool = False, param: str = '') int [源代码]¶
Insert a gate into circute
- Args:
target_rows: gate targets row of latex matrix ctrl_rows from_col: gate wanted col pos, but there may be not enough zone to put gate gate_type: enum type of LATEX_GATE_TYPE gate_name dagger: dagger flag param: gate param str
- Returns:
int: real col num. if there is no enough zone to put gate at 'from_col', we will find suitable col to put gate after 'from_col'
- insert_timeseq(t_col: int, time_seq: int) None [源代码]¶
Beware we do not check col num, may cause overwrite. user must take care col num self
- set_label(qubit_label: Dict[int, str], cbit_label: Dict[int, str] = {}, time_seq_label: str = '', head: bool = True) None [源代码]¶
Set Label at left most head col or right most tail col label can be reseted at any time
- Args:
- qubit_label: label for qwire left most head label, at row, in latex syntax. not given row will keep empty
eg. {0: 'q_{1}', 2:'q_{2}'}
cbit_label: classic label string, support latex str time_seq_label: if given, set time squence lable head: if true, label append head; false, append at tail
- class pyqpanda.pyQPanda.MPSQVM[源代码]¶
Bases:
QuantumMachine
quantum matrix product state machine class
- add_single_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float) None [源代码]¶
- add_single_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float) None
- get_prob_dict(qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]¶
Get pmeasure result as dict
- Args:
qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in get_prob_dict
- get_prob_list(qubit_list: QVec, select_max: int = -1) List[float] [源代码]¶
Get pmeasure result as list
- Args:
qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in get_prob_list
- get_prob_tuple_list(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]¶
Get pmeasure result as list
- Args:
qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in get_prob_tuple_list
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]¶
Get the probability distribution over qubits
- Args:
qubit_list: qubit list to measure select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine in tuple form
- pmeasure_bin_index(program: QProg, string: str) complex [源代码]¶
pmeasure bin index quantum state amplitude
- Args:
string : bin string
- Returns:
complex : bin amplitude
- Raises:
run_fail: An error occurred in pmeasure_bin_index
- pmeasure_bin_subset(program: QProg, string_list: List[str]) List[complex] [源代码]¶
pmeasure quantum state amplitude subset
- Args:
list : bin state string list
- Returns:
list : bin amplitude result list
- Raises:
run_fail: An error occurred in pmeasure_bin_subset
- pmeasure_dec_index(program: QProg, string: str) complex [源代码]¶
pmeasure dec index quantum state amplitude
- Args:
string : dec string
- Returns:
complex : dec amplitude
- Raises:
run_fail: An error occurred in pmeasure_dec_index
- pmeasure_dec_subset(program: QProg, string_list: List[str]) List[complex] [源代码]¶
pmeasure quantum state amplitude subset
- Args:
list : dec state string list
- Returns:
list : dec amplitude result list
- Raises:
run_fail: An error occurred in pmeasure_dec_subset
- pmeasure_no_index(qubit_list: QVec) List[float] [源代码]¶
Get the probability distribution over qubits
- Args:
qubit_list: qubit list to measure
- Returns:
measure result of quantum machine in list form
- prob_run_dict(program: QProg, qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]¶
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- prob_run_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[float] [源代码]¶
Run quantum program and get pmeasure result as list
- Args:
qprog: quantum program qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- prob_run_tuple_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]¶
Run quantum program and get pmeasure result as tuple list
- Args:
qprog: quantum program qubit_list: pmeasure qubits list select_max: max returned element num in returnd tuple, should in [-1, 1<<len(qubit_list)]
default is -1, means no limit
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in prob_run_tuple_list
- quick_measure(qubit_list: QVec, shots: int) Dict[str, int] [源代码]¶
Quick measure
- Args:
qubit_list: qubit list to measure shots: the repeat num of measure operate
- Returns:
result of quantum program
- Raises:
run_fail: An error occurred in measure quantum program
- set_measure_error(arg0: NoiseModel, arg1: float) None [源代码]¶
- set_measure_error(arg0: NoiseModel, arg1: float, arg2: float, arg3: float) None
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[QVec]) None [源代码]¶
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[float], arg3: List[QVec]) None
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]]) None
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[float]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float) None [源代码]¶
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: List[QVec]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float, arg5: List[QVec]) None
- class pyqpanda.pyQPanda.Mitigation(Qubits: QVec, QVM, shots: int)[源代码]¶
quantum error mitigation
- class pyqpanda.pyQPanda.MomentumOptimizer(arg0: var, arg1: float, arg2: float)[源代码]¶
variational quantum MomentumOptimizer
- class pyqpanda.pyQPanda.NodeInfo[源代码]¶
- class pyqpanda.pyQPanda.NodeInfo(iter: NodeIter, target_qubits: QVec, control_qubits: QVec, type: int, dagger: bool)
Detailed information of a QProg node
- class pyqpanda.pyQPanda.NodeType(value: int)[源代码]¶
quantum node type
Members:
NODE_UNDEFINED
GATE_NODE
CIRCUIT_NODE
PROG_NODE
MEASURE_GATE
WHILE_START_NODE
QIF_START_NODE
CLASS_COND_NODE
RESET_NODE
- class pyqpanda.pyQPanda.Noise[源代码]¶
Quantum machine for noise simulation
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float]) None [源代码]¶
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float], qubits: QVec) None
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float], qubits: List[QVec]) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, prob: float) None [源代码]¶
- add_noise_model(noise_model: NoiseModel, gate_types: List[GateType], prob: float) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, prob: float, qubits: QVec) None
- add_noise_model(noise_model: NoiseModel, gate_types: List[GateType], prob: float, qubits: QVec) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, prob: float, qubits: List[QVec]) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, t1: float, t2: float, t_gate: float) None
- add_noise_model(noise_model: NoiseModel, gate_types: List[GateType], t1: float, t2: float, t_gate: float) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, t1: float, t2: float, t_gate: float, qubits: QVec) None
- add_noise_model(noise_model: NoiseModel, gate_types: List[GateType], t1: float, t2: float, t_gate: float, qubits: QVec) None
- add_noise_model(noise_model: NoiseModel, gate_type: GateType, t1: float, t2: float, t_gate: float, qubits: List[QVec]) None
- set_measure_error(noise_model: NoiseModel, prob: float, qubits: QVec = ...) None [源代码]¶
- set_measure_error(noise_model: NoiseModel, t1: float, t2: float, t_gate: float, qubits: QVec = ...) None
- class pyqpanda.pyQPanda.NoiseModel(value: int)[源代码]¶
noise model type
Members:
DAMPING_KRAUS_OPERATOR
DECOHERENCE_KRAUS_OPERATOR
DEPHASING_KRAUS_OPERATOR
PAULI_KRAUS_MAP
BITFLIP_KRAUS_OPERATOR
DEPOLARIZING_KRAUS_OPERATOR
BIT_PHASE_FLIP_OPRATOR
PHASE_DAMPING_OPRATOR
- BITFLIP_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- BIT_PHASE_FLIP_OPRATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- DAMPING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- DECOHERENCE_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- DEPHASING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- DEPOLARIZING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- PAULI_KRAUS_MAP: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- PHASE_DAMPING_OPRATOR: ClassVar[NoiseModel] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.NoiseQVM[源代码]¶
Bases:
QuantumMachine
quantum machine class for simulate noise prog
- set_measure_error(model: NoiseModel, prob: float, qubits: QVec = ...) None [源代码]¶
- set_measure_error(model: NoiseModel, T1: float, T2: float, t_gate: float, qubits: QVec = ...) None
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[float]) None [源代码]¶
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[float], arg3: QVec) None
- set_mixed_unitary_error(arg0: GateType, arg1: List[List[complex]], arg2: List[float], arg3: List[QVec]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float) None [源代码]¶
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: List[QVec]) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: float, arg4: float) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float, arg5: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: List[GateType], arg2: float, arg3: float, arg4: float, arg5: QVec) None
- set_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float, arg5: List[QVec]) None
- class pyqpanda.pyQPanda.OptimizerFactory[源代码]¶
quantum OptimizerFactory class
- makeOptimizer() AbstractOptimizer [源代码]¶
- makeOptimizer() AbstractOptimizer
Please input the Optimizer's name(string)
- class pyqpanda.pyQPanda.OptimizerType(value: int)[源代码]¶
quantum OptimizerType
Members:
NELDER_MEAD
POWELL
GRADIENT
- GRADIENT: ClassVar[OptimizerType] = Ellipsis[源代码]¶
- NELDER_MEAD: ClassVar[OptimizerType] = Ellipsis[源代码]¶
- POWELL: ClassVar[OptimizerType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.OriginCMem[源代码]¶
origin quantum cmem
- cAlloc_many(count: int) List[ClassicalCondition] [源代码]¶
- cFree(classical_cond: ClassicalCondition) None [源代码]¶
- cFree_all(classical_cond_list: List[ClassicalCondition]) None [源代码]¶
- cFree_all() None
- get_allocate_cbits() List[ClassicalCondition] [源代码]¶
Get allocate cbits
- class pyqpanda.pyQPanda.OriginCollection[源代码]¶
- class pyqpanda.pyQPanda.OriginCollection(file_name: str)
- class pyqpanda.pyQPanda.OriginCollection(arg0: OriginCollection)
A relatively free data collection class for saving data
- class pyqpanda.pyQPanda.PartialAmpQVM[源代码]¶
Bases:
QuantumMachine
quantum partial amplitude machine class
- get_prob_dict(arg0: QVec) Dict[str, float] [源代码]¶
Get pmeasure result as dict
- Args:
qubit_list: pmeasure qubits list
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in get_prob_dict
- init_qvm(type: BackendType = BackendType.CPU) None [源代码]¶
init quantum virtual machine
- pmeasure_bin_index(bin_index: str) complex [源代码]¶
pmeasure bin index quantum state amplitude
- Args:
string : bin string
- Returns:
complex : bin amplitude
- Raises:
run_fail: An error occurred in pmeasure_bin_index
- pmeasure_dec_index(dec_index: str) complex [源代码]¶
pmeasure dec index quantum state amplitude
- Args:
string : dec string
- Returns:
complex : dec amplitude
- Raises:
run_fail: An error occurred in pmeasure_dec_index
- pmeasure_subset(index_list: List[str]) Dict[str, complex] [源代码]¶
pmeasure quantum state amplitude subset
- Args:
list : dec state string list
- Returns:
list : dec amplitude result list
- Raises:
run_fail: An error occurred in pmeasure_dec_index
- class pyqpanda.pyQPanda.QCircuit[源代码]¶
- class pyqpanda.pyQPanda.QCircuit(arg0: NodeIter)
quantum circuit node
- class pyqpanda.pyQPanda.QCircuitOPtimizerMode(value: int)[源代码]¶
Quantum circuit optimize mode
Members:
Merge_H_X
Merge_U3
Merge_RX
Merge_RY
Merge_RZ
- Merge_H_X: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]¶
- Merge_RX: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]¶
- Merge_RY: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]¶
- Merge_RZ: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]¶
- Merge_U3: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.QCloud[源代码]¶
Bases:
QuantumMachine
origin quantum cloud machine
- full_amplitude_measure(prog: QProg, shot: int, task_name: str = 'QPanda Experiment') Dict[str, float] [源代码]¶
- full_amplitude_measure_batch(prog_array: List[QProg], shot: int, task_name: str = 'QPanda Experiment') List[Dict[str, float]] [源代码]¶
- full_amplitude_pmeasure(prog: QProg, qvec: List[int], task_name: str = 'QPanda Experiment') Dict[str, float] [源代码]¶
- full_amplitude_pmeasure_batch(prog_array: List[QProg], qvec: List[int], task_name: str = 'QPanda Experiment') List[Dict[str, float]] [源代码]¶
- get_expectation(prog: QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qvec: QVec, task_name: str = 'QPanda Experiment') float [源代码]¶
- get_state_fidelity(prog: QProg, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment') float [源代码]¶
- get_state_tomography_density(prog: QProg, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment') List[List[complex]] [源代码]¶
- noise_measure_batch(prog_array: List[QProg], shot: int, task_name: str = 'QPanda Experiment') List[Dict[str, float]] [源代码]¶
- partial_amplitude_pmeasure(prog: QProg, amp_vec: List[str], task_name: str = 'QPanda Experiment') Dict[str, complex] [源代码]¶
- partial_amplitude_pmeasure_batch(prog_array: List[QProg], amp_vec: List[str], task_name: str = 'QPanda Experiment') List[Dict[str, complex]] [源代码]¶
- pec_error_mitigation(prog: QProg, shot: int, expectations: List[str], chip_id: int = 72, task_name: str = 'QPanda Experiment') List[float] [源代码]¶
- read_out_error_mitigation(prog: QProg, shot: int, expectations: List[str], chip_id: int = 72, task_name: str = 'QPanda Experiment') Dict[str, float] [源代码]¶
- real_chip_measure(prog: QProg, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment') Dict[str, float] [源代码]¶
- real_chip_measure_batch(prog_array: List[QProg], shot: int, chip_id: real_chip_type = real_chip_type.origin_wuyuan_d3, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment') List[Dict[str, float]] [源代码]¶
- set_noise_model(arg0: NoiseModel, arg1: List[float], arg2: List[float]) None [源代码]¶
- single_amplitude_pmeasure(prog: QProg, amplitude: str, task_name: str = 'QPanda Experiment') complex [源代码]¶
- class pyqpanda.pyQPanda.QError(value: int)[源代码]¶
Quantum QError Type
Members:
UndefineError
qErrorNone
qParameterError
qubitError
loadFileError
initStateError
destroyStateError
setComputeUnitError
runProgramError
getResultError
getQStateError
- class pyqpanda.pyQPanda.QGate(arg0: NodeIter)[源代码]¶
quantum gate node
- control(control_qubits: QVec) QGate [源代码]¶
Get a control quantumgate base on current quantum gate node
- get_control_qubits(control_qubits: QVec) int [源代码]¶
Get control vector fron current quantum gate node
- Args:
qvec: control qubits output
- Returns:
int: size of control qubits
- class pyqpanda.pyQPanda.QITE[源代码]¶
quantum imaginary time evolution
- set_para_update_mode(arg0: UpdateMode) None [源代码]¶
- set_pauli_matrix(arg0: QuantumMachine, arg1: numpy.ndarray[numpy.float64[m, n]]) None [源代码]¶
- set_quantum_machine_type(arg0: QMachineType) None [源代码]¶
- class pyqpanda.pyQPanda.QIfProg(arg0: NodeIter)[源代码]¶
- class pyqpanda.pyQPanda.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg)
- class pyqpanda.pyQPanda.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg, false_branch_qprog: QProg)
quantum if prog node
- get_classical_condition() ClassicalCondition [源代码]¶
- class pyqpanda.pyQPanda.QMachineType(value: int)[源代码]¶
Quantum machine type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
- CPU: ClassVar[QMachineType] = Ellipsis[源代码]¶
- CPU_SINGLE_THREAD: ClassVar[QMachineType] = Ellipsis[源代码]¶
- GPU: ClassVar[QMachineType] = Ellipsis[源代码]¶
- NOISE: ClassVar[QMachineType] = Ellipsis[源代码]¶
- class pyqpanda.pyQPanda.QOperator[源代码]¶
- class pyqpanda.pyQPanda.QOperator(arg0: QGate)
- class pyqpanda.pyQPanda.QOperator(arg0: QCircuit)
quantum operator class
- class pyqpanda.pyQPanda.QOptimizationResult(arg0: str, arg1: int, arg2: int, arg3: str, arg4: float, arg5: List[float])[源代码]¶
quantum QOptimizationResult class
- class pyqpanda.pyQPanda.QPilotMachine[源代码]¶
pliot machine
- build_noise_params(nose_model_type: int, single_params: List[float], double_params: List[float]) PilotNoiseParams [源代码]¶
- execute_callback_full_amplitude_expectation(prog_str: str, hamiltonian: List[Tuple[Dict[int, str], float]], qubit_vec: List[int], cb_func: Callable[[ErrorCode, float], None], chip_id: int = 33554433) ErrorCode [源代码]¶
- execute_callback_full_amplitude_measure_task(prog_str: str, cb_func: Callable[[ErrorCode, Dict[str, float]], None], chip_id: int = 33554433, shots: int = 1000) ErrorCode [源代码]¶
- execute_callback_full_amplitude_pmeasure_task(prog_str: str, qubit_vec: List[int], cb_func: Callable[[ErrorCode, Dict[str, float]], None], chip_id: int = 33554433) ErrorCode [源代码]¶
- execute_callback_measure_task(prog_str: str, cb_func: Callable[[ErrorCode, Dict[str, float]], None], chip_id: int = 33554432, b_mapping: bool = True, b_optimization: bool = True, shots: int = 1000, specified_block: List[int] = []) ErrorCode [源代码]¶
- execute_callback_noise_measure_task(prog_str: str, noise_params: PilotNoiseParams, cb_func: Callable[[ErrorCode, Dict[str, float]], None], chip_id: int = 33554433, shots: int = 1000) ErrorCode [源代码]¶
- execute_callback_partial_amplitude_task(prog_str: str, target_amplitude_vec: List[str], cb_func: Callable[[ErrorCode, Dict[str, complex]], None], chip_id: int = 33554433) ErrorCode [源代码]¶
- execute_callback_single_amplitude_task(prog_str: str, target_amplitude: str, cb_func: Callable[[ErrorCode, complex], None], chip_id: int = 33554433) ErrorCode [源代码]¶
- execute_full_amplitude_expectation(prog_str: str, hamiltonian: List[Tuple[Dict[int, str], float]], qubit_vec: List[int], chip_id: int = 33554433) float [源代码]¶
- execute_full_amplitude_measure_task(prog_str: str, chip_id: int = 33554433, shots: int = 1000) Dict[str, float] [源代码]¶
- execute_full_amplitude_pmeasure_task(prog_str: str, qubit_vec: List[int], chip_id: int = 33554433) Dict[str, float] [源代码]¶
- execute_measure_task(prog_str: str, chip_id: int = 33554432, b_mapping: bool = True, b_optimization: bool = True, shots: int = 1000, specified_block: List[int] = []) List[Dict[str, float]] [源代码]¶
- execute_noise_measure_task(prog_str: str, noise_params: PilotNoiseParams, chip_id: int = 33554433, shots: int = 1000) Dict[str, float] [源代码]¶
- execute_partial_amplitude_task(prog_str: str, target_amplitude_vec: List[str], chip_id: int = 33554433) Dict[str, complex] [源代码]¶
- class pyqpanda.pyQPanda.QPilotOSMachine(machine_type: str = 'CPU')[源代码]¶
Bases:
QuantumMachine
origin quantum pilot OS Machine
- async_em_compute(qcir: str, noiseLearningResultFile: str, noiseStrength: float = 1.0, loops: int = 100, shot: int = 256) str [源代码]¶
- async_noise_learning(script: str, ir: str, shots: int = 1000, samples: int = 256, circuitDepthList: List[int] = [], isCommon: bool = True, isEMCompute: bool = True) str [源代码]¶
- async_real_chip_expectation(prog: QProg, hamiltonian: str, qubits: List[int], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) str [源代码]¶
- async_real_chip_measure(prog: QProg, shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) str [源代码]¶
- async_real_chip_measure_vec(prog: List[QProg], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) str [源代码]¶
- async_real_chip_measure_vec(ir: List[str], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) str
- cAlloc() ClassicalCondition [源代码]¶
- cAlloc(cbit: int) ClassicalCondition
Allocate a cbit
- cAlloc_many(cbit_num: int) List[ClassicalCondition] [源代码]¶
Allocate a list of cbits
- cFree(arg0: ClassicalCondition) None [源代码]¶
Free a cbit
- cFree_all(cbit_list: List[ClassicalCondition]) None [源代码]¶
- cFree_all() None
Free all of cbits
- em_compute(qcir: str, noiseLearningResultFile: str, noiseStrength: float = 1.0, loops: int = 100, shot: int = 256) str [源代码]¶
- noise_learning(script: str, ir: str, shots: int = 1000, samples: int = 256, circuitDepthList: List[int] = [], isCommon: bool = True, isEMCompute: bool = True) str [源代码]¶
- parse_task_result(result_str: str) Dict[str, float] [源代码]¶
Parse result str to map<string, double> Args:
result_str: Taeget result string
- Returns:
dict: map<string, double>
- Raises:
none
- parse_task_result_vec(result_str: List[str]) List[Dict[str, float]] [源代码]¶
- parse_task_result_vec(result_str: List[str]) List[Dict[str, int]]
Parse result str to map<string, double> Args:
result_str: Taeget result string
- Returns:
array: vector<map<string, double>>
- Raises:
none
- pmeasure_subset(prog: QProg, amplitude: List[str], backendID: int = 33554433) Dict[str, complex] [源代码]¶
- query_compile_prog(task_id: str, without_compensate: bool = True) list [源代码]¶
Query Task compile prog by task_id Args:
without_compensate: whether return the prog without angle compensate
- Returns:
bool: whether find compile prog success
- Raises:
none
- query_task_state(task_id: str) list [源代码]¶
Query Task State by task_id Args:
task_id: Taeget task id, got by async_real_chip_measure
- Returns:
string: task state: 2: Running; 3: Finished; 4: Failed string: task result string
- Raises:
none
- query_task_state_vec(task_id: str) list [源代码]¶
Query Task State by task_id Args:
task_id: Taeget task id, got by async_real_chip_measure
- Returns:
string: task state: 2: Running; 3: Finished; 4: Failed array: task result array
- Raises:
none
- real_chip_expectation(prog: QProg, hamiltonian: str, qubits: List[int], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) float [源代码]¶
- real_chip_measure(prog: QProg, shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) Dict[str, float] [源代码]¶
- real_chip_measure_vec(prog: List[QProg], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) List[Dict[str, float]] [源代码]¶
- real_chip_measure_vec(ir: List[str], shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = []) List[Dict[str, float]]
- class pyqpanda.pyQPanda.QProg[源代码]¶
- class pyqpanda.pyQPanda.QProg(arg0: QProg)
- class pyqpanda.pyQPanda.QProg(arg0: QCircuit)
- class pyqpanda.pyQPanda.QProg(arg0: QIfProg)
- class pyqpanda.pyQPanda.QProg(arg0: QWhileProg)
- class pyqpanda.pyQPanda.QProg(arg0: QGate)
- class pyqpanda.pyQPanda.QProg(arg0: QMeasure)
- class pyqpanda.pyQPanda.QProg(arg0: QReset)
- class pyqpanda.pyQPanda.QProg(arg0: ClassicalCondition)
- class pyqpanda.pyQPanda.QProg(arg0: NodeIter)
Quantum program,can construct quantum circuit,data struct is linked list
- get_used_cbits(cbit_vector: List[ClassicalCondition]) List[ClassicalCondition] [源代码]¶
get a list cbits of prog