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 |
|
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 |
|
Returns: |
|
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 |
|
decode binary data to comm protocol prog list |
encode comm protocol data to binary data |
|
|
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 program info |
|
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 origin 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 origin 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
- c_and(arg0: int) ClassicalCondition [源代码]
- c_and(arg0: ClassicalCondition) ClassicalCondition
- c_not() ClassicalCondition [源代码]
- c_or(arg0: int) ClassicalCondition [源代码]
- c_or(arg0: ClassicalCondition) ClassicalCondition
- 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: numpy.ndarray[numpy.complex128[m, n]], arg1: List[GateType]) None
- set_noise_model(arg0: List[numpy.ndarray[numpy.complex128[m, n]]]) None
- set_noise_model(arg0: List[numpy.ndarray[numpy.complex128[m, n]]], arg1: List[GateType]) 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
MS_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.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
- 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.QCloudService[源代码]
Bases:
QuantumMachine
origin quantum cloud machine
- build_error_mitigation(shots: int, chip_id: int, expectations: List[str], noise_strength: List[float], qemMethod: em_method) str [源代码]
- build_get_expectation(hamiltonian: List[Tuple[Dict[int, str], float]], qubits: List[int]) str [源代码]
- build_get_state_fidelity(shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True) str [源代码]
- build_get_state_tomography_density(shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True) str [源代码]
- build_init_object(arg0: QProg, arg1: str, arg2: int) None [源代码]
- build_init_object(arg0: str, arg1: str, arg2: int) None
- build_read_out_mitigation(shots: int, chip_id: int, expectations: List[str], noise_strength: List[float], qem_method: em_method) str [源代码]
- build_real_chip_measure(shots: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True) str [源代码]
- build_real_chip_measure_batch(prog_list: List[str], shots: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, enable_compress_check: bool = False, batch_id: str = '', task_from: int = 4) str [源代码]
- build_real_chip_measure_batch(prog_list: List[QProg], shots: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, enable_compress_check: bool = False, batch_id: str = '', task_from: int = 4) str
- set_noise_model(arg0: NoiseModel, arg1: List[float], arg2: List[float]) None [源代码]
- class pyqpanda.pyQPanda.QCloudTaskConfig[源代码]
- chip_id: real_chip_type[源代码]
- 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.QPilotOSService(machine_type: str = 'CPU')[源代码]
Bases:
QuantumMachine
origin quantum pilot OS Machine
- 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] = [], describe: str = '') 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] = [], is_prob_counts: bool = True, describe: str = '') str [源代码]
- async_real_chip_measure(ir: str, shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], is_prob_counts: bool = True, describe: str = '') str
- async_real_chip_measure(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] = [], is_prob_counts: bool = True, describe: str = '') str
- async_real_chip_measure(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] = [], is_prob_counts: bool = True, describe: str = '') str
- async_real_chip_measure(prog: List[QProg], config_str: str) 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] = [], is_prob_counts: bool = True, describe: str = '') 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] = [], is_prob_counts: bool = True, describe: str = '') str
- async_real_chip_qst(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] = [], describe: str = '') str [源代码]
- async_real_chip_qst_density(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] = [], describe: str = '') str [源代码]
- async_real_chip_qst_fidelity(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] = [], describe: str = '') str [源代码]
- build_task_msg(prog: List[QProg], shot: int, chip_id: int, is_amend: bool, is_mapping: bool, is_optimization: bool, specified_block: List[int], task_describe: str) 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
- init() None [源代码]
- init(url: str, log_cout: bool = False, api_key: str = None) None
- init(url: str, log_cout: bool = False, username: str = None, password: str = None) None
- parse_prob_counts_result(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
- parse_probability_result(result_str: List[str]) List[Dict[str, float]] [源代码]
Parse result str to map<string, double> Args:
result_str: Taeget result string
- Returns:
array: vector<map<string, double>>
- Raises:
none
- 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
- 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(task_id: str, is_save: bool, file_path: str = '') list
- 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] = [], describe: str = '') 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] = [], describe: str = '') Dict[str, float] [源代码]
- real_chip_measure(ir: str, shot: int = 1000, chip_id: int = 33554432, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], describe: str = '') Dict[str, float]
- real_chip_measure(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] = [], describe: str = '') List[Dict[str, float]]
- real_chip_measure(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] = [], describe: str = '') List[Dict[str, float]]
- real_chip_measure(prog: List[QProg], config_str: str) str
- real_chip_measure_prob_count(ir: str, shot: int = 1000, chip_id: int = 33554432, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], describe: str = '') Dict[str, int] [源代码]
- real_chip_measure_prob_count(prog: QProg, shot: int = 1000, chip_id: int = 33554432, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], describe: str = '') Dict[str, int]
- real_chip_measure_prob_count(ir: List[str], shot: int = 1000, chip_id: int = 33554432, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], describe: str = '') List[Dict[str, int]]
- real_chip_measure_prob_count(prog: List[QProg], shot: int = 1000, chip_id: int = 33554432, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], describe: str = '') List[Dict[str, int]]
- 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] = [], describe: str = '') 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] = [], describe: str = '') List[Dict[str, float]]
- runWithConfiguration(prog: QProg, shots: int = 1000, backend_id: int = 33554433, noise_model: Noise = ...) Dict[str, int] [源代码]
- 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
- class pyqpanda.pyQPanda.QProgDAG[源代码]
quantum prog dag class
- get_edges() List[QProgDAGEdge] [源代码]
- get_target_vertex(vertice_num: int) QProgDAGVertex [源代码]
- get_vertex_set() List[QProgDAGVertex] [源代码]
- class pyqpanda.pyQPanda.QProgDAGEdge(from_arg: int, to_arg: int, qubit_arg: int)[源代码]
quantum prog dag edge
- class pyqpanda.pyQPanda.QProgDAGVertex[源代码]
quantum prog dag vertex node
- m_type: DAGNodeType[源代码]
- class pyqpanda.pyQPanda.QResult(*args, **kwargs)[源代码]
QResult abstract class, this class contains the result of the quantum measurement
- class pyqpanda.pyQPanda.QVec[源代码]
- class pyqpanda.pyQPanda.QVec(qubit_list: List[Qubit])
- class pyqpanda.pyQPanda.QVec(qvec: QVec)
- class pyqpanda.pyQPanda.QVec(qubit: Qubit)
Qubit vector basic class
- class pyqpanda.pyQPanda.QWhileProg(arg0: NodeIter)[源代码]
- class pyqpanda.pyQPanda.QWhileProg(arg0: ClassicalCondition, arg1: QProg)
quantum while node
- get_classical_condition() ClassicalCondition [源代码]
- class pyqpanda.pyQPanda.QuantumMachine(*args, **kwargs)[源代码]
quantum machine base class
- allocate_qubit_through_phy_address(address: int) Qubit [源代码]
allocate qubits through phy address
- Args:
address: qubit phy address
- Returns:
Qubit
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- allocate_qubit_through_vir_address(address: int) Qubit [源代码]
allocate qubits through vir address
- Args:
address: qubit vir address
- Returns:
Qubit
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- async_run(qprog: QProg, noise_model: Noise = NoiseModel()) None [源代码]
Run quantum prog asynchronously at background Use get_processed_qgate_num() to get check the asynchronous process progress Use is_async_finished() check whether asynchronous process finished Use get_async_result() block current code and get asynchronous process result unitll it finished
- cAlloc() ClassicalCondition [源代码]
- cAlloc(cbit: int) ClassicalCondition
Allocate a CBit After init()
- Args:
cbit_addr: cbit address, should in [0,29)
- Returns:
classic result cbit
- cAlloc_many(cbit_num: int) List[ClassicalCondition] [源代码]
Allocate several CBits After init()
- Args:
cbit_num: numbers of cbit want to be created
- Returns:
list of cbit
- cFree(arg0: ClassicalCondition) None [源代码]
Free a CBit
- Args:
CBit: a CBit
- Returns:
none
- cFree_all(cbit_list: List[ClassicalCondition]) None [源代码]
- cFree_all() None
Free all cbits
- Args:
none
- Returns:
none
- directly_run(qprog: QProg, noise_model: Noise = NoiseModel()) Dict[str, bool] [源代码]
Directly run quantum prog After init()
- Args:
qprog: quantum program noise_model: noise model, default is no noise. noise model only work on CPUQVM now
- Returns:
- Dict[str, bool]: result of quantum program execution one shot.
first is the final qubit register state, second is it's measure probability
- finalize() None [源代码]
finalize quantum machine
- Args:
none
- Returns:
none
- Raises:
run_fail: An error occurred in finalize
- getAllocateCMem() int [源代码]
Get allocated cbits of QuantumMachine
- Args:
none
- Returns:
cbit list
- Raises:
run_fail: An error occurred in allocated cbits of QuantumMachine
- getAllocateQubitNum() int [源代码]
Get allocated qubits of QuantumMachine
- Args:
none
- Returns:
qubit list
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- getStatus(*args, **kwargs) Any [源代码]
Get the status of the Quantum machine
- Args:
none
- Returns:
the status of the Quantum machine, see QMachineStatus
- Raises:
init_fail: An error occurred
- get_allocate_cbits() List[ClassicalCondition] [源代码]
Get allocated cbits of QuantumMachine
- Args:
none
- Returns:
cbit list
- Raises:
run_fail: An error occurred in allocated cbits of QuantumMachine
- get_allocate_cmem_num() int [源代码]
Get allocated cbits of QuantumMachine
- Args:
none
- Returns:
cbit list
- Raises:
run_fail: An error occurred in allocated cbits of QuantumMachine
- get_allocate_qubit_num() int [源代码]
Get allocated qubits of QuantumMachine
- Args:
none
- Returns:
qubit list
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- get_allocate_qubits() QVec [源代码]
Get allocated qubits of QuantumMachine
- Args:
none
- Returns:
qubit list
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- get_expectation(qprog: QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qubit_list: QVec) float [源代码]
- get_expectation(qprog: QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qubit_list: QVec, shots: int) float
get expectation of current hamiltonian
- Args:
qprog : quantum prog hamiltonian: selected hamiltonian qubit_list : measure qubit list shots : measure shots
- Returns:
double : expectation of current hamiltonian
- Raises:
run_fail: An error occurred in get_expectation
- get_qstate() List[complex] [源代码]
Get the status of the Quantum machine
- Args:
none
- Returns:
the status of the Quantum machine, see QMachineStatus
- Raises:
init_fail: An error occurred
- get_status(*args, **kwargs) Any [源代码]
Get the status of the Quantum machine
- Args:
none
- Returns:
the status of the Quantum machine, see QMachineStatus
- Raises:
init_fail: An error occurred
- initQVM() None [源代码]
Init the global unique quantum machine at background.
- Args:
machine_type: quantum machine type, see pyQPanda.QMachineType
- Returns:
bool: ture if initialization success
- init_qvm() None [源代码]
Init the global unique quantum machine at background.
- Args:
machine_type: quantum machine type, see pyQPanda.QMachineType
- Returns:
bool: ture if initialization success
- qAlloc() Qubit [源代码]
Allocate a qubits After init()
- Args:
qubit_addr: qubit physic address, should in [0,29)
- Returns:
pyQPanda.Qubit: None, if qubit_addr error, or reached max number of allowed qubit
- qAlloc_many(qubit_num: int) List[Qubit] [源代码]
Allocate several qubits After init()
- Args:
qubit_num: numbers of qubit want to be created
- Returns:
list[pyQPanda.Qubit]: list of qubit
- qFree_all(qubit_list: QVec) None [源代码]
- qFree_all(arg0: QVec) None
Free all qubits
- Args:
none
- Returns:
none
- run_with_configuration(qprog: QProg, cbit_list: List[ClassicalCondition], data: dict, noise_model: Noise = NoiseModel()) Dict[str, int] [源代码]
- run_with_configuration(qprog: QProg, cbit_list: List[ClassicalCondition], shot: int, noise_model: Noise = NoiseModel()) Dict[str, int]
- run_with_configuration(qprog: QProg, shot: int, noise_model: Noise = NoiseModel()) Dict[str, int]
- run_with_configuration(qprog: QProg, cbit_list: List[int], shot: int, noise_model: Noise = NoiseModel()) Dict[str, int]
Run quantum program with configuration
- Args:
program: quantum program cbit_list: classic cbits list shots: repeate run quantum program times noise_model: noise model, default is no noise. noise model only work on CPUQVM now
- Returns:
result of quantum program execution in shots. first is the final qubit register state, second is it's hit shotRaises: run_fail: An error occurred in measure quantum program
- class pyqpanda.pyQPanda.QuantumStateTomography[源代码]
quantum state tomography class
- combine_qprogs(circuit: QProg, qlist: QVec) List[QProg] [源代码]
- combine_qprogs(circuit: QCircuit, qlist: QVec) List[QProg]
- combine_qprogs(circuit: QProg, qlist: List[int]) List[QProg]
- combine_qprogs(circuit: QCircuit, qlist: List[int]) List[QProg]
Return a list of quantum state tomography quantum programs.
- class pyqpanda.pyQPanda.Qubit(*args, **kwargs)[源代码]
Qubit abstract class
- getPhysicalQubitPtr() PhysicalQubit [源代码]
- class pyqpanda.pyQPanda.RMSPropOptimizer(arg0: var, arg1: float, arg2: float, arg3: float)[源代码]
variational quantum RMSPropOptimizer
- class pyqpanda.pyQPanda.SingleAmpQVM[源代码]
Bases:
QuantumMachine
quantum single amplitude machine class
- get_prob_dict(arg0: QVec) Dict[str, float] [源代码]
- get_prob_dict(arg0: List[int]) Dict[str, float]
Get pmeasure result as dict
- Args:
qubit_list: pmeasure qubits list
- Returns:
measure result of quantum machineRaises: run_fail: An error occurred in get_prob_dict
- pmeasure_bin_amplitude(arg0: 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_index(arg0: str) float [源代码]
pmeasure bin index quantum state amplitude
- Args:
string : bin string
- Returns:
double : bin amplitude prob
- Raises:
run_fail: An error occurred in pmeasure_bin_index
- pmeasure_dec_amplitude(arg0: str) complex [源代码]
pmeasure dec index quantum state amplitude
- Args:
string : dec string
- Returns:
complex : dec amplitude amplitude
- Raises:
run_fail: An error occurred in pmeasure_dec_index
- pmeasure_dec_index(arg0: str) float [源代码]
pmeasure dec index quantum state amplitude
- Args:
string : dec string
- Returns:
double : dec amplitude prob
- Raises:
run_fail: An error occurred in pmeasure_dec_index
- prob_run_dict(arg0: QProg, arg1: QVec) Dict[str, float] [源代码]
- prob_run_dict(arg0: QProg, arg1: List[int]) Dict[str, float]
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program qubit_list: pmeasure qubits list
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- run(prog: QProg, qv: QVec, max_rank: int = 30, alloted_time: int = 5) None [源代码]
- run(arg0: QProg, arg1: QVec, arg2: int, arg3: List[List[Tuple[int, bool]]]) None
run the quantum program
- Args:
QProg: quantum prog QVec: qubits list size_t: max_rank list: sequences
- Returns:
none
- Raises:
run_fail: An error occurred in run
- class pyqpanda.pyQPanda.SingleGateTransferType(value: int)[源代码]
Quantum single gate transfer type
Members:
SINGLE_GATE_INVALID
ARBITRARY_ROTATION
DOUBLE_CONTINUOUS
SINGLE_CONTINUOUS_DISCRETE
DOUBLE_DISCRETE
- ARBITRARY_ROTATION: ClassVar[SingleGateTransferType] = Ellipsis[源代码]
- DOUBLE_CONTINUOUS: ClassVar[SingleGateTransferType] = Ellipsis[源代码]
- DOUBLE_DISCRETE: ClassVar[SingleGateTransferType] = Ellipsis[源代码]
- SINGLE_CONTINUOUS_DISCRETE: ClassVar[SingleGateTransferType] = Ellipsis[源代码]
- SINGLE_GATE_INVALID: ClassVar[SingleGateTransferType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.SparseQVM[源代码]
Bases:
QuantumMachine
quantum sparse machine class
- directlyRun(arg0: QProg) Dict[str, bool] [源代码]
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program
- Returns:
Dict[str, bool]: result of quantum program execution one shot.
- Raises:
run_fail: An error occurred in measure quantum program
- directly_run(arg0: QProg) Dict[str, bool] [源代码]
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- prob_run_dict(arg0: QProg) Dict[str, float] [源代码]
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- run_with_configuration(arg0: QProg, arg1: List[ClassicalCondition], arg2: int) Dict[str, int] [源代码]
Run quantum program and get pmeasure result as dict
- Args:
qprog: quantum program
- Args:
cbits: quantum cbits
- Args:
shots: samble shots
- Returns:
measure result of quantum machine
- Raises:
run_fail: An error occurred in measure quantum program
- class pyqpanda.pyQPanda.Stabilizer[源代码]
Bases:
QuantumMachine
simulator for basic clifford simulator
- prob_run_dict(qprog: QProg, qubits: QVec, select_max: int = -1) Dict[str, float] [源代码]
Run quantum program and get probabilities
- Args:
prog: quantum program qubits: pmeasure qubits
- Returns:
probabilities result of quantum program
- Raises:
run_fail: An error occurred in prob_run_dict
- run_with_configuration(qprog: QProg, shot: int) Dict[str, int] [源代码]
Run quantum program and get shots result
- Args:
prog: quantum program int: measure shots
- Returns:
shots result of quantum program
- Raises:
run_fail: An error occurred in run_with_configuration
- 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
- class pyqpanda.pyQPanda.UpdateMode(value: int)[源代码]
quantum imaginary time evolution update mode
Members:
GD_VALUE
GD_DIRECTION
- GD_DIRECTION: ClassVar[UpdateMode] = Ellipsis[源代码]
- GD_VALUE: ClassVar[UpdateMode] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.VanillaGradientDescentOptimizer(arg0: var, arg1: float, arg2: float, arg3: OptimizerMode)[源代码]
variational quantum VanillaGradientDescentOptimizer
- class pyqpanda.pyQPanda.VariationalQuantumCircuit[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumCircuit(arg0: QCircuit)
variational quantum CIRCUIT class
- control(arg0: QVec) VariationalQuantumCircuit [源代码]
- dagger() VariationalQuantumCircuit [源代码]
- insert(arg0: VariationalQuantumGate_I) VariationalQuantumCircuit [源代码]
- insert(arg0: VariationalQuantumGate_H) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_X) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_Y) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_T) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_S) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_Z) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_X1) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_Y1) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_Z1) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_U1) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_U2) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_U3) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_U4) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_RX) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_RY) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_RZ) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CNOT) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CR) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CZ) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CRX) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CRY) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_CRZ) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_SWAP) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_iSWAP) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumGate_SqiSWAP) VariationalQuantumCircuit
- insert(arg0: VariationalQuantumCircuit) VariationalQuantumCircuit
- insert(arg0: QCircuit) VariationalQuantumCircuit
- insert(arg0: QGate) VariationalQuantumCircuit
- class pyqpanda.pyQPanda.VariationalQuantumGate(*args, **kwargs)[源代码]
variational quantum gate base class
- class pyqpanda.pyQPanda.VariationalQuantumGate_CNOT(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum CNOT gate class
- control(arg0: QVec) VariationalQuantumGate_CNOT [源代码]
- dagger() VariationalQuantumGate_CNOT [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CR(arg0: Qubit, arg1: Qubit, arg2: float)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CR(arg0: Qubit, arg1: Qubit, arg2: var)
- class pyqpanda.pyQPanda.VariationalQuantumGate_CR(arg0: VariationalQuantumGate_CR)
Bases:
VariationalQuantumGate
variational quantum CR gate class
- control(arg0: QVec) VariationalQuantumGate_CR [源代码]
- dagger() VariationalQuantumGate_CR [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRX(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRX(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRX(arg0: VariationalQuantumGate_CRX)
Bases:
VariationalQuantumGate
variational quantum CRX gate class
- control(arg0: QVec) VariationalQuantumGate_CRX [源代码]
- dagger() VariationalQuantumGate_CRX [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRY(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRY(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRY(arg0: VariationalQuantumGate_CRY)
Bases:
VariationalQuantumGate
variational quantum CRY gate class
- control(arg0: QVec) VariationalQuantumGate_CRY [源代码]
- dagger() VariationalQuantumGate_CRY [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRZ(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRZ(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.pyQPanda.VariationalQuantumGate_CRZ(arg0: VariationalQuantumGate_CRZ)
Bases:
VariationalQuantumGate
variational quantum CRZ gate class
- control(arg0: QVec) VariationalQuantumGate_CRZ [源代码]
- dagger() VariationalQuantumGate_CRZ [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CU(arg0: Qubit, arg1: Qubit, arg2: float, arg3: float, arg4: float, arg5: float)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CU(arg0: Qubit, arg1: Qubit, arg2: var, arg3: var, arg4: var, arg5: var)
- class pyqpanda.pyQPanda.VariationalQuantumGate_CU(arg0: VariationalQuantumGate_CU)
Bases:
VariationalQuantumGate
variational quantum CU gate class
- control(arg0: QVec) VariationalQuantumGate_CU [源代码]
- dagger() VariationalQuantumGate_CU [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_CZ(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum CZ gate class
- control(arg0: QVec) VariationalQuantumGate_CZ [源代码]
- dagger() VariationalQuantumGate_CZ [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_H(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum H gate class
- control(arg0: QVec) VariationalQuantumGate_H [源代码]
- dagger() VariationalQuantumGate_H [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_I(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum I gate class
- control(arg0: QVec) VariationalQuantumGate_I [源代码]
- dagger() VariationalQuantumGate_I [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RX(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RX(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RX gate class
- control(arg0: QVec) VariationalQuantumGate_RX [源代码]
- dagger() VariationalQuantumGate_RX [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RY(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RY(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RY gate class
- control(arg0: QVec) VariationalQuantumGate_RY [源代码]
- dagger() VariationalQuantumGate_RY [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RZ(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_RZ(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RZ gate class
- control(arg0: QVec) VariationalQuantumGate_RZ [源代码]
- dagger() VariationalQuantumGate_RZ [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_S(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum S gate class
- control(arg0: QVec) VariationalQuantumGate_S [源代码]
- dagger() VariationalQuantumGate_S [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_SWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum SWAP gate class
- control(arg0: QVec) VariationalQuantumGate_SWAP [源代码]
- dagger() VariationalQuantumGate_SWAP [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_SqiSWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum SqiSWAP gate class
- control(arg0: QVec) VariationalQuantumGate_SqiSWAP [源代码]
- dagger() VariationalQuantumGate_SqiSWAP [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_T(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum T gate class
- control(arg0: QVec) VariationalQuantumGate_T [源代码]
- dagger() VariationalQuantumGate_T [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U1(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U1(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum U1 gate class
- control(arg0: QVec) VariationalQuantumGate_U1 [源代码]
- dagger() VariationalQuantumGate_U1 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U2(arg0: Qubit, arg1: var, arg2: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U2(arg0: Qubit, arg1: float, arg2: float)
Bases:
VariationalQuantumGate
variational quantum U2 gate class
- control(arg0: QVec) VariationalQuantumGate_U2 [源代码]
- dagger() VariationalQuantumGate_U2 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U3(arg0: Qubit, arg1: var, arg2: var, arg3: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U3(arg0: Qubit, arg1: float, arg2: float, arg3: float)
Bases:
VariationalQuantumGate
variational quantum U3 gate class
- control(arg0: QVec) VariationalQuantumGate_U3 [源代码]
- dagger() VariationalQuantumGate_U3 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U4(arg0: Qubit, arg1: var, arg2: var, arg3: var, arg4: var)[源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_U4(arg0: Qubit, arg1: float, arg2: float, arg3: float, arg4: float)
Bases:
VariationalQuantumGate
variational quantum U4 gate class
- control(arg0: QVec) VariationalQuantumGate_U4 [源代码]
- dagger() VariationalQuantumGate_U4 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_X(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum X gate class
- control(arg0: QVec) VariationalQuantumGate_X [源代码]
- dagger() VariationalQuantumGate_X [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_X1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum X1 gate class
- control(arg0: QVec) VariationalQuantumGate_X1 [源代码]
- dagger() VariationalQuantumGate_X1 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_Y(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Y gate class
- control(arg0: QVec) VariationalQuantumGate_Y [源代码]
- dagger() VariationalQuantumGate_Y [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_Y1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Y1 gate class
- control(arg0: QVec) VariationalQuantumGate_Y1 [源代码]
- dagger() VariationalQuantumGate_Y1 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_Z(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Z gate class
- control(arg0: QVec) VariationalQuantumGate_Z [源代码]
- dagger() VariationalQuantumGate_Z [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_Z1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Z1 gate class
- control(arg0: QVec) VariationalQuantumGate_Z1 [源代码]
- dagger() VariationalQuantumGate_Z1 [源代码]
- class pyqpanda.pyQPanda.VariationalQuantumGate_iSWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum iSWAP gate class
- control(arg0: QVec) VariationalQuantumGate_iSWAP [源代码]
- dagger() VariationalQuantumGate_iSWAP [源代码]
- class pyqpanda.pyQPanda.em_method(value: int)[源代码]
origin quantum real chip error_mitigation type
Members:
ZNE
PEC
READ_OUT
- class pyqpanda.pyQPanda.expression(arg0: var)[源代码]
variational quantum expression class
- class pyqpanda.pyQPanda.real_chip_type(value: int)[源代码]
origin quantum real chip type enum
Members:
origin_wuyuan_d3
origin_wuyuan_d4
origin_wuyuan_d5
origin_72
- origin_72: ClassVar[real_chip_type] = Ellipsis[源代码]
- origin_wuyuan_d3: ClassVar[real_chip_type] = Ellipsis[源代码]
- origin_wuyuan_d4: ClassVar[real_chip_type] = Ellipsis[源代码]
- origin_wuyuan_d5: ClassVar[real_chip_type] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.var(arg0: float)[源代码]
- class pyqpanda.pyQPanda.var(arg0: numpy.ndarray[numpy.float64[m, n], flags.writeable])
- class pyqpanda.pyQPanda.var(arg0: float, arg1: bool)
- class pyqpanda.pyQPanda.var(arg0: numpy.ndarray[numpy.float64[m, n], flags.writeable], arg1: bool)
quantum variational class
- pyqpanda.pyQPanda.BARRIER(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.BARRIER(qubit_list: int) QGate
- pyqpanda.pyQPanda.BARRIER(qubit_list: QVec) QGate
- pyqpanda.pyQPanda.BARRIER(qubit_addr_list: List[int]) QGate
Create a BARRIER gate
- Args:
qubit_list : measure qubits list
- Returns:
a BARRIER node
- pyqpanda.pyQPanda.CNOT(control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.CNOT(control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.CNOT(control_qubit_addr: int, target_qubit_addr: int) QGate
- pyqpanda.pyQPanda.CNOT(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int]) QCircuit
- Returns:
a CNOT gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.CP(control_qubit: Qubit, target_qubit: Qubit, theta_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.CP(control_qubit_list: QVec, target_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.pyQPanda.CP(control_qubit_addr: int, target_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.pyQPanda.CP(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], theta_angle: float) QCircuit
- Returns:
a CP gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.CR(control_qubit: Qubit, target_qubit: Qubit, theta_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.CR(control_qubit_list: QVec, target_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.pyQPanda.CR(control_qubit_addr: int, target_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.pyQPanda.CR(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], theta_angle: float) QCircuit
- Returns:
a CR gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.CU(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.CU(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, control_qubit_list: QVec, target_qubi_list: QVec) QCircuit
- pyqpanda.pyQPanda.CU(matrix: List[complex], control_qubit: Qubit, target_qubit: Qubit) QGate
- pyqpanda.pyQPanda.CU(matrix: List[complex], control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.CU(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QGate
- pyqpanda.pyQPanda.CU(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QCircuit
- pyqpanda.pyQPanda.CU(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QGate
- pyqpanda.pyQPanda.CU(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QCircuit
- pyqpanda.pyQPanda.CU(control_qubit: Qubit, target_qubit: Qubit, matrix: List[complex]) QGate
- pyqpanda.pyQPanda.CU(control_qubit_list: QVec, target_qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.pyQPanda.CU(control_qubit_addr: int, target_qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.pyQPanda.CU(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], matrix: List[complex]) QCircuit
Create a CU gate
- Args:
matrix : CU gate matrix qubit addr list: control qubit addr list qubit addr list: target qubit addr list
- Returns:
a CU node
- pyqpanda.pyQPanda.CZ(control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.CZ(control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.CZ(control_qubit_addr: int, target_qubit_addr: int) QGate
- pyqpanda.pyQPanda.CZ(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int]) QCircuit
- Returns:
a CZ gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.CreateEmptyCircuit() QCircuit [源代码]
Create an empty QCircuit Container
- Args:
none
- Returns:
a empty QCircuit
- pyqpanda.pyQPanda.CreateEmptyQProg() QProg [源代码]
Create an empty QProg Container
- Args:
none
- Returns:
a empty QProg
- pyqpanda.pyQPanda.CreateIfProg(classical_condition: ClassicalCondition, true_node: QProg) QIfProg [源代码]
- pyqpanda.pyQPanda.CreateIfProg(classical_condition: ClassicalCondition, true_node: QProg, false_node: QProg) QIfProg
Create a classical quantum IfProg
- Args:
classical_condition: quatum cbit true_node: quantum IfProg true qnode false_node: quantum IfProg false qnode
- Returns:
a classical quantum IfProg
- pyqpanda.pyQPanda.CreateWhileProg(classical_condition: ClassicalCondition, true_node: QProg) QWhileProg [源代码]
Create a WhileProg Args:
classical_condition: quatum cbit true_node: quantum QWhile qnode
- Returns:
a WhileProg
- pyqpanda.pyQPanda.Grover(*args, **kwargs) Any [源代码]
Quantum grover circuit
- Args:
qvec: qubit list Classical_condition: quantum Classical condition QuantumMachine: quantum machine
- Returns:
result : Grover circuit
- Raises:
run_fail: An error occurred in Grover
- pyqpanda.pyQPanda.Grover_search(list: List[int], Classical_condition: ClassicalCondition, QuantumMachine: Grover_search.QuantumMachine, repeat: int = 2) Grover_search.list [源代码]
- pyqpanda.pyQPanda.Grover_search(list: List[str], Classical_condition: str, QuantumMachine: Grover_search.QuantumMachine, data: int = 2) Grover_search.list
use Grover algorithm to search target data, return QProg and search_result
- pyqpanda.pyQPanda.H(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.H(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.H(qubit_addr: int) QGate
- pyqpanda.pyQPanda.H(qubit_addr_list: List[int]) QCircuit
Create a H gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a H gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.HHL_solve_linear_equations(matrix_A: List[complex], data_b: List[float], precision_cnt: int = 0) List[complex] [源代码]
Use HHL algorithm to solve the target linear systems of equations : Ax = b
- Args:
matrix_A: a unitary matrix or Hermitian N*N matrix with N = 2 ^ n data_b: a given vector precision_cnt: The count of digits after the decimal point
default is 0, indicates that there are only integer solutions.
- Returns:
QStat The solution of equation, i.e.x for Ax = b
- Notes:
The higher the precision is, the more qubit number and circuit - depth will be, for example: 1 - bit precision, 4 additional qubits are required, for 2 - bit precision, we need 7 additional qubits, and so on.
- pyqpanda.pyQPanda.I(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.I(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.I(qubit_addr: int) QGate
- pyqpanda.pyQPanda.I(qubit_addr_list: List[int]) QCircuit
Create a I gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a I gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.MAJ(arg0: Qubit, arg1: Qubit, arg2: Qubit) QCircuit [源代码]
Quantum adder MAJ module
- pyqpanda.pyQPanda.MAJ2(arg0: QVec, arg1: QVec, arg2: Qubit) QCircuit [源代码]
Quantum adder MAJ2 module
- pyqpanda.pyQPanda.MS(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.MS(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.MS(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.pyQPanda.MS(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int]) QCircuit
- Returns:
a MS gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Measure(qubit: Qubit, cbit: ClassicalCondition) QMeasure [源代码]
- pyqpanda.pyQPanda.Measure(qubit: Qubit, cbit: CBit) QMeasure
- pyqpanda.pyQPanda.Measure(qubit_addr: int, cbit_addr: int) QMeasure
Create an measure node
- Args:
qubit : measure qubit cbit : cbit stores quantum measure result
- Returns:
a quantum measure node
- pyqpanda.pyQPanda.OBMT_mapping(prog: QProg, quantum_machine: QuantumMachine, b_optimization: bool = False, max_partial: int = 4294967295, max_children: int = 4294967295, config_data: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.pyQPanda.OBMT_mapping(prog: QProg, quantum_machine: QuantumMachine, b_optimization: bool, arch_matrix: numpy.ndarray[numpy.float64[m, n]]) QProg
OPT_BMT mapping
- Args:
prog: the target prog quantum_machine: quantum machine b_optimization: whether open the optimization arch_matrix: arch graph matrix
- Returns:
mapped quantum program
- pyqpanda.pyQPanda.P(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.pyQPanda.P(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.pyQPanda.P(qubit_addr: int, angle: float) QGate
- pyqpanda.pyQPanda.P(qubit_addr_list: List[int], angle: float) QCircuit
Create a P gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a P gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.PMeasure(arg0: QVec, arg1: int) List[Tuple[int, float]] [源代码]
Deprecated, use pmeasure instead
- Args:
QVec : pmeasure qubits list select_num : result select num
- Returns:
result: pmeasure qubits result
- Raises:
run_fail: An error occurred in pmeasure
- pyqpanda.pyQPanda.PMeasure_no_index(arg0: QVec) List[float] [源代码]
Deprecated, use pmeasure_no_index instead
- Args:
QVec : pmeasure qubits list
- Returns:
result: pmeasure qubits result
- Raises:
run_fail: An error occurred in pmeasure_no_index
- pyqpanda.pyQPanda.QAdd(arg0: QVec, arg1: QVec, arg2: QVec) QCircuit [源代码]
Quantum adder that supports signed operations, but ignore carry
- pyqpanda.pyQPanda.QAdder(arg0: QVec, arg1: QVec, arg2: Qubit, arg3: Qubit) QCircuit [源代码]
Quantum adder with carry
- pyqpanda.pyQPanda.QAdderIgnoreCarry(arg0: QVec, arg1: QVec, arg2: Qubit) QCircuit [源代码]
Args:
QVec: qubits list a QVec: qubits list b QVec: qubits list c Qubit: qubit
Returns:
result : circuit
- Raises:
run_fail: An error occurred in QAdderIgnoreCarry
- pyqpanda.pyQPanda.QComplement(arg0: QVec, arg1: QVec) QCircuit [源代码]
Convert quantum state to binary complement representation
- pyqpanda.pyQPanda.QDiv(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec, arg4: ClassicalCondition) QProg [源代码]
Quantum division
- pyqpanda.pyQPanda.QDivWithAccuracy(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec, arg4: QVec, arg5: List[ClassicalCondition]) QProg [源代码]
Args:
QVec: qubits list a QVec: qubits list b QVec: qubits list c QVec: qubits list k QVec: qubits list f QVec: qubits list s list: ClassicalCondition list
Returns:
result : circuit
- Raises:
run_fail: An error occurred in QDivWithAccuracy
- pyqpanda.pyQPanda.QDivider(a: QVec, b: QVec, c: QVec, k: QVec, t: ClassicalCondition) QProg [源代码]
Quantum division, only supports positive division, and the highest position of a and b and c is sign bit
- pyqpanda.pyQPanda.QDividerWithAccuracy(a: QVec, b: QVec, c: QVec, k: QVec, f: QVec, s: List[ClassicalCondition]) QProg [源代码]
Args:
QVec: qubits list a QVec: qubits list b QVec: qubits list c QVec: qubits list k QVec: qubits list f QVec: qubits list s list: ClassicalCondition list
Returns:
result : circuit
- Raises:
run_fail: An error occurred in QDividerWithAccuracy
- pyqpanda.pyQPanda.QDouble(first_qubit: Qubit, second_qubit: Qubit, matrix: List[complex]) QGate [源代码]
- pyqpanda.pyQPanda.QDouble(first_qubit_list: QVec, second_qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.pyQPanda.QDouble(first_qubit_addr: int, second_qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.pyQPanda.QDouble(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int], matrix: List[complex]) QCircuit
- Returns:
a QDouble gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.QFT(qubits: QVec) QCircuit [源代码]
Build QFT quantum circuit
- Args:
qvec: qubit list
- Returns:
result : qft circuit
- Raises:
run_fail: An error occurred in QFT
- pyqpanda.pyQPanda.QMul(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec) QCircuit [源代码]
Quantum multiplication
- pyqpanda.pyQPanda.QMultiplier(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec) QCircuit [源代码]
Quantum multiplication, only supports positive multiplication
- pyqpanda.pyQPanda.QOracle(qubit_list: QVec, matrix: numpy.ndarray[numpy.complex128[m, n]], tol: float = 1e-10) QGate [源代码]
Generate QOracle Gate
- Args: qubit_list: gate in qubit list
matrix: gate operator matrix
- Return:
Oracle gate
- pyqpanda.pyQPanda.QPE(control_qubits: QVec, target_qubits: QVec, matrix: List[complex], b_estimate_eigenvalue: bool = False) QCircuit [源代码]
Quantum phase estimation
- Args:
control_qubits: control qubit list target_qubits: target qubit list matrix: matrix
- Returns:
result : QPE circuit
- Raises:
run_fail: An error occurred in QPE
- pyqpanda.pyQPanda.RX(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RX(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.pyQPanda.RX(qubit_addr: int, angle: float) QGate
- pyqpanda.pyQPanda.RX(qubit_addr_list: List[int], angle: float) QCircuit
Create a RX gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a RX gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RXX(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RXX(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.pyQPanda.RXX(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.pyQPanda.RXX(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], alpha_angle: float) QCircuit
Create a RXX gate
- Args:
qubit addr list : control qubit addr list qubit addr list : target qubit addr list double: gate rotation angle theta
- Returns:
a RXX gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RY(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RY(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.pyQPanda.RY(qubit_addr: int, angle: float) QGate
- pyqpanda.pyQPanda.RY(qubit_addr_list: List[int], angle: float) QCircuit
Create a RY gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a RY gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RYY(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RYY(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.pyQPanda.RYY(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.pyQPanda.RYY(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], alpha_angle: float) QCircuit
Create a RYY gate
- Args:
qubit addr list : control qubit addr list qubit addr list : target qubit addr list double: gate rotation angle theta
- Returns:
a RYY gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RZ(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RZ(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.pyQPanda.RZ(qubit_addr: int, angle: float) QGate
- pyqpanda.pyQPanda.RZ(qubit_addr_list: List[int], angle: float) QCircuit
Create a RZ gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a RZ gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RZX(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RZX(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.pyQPanda.RZX(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.pyQPanda.RZX(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], alpha_angle: float) QCircuit
Create a RZX gate
- Args:
qubit addr list : control qubit addr list qubit addr list : target qubit addr list double: gate rotation angle theta
- Returns:
a RZX gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.RZZ(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.RZZ(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.pyQPanda.RZZ(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.pyQPanda.RZZ(control_qubit_addr_list: List[int], target_qubit_addr_list: List[int], alpha_angle: float) QCircuit
Create a RZZ gate
- Args:
qubit addr list : control qubit addr list qubit addr list : target qubit addr list double: gate rotation angle theta
- Returns:
a RZZ gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Reset(qubit: Qubit) QReset [源代码]
- pyqpanda.pyQPanda.Reset(qubit_addr: int) QReset
Create a Reset node
- pyqpanda.pyQPanda.S(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.S(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.S(qubit_addr: int) QGate
- pyqpanda.pyQPanda.S(qubit_addr_list: List[int]) QCircuit
Create a S gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a S gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.SWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.SWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.SWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.pyQPanda.SWAP(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int]) QCircuit
- Returns:
a SWAP gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Shor_factorization(arg0: int) Tuple[bool, Tuple[int, int]] [源代码]
Use Shor factorize integer num
- Args:
int: target integer num result: Shor result
- Returns:
result : Shor_factorization search result
- Raises:
run_fail: An error occurred in Shor_factorization
- pyqpanda.pyQPanda.SqiSWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.SqiSWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.SqiSWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.pyQPanda.SqiSWAP(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int]) QCircuit
- Returns:
a SqiSWAP gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.T(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.T(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.T(qubit_addr: int) QGate
- pyqpanda.pyQPanda.T(qubit_addr_list: List[int]) QCircuit
Create a T gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a T gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Toffoli(control_qubit_first: Qubit, control_qubit_second: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.Toffoli(control_qubit_addr_first: int, control_qubit_addr_second: int, target_qubit_addr: int) QGate
Create a Toffoli gate
- pyqpanda.pyQPanda.U1(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.pyQPanda.U1(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.pyQPanda.U1(qubit_addr: int, angle: float) QGate
- pyqpanda.pyQPanda.U1(qubit_addr_list: List[int], angle: float) QCircuit
Create a U1 gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a U1 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.U2(qubit: Qubit, phi_angle: float, lambda_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.U2(qubit_list: QVec, phi_angle: float, lambda_angle: float) QCircuit
- pyqpanda.pyQPanda.U2(qubit_addr: int, phi_angle: float, lambda_angle: float) QGate
- pyqpanda.pyQPanda.U2(qubit_addr_list: List[int], phi_angle: float, lambda_angle: float) QCircuit
Create a U2 gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a U2 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.U3(qubit: Qubit, theta_angle: float, phi_angle: float, lambda_angle: float) QGate [源代码]
- pyqpanda.pyQPanda.U3(qubit_list: QVec, theta_angle: float, phi_angle: float, lambda_angle: float) QCircuit
- pyqpanda.pyQPanda.U3(qubit_addr: int, theta_angle: float, phi_angle: float, lambda_angle: float) QGate
- pyqpanda.pyQPanda.U3(qubit_addr_list: List[int], theta_angle: float, phi_angle: float, lambda_angle: float) QCircuit
Create a U3 gate Args:
qubit_list_addr: quantum gate qubits list addr args : quantum gate angles
- Returns:
a U3 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.U4(matrix: List[complex], qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.U4(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, qubit: Qubit) QGate
- pyqpanda.pyQPanda.U4(qubit: Qubit, matrix: List[complex]) QGate
- pyqpanda.pyQPanda.U4(qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.pyQPanda.U4(qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.pyQPanda.U4(qubit_addr_list: List[int], matrix: List[complex]) QCircuit
- pyqpanda.pyQPanda.U4(qubit: Qubit, alpha_anlge: float, beta_anlge: float, gamma_anlge: float, delta_anlge: float) QGate
- pyqpanda.pyQPanda.U4(qubit_list: QVec, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QCircuit
- pyqpanda.pyQPanda.U4(qubit_addr: int, alpha_anlge: float, beta_anlge: float, gamma_anlge: float, delta_anlge: float) QGate
- pyqpanda.pyQPanda.U4(qubit_addr_list: List[int], alpha_anlge: float, beta_anlge: float, gamma_anlge: float, delta_anlge: float) QCircuit
Create a U4 gate
- Args:
double : u4 gate alpha angle double : u4 gate beta angle double : u4 gate gamma angle double : u4 gate delta angle qubit_addr_list : U4 gate target qubit_addr_list
- Returns:
a U4 node
- pyqpanda.pyQPanda.UMA(arg0: Qubit, arg1: Qubit, arg2: Qubit) QCircuit [源代码]
Quantum adder UMA module
- pyqpanda.pyQPanda.VQG_SqiSWAP_batch(*args, **kwargs) Any [源代码]
variational quantum SqiSWAP batch gates
- pyqpanda.pyQPanda.X(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.X(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.X(qubit_addr: int) QGate
- pyqpanda.pyQPanda.X(qubit_addr_list: List[int]) QCircuit
Create a X gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a X gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.X1(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.X1(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.X1(qubit_addr: int) QGate
- pyqpanda.pyQPanda.X1(qubit_addr_list: List[int]) QCircuit
Create a X1 gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a X1 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Y(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.Y(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.Y(qubit_addr: int) QGate
- pyqpanda.pyQPanda.Y(qubit_addr_list: List[int]) QCircuit
Create a Y gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a Y gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Y1(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.Y1(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.Y1(qubit_addr: int) QGate
- pyqpanda.pyQPanda.Y1(qubit_addr_list: List[int]) QCircuit
Create a Y1 gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a Y1 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Z(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.Z(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.Z(qubit_addr: int) QGate
- pyqpanda.pyQPanda.Z(qubit_addr_list: List[int]) QCircuit
Create a Z gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a Z gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.Z1(qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.Z1(qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.Z1(qubit_addr: int) QGate
- pyqpanda.pyQPanda.Z1(qubit_addr_list: List[int]) QCircuit
Create a Z1 gate
- Args:
qubit_list_addr: quantum gate qubits list addr
- Returns:
a Z1 gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.accumulateProbability(probability_list: List[float]) List[float] [源代码]
Accumulate the probability from a prob list
- Args:
probability_list: measured result in probability list form
- Returns:
accumulated resultRaises: run_fail: An error occurred in accumulateProbability
- pyqpanda.pyQPanda.accumulate_probabilities(probability_list: List[float]) List[float] [源代码]
Accumulate the probability from a prob list
- Args:
probability_list: measured result in probability list form
- Returns:
accumulated resultRaises: run_fail: An error occurred in accumulate_probabilities
- pyqpanda.pyQPanda.accumulate_probability(probability_list: List[float]) List[float] [源代码]
Accumulate the probability from a prob list
- Args:
probability_list: measured result in probability list form
- Returns:
accumulated resultRaises: run_fail: An error occurred in accumulate_probability
- pyqpanda.pyQPanda.add(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.add(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.add(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.pyQPanda.all_cut_of_graph(adjacent_matrix: List[List[float]], all_cut_list: List[float], target_value_list: List[int]) float [源代码]
Generate graph of maxcut problem
- Args:
adjacent_matrix: adjacent_matrix for quantum prog all_cut_list: all cut graph list in quantum prog target_value_list: target cut value list
- Returns:
max value
- Raises:
run_fail: An error occurred in all_cut_of_graph
- pyqpanda.pyQPanda.amplitude_encode(qubit: QVec, data: List[float], b_need_check_normalization: bool = True) QCircuit [源代码]
- pyqpanda.pyQPanda.amplitude_encode(qubit: QVec, data: List[complex]) QCircuit
Encode the input double data to the amplitude of qubits
- Args:
qubit: quantum program qubits data: double data list
- Returns:
result circuit
- Raises:
run_fail: An error occurred in amplitude_encode
- pyqpanda.pyQPanda.apply_QGate(qubit_list: QVec, func_obj: Callable[[Qubit], QGate]) QCircuit [源代码]
- pyqpanda.pyQPanda.apply_QGate(qubit_addr_list: List[int], func_obj: Callable[[int], QGate]) QCircuit
Apply QGate to qubits
- Args:
qubit_addr_list: qubit address list func_obj: QGate(int) like function object accept Qubit address as argument
- Returns:
QCircuit contain QGate operation on all qubit
- pyqpanda.pyQPanda.assign(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.assign(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.average_gate_fidelity(state1: numpy.ndarray[numpy.complex128[m, n]], state2: List[complex]) float [源代码]
- pyqpanda.pyQPanda.average_gate_fidelity(state1: numpy.ndarray[numpy.complex128[m, n]], state2: numpy.ndarray[numpy.complex128[m, n]]) float
compare two quantum states , Get the state fidelity
- Args:
state1: quantum state matrix 1 state2: quantum state list 2
- Returns:
state fidelity bewteen [0,1]
- pyqpanda.pyQPanda.bin_to_prog(bin_data: List[int], qubit_list: QVec, cbit_list: List[ClassicalCondition], qprog: QProg) bool [源代码]
Parse binary data transfor to quantum program Args:
bin_data: binary data stores quantum prog information qubit_list: quantum qubits list cbit_list: quantum cbits list qprog: quantum prog
- Returns:
prog
- pyqpanda.pyQPanda.bind_data(arg0: int, arg1: QVec) QCircuit [源代码]
- Args:
int: classical data QVec: qubits list
- Returns:
result : circuit
- Raises:
run_fail: An error occurred in bind_data
- pyqpanda.pyQPanda.bind_nonnegative_data(arg0: int, arg1: QVec) QCircuit [源代码]
- Args:
int: classical data QVec: qubits list
- Returns:
result : circuit
- Raises:
run_fail: An error occurred in bind_nonnegative_data
- pyqpanda.pyQPanda.build_HHL_circuit(matrix_A: List[complex], data_b: List[float], qvm: QuantumMachine, precision_cnt: int = 0) QCircuit [源代码]
build the quantum circuit for HHL algorithm to solve the target linear systems of equations : Ax = b
- Args:
matrix_A: a unitary matrix or Hermitian N*N matrix with N = 2 ^ n data_b: a given vector qvm: quantum machine precision_cnt: The count of digits after the decimal point,
default is 0, indicates that there are only integer solutions
- Returns:
QCircuit The whole quantum circuit for HHL algorithm
- Notes:
The higher the precision is, the more qubit number and circuit - depth will be, for example: 1 - bit precision, 4 additional qubits are required, for 2 - bit precision, we need 7 additional qubits, and so on. The final solution = (HHL result) * (normalization factor for b) * (1 << ceil(log2(pow(10, precision_cnt))))
- pyqpanda.pyQPanda.cAlloc() ClassicalCondition [源代码]
- pyqpanda.pyQPanda.cAlloc(cbit_addr: int) ClassicalCondition
Allocate a CBit After init()
- Args:
cbit_addr: cbit address, should in [0,29)
- Returns:
classic result cbit
- pyqpanda.pyQPanda.cAlloc_many(cbit_num: int) List[ClassicalCondition] [源代码]
Allocate several CBits After init()
- Args:
cbit_num: numbers of cbit want to be created
- Returns:
list of cbit
- pyqpanda.pyQPanda.cFree(cbit: ClassicalCondition) None [源代码]
Free a CBit
- Args:
CBit: a CBit
- Returns:
none
- pyqpanda.pyQPanda.cFree_all() None [源代码]
- pyqpanda.pyQPanda.cFree_all(cbit_list: List[ClassicalCondition]) None
Free all cbits
- Args:
a list of cbits
- Returns:
none
- pyqpanda.pyQPanda.calculate_quantum_volume(noise_qvm: NoiseQVM, qubit_list: List[List[int]], ntrials: int, shots: int = 1000) int [源代码]
- pyqpanda.pyQPanda.calculate_quantum_volume(cloud_qvm, qubit_list: List[List[int]], ntrials: int, shots: int = 1000) int
- pyqpanda.pyQPanda.calculate_quantum_volume(config: QCloudTaskConfig, qubit_list: List[List[int]], ntrials: int) int
calculate quantum volume
- Args:
config: QCloudTaskConfig qubit_list: qubit list ntrials: ntrials
- Returns:
result data dict
- Raises:
run_fail: An error occurred in calculate_quantum_volume
- pyqpanda.pyQPanda.cast_qprog_qcircuit(qprog: QProg) QCircuit [源代码]
Cast QProg to QCircuit
- Args:
qprog: quantum prog
- Returns:
none
- Raises:
run_fail: An error occurred in cast_qprog_qcircuit
- pyqpanda.pyQPanda.cast_qprog_qgate(qprog: QProg) QGate [源代码]
Cast QProg to QGate
- Args:
qprog: quantum prog
- Returns:
none
- Raises:
run_fail: An error occurred in cast_qprog_qgate
- pyqpanda.pyQPanda.cast_qprog_qmeasure(qprog: QProg) QMeasure [源代码]
Cast QProg to QMeasure
- Args:
qprog: quantum prog
- Returns:
none
- Raises:
run_fail: An error occurred in cast_qprog_qmeasure
- pyqpanda.pyQPanda.circuit_layer(qprog: QProg) list [源代码]
Quantum circuit layering
- Args:
QProg: quantum prog
- Returns:
result data tuple contains layer info
- Raises:
run_fail: An error occurred in get circuit_layer
- pyqpanda.pyQPanda.circuit_optimizer(qprog: QProg, optimizer_cir_vec: List[Tuple[QCircuit, QCircuit]] = [], mode_list: List[QCircuitOPtimizerMode] = []) QProg [源代码]
Optimize QCircuit
- Args:
qprog: quantum program optimizer_cir_vec: quantum circuit list mode_list: optimize mode list
- Returns:
a new prog after optimize
- pyqpanda.pyQPanda.circuit_optimizer_by_config(qprog: QProg, config_file: str = 'QPandaConfig.json', mode_list: List[QCircuitOPtimizerMode] = []) QProg [源代码]
QCircuit optimizer
- Args:
qprog: quantum program config_file: optimize config mode_list: optimize mode list
- Returns:
a new prog after optimize
- pyqpanda.pyQPanda.comm_protocol_decode(encode_data: bytes, machine: QuantumMachine) Tuple[List[QProg], CommProtocolConfig] [源代码]
decode binary data to comm protocol prog list
- Args:
encode_data: quantum prog_list encode data
- Returns:
result prog list
- Raises:
run_fail: An error occurred in comm_protocol_decode
- pyqpanda.pyQPanda.comm_protocol_encode(prog: QProg, config: CommProtocolConfig = ...) bytes [源代码]
- pyqpanda.pyQPanda.comm_protocol_encode(prog_list: List[QProg], config: CommProtocolConfig = ...) bytes
encode comm protocol data to binary data
- Args:
prog_list: quantum prog_list config: comm_protocol config
- Returns:
result data list
- Raises:
run_fail: An error occurred in comm_protocol_encode
- pyqpanda.pyQPanda.constModAdd(arg0: QVec, arg1: int, arg2: int, arg3: QVec, arg4: QVec) QCircuit [源代码]
- Args:
QVec qvec int base int module_Num QVec qvec1 QVec qvec2
- Returns:
result circuit
- Raises:
run_fail: An error occurred in constModAdd
- pyqpanda.pyQPanda.constModExp(arg0: QVec, arg1: QVec, arg2: int, arg3: int, arg4: QVec, arg5: QVec, arg6: QVec) QCircuit [源代码]
- Args:
QVec qvec int base int module_Num QVec qvec1 QVec qvec2
- Returns:
result circuit
- Raises:
run_fail: An error occurred in constModExp
- pyqpanda.pyQPanda.constModMul(arg0: QVec, arg1: int, arg2: int, arg3: QVec, arg4: QVec, arg5: QVec) QCircuit [源代码]
- Args:
QVec qvec int base int module_Num QVec qvec1 QVec qvec2
- Returns:
result circuit
- Raises:
run_fail: An error occurred in constModMul
- pyqpanda.pyQPanda.convert_binary_data_to_qprog(machine: QuantumMachine, data: List[int]) QProg [源代码]
Parse binary data to quantum program
- Args:
machine: quantum machine data: quantum prog data
- Returns:
quantum prog
- Raises:
run_fail: An error occurred in convert_binary_data_to_qprog
- pyqpanda.pyQPanda.convert_originir_str_to_qprog(originir_str: str, machine: QuantumMachine) list [源代码]
Trans OriginIR to QProg
- Args:
originir_str: OriginIR string machine: initialized quantum machine
- Returns:
list cotains QProg, qubit_list, cbit_listRaises: run_fail: An error occurred in convert_originir_str_to_qprog
- pyqpanda.pyQPanda.convert_originir_to_qprog(file_path: str, machine: QuantumMachine) list [源代码]
Read OriginIR file and trans to QProg
- Args:
file_path: OriginIR file path machine: initialized quantum machine
- Returns:
list cotains QProg, qubit_list, cbit_listRaises: run_fail: An error occurred in convert_originir_to_qprog
- pyqpanda.pyQPanda.convert_qasm_string_to_qprog(qasm_str: str, machine: QuantumMachine) list [源代码]
Trans QASM to QProg
- Args:
qasm_str: QASM string machine: initialized quantum machine
- Returns:
list cotains QProg, qubit_list, cbit_list
- pyqpanda.pyQPanda.convert_qasm_to_qprog(file_path: str, machine: QuantumMachine) list [源代码]
Read QASM file and trans to QProg
- Args:
file_path: QASM file path machine: initialized quantum machine
- Returns:
list cotains QProg, qubit_list, cbit_listRaises: run_fail: An error occurred in convert_qasm_to_qprog
- pyqpanda.pyQPanda.convert_qprog_to_binary(qprog: QProg, machine: QuantumMachine) List[int] [源代码]
- pyqpanda.pyQPanda.convert_qprog_to_binary(qprog: QProg, machine: QuantumMachine, fname: str) None
Store quantum program in binary file Args:
machine: quantum machine qprog: quantum prog fname: binary data file name
- Returns:
none
- pyqpanda.pyQPanda.convert_qprog_to_originir(qprog: QProg, machine: QuantumMachine) str [源代码]
- Args:
qprog: quantum prog machine: quantum machine
- Returns:
originir : originir string , see originir indroduction :https://pyqpanda-toturial.readthedocs.io/zh/latest/QProgToOriginIR.html
- pyqpanda.pyQPanda.convert_qprog_to_qasm(qprog: QProg, machine: QuantumMachine) str [源代码]
Convert QProg to QASM instruction string
- Args:
machine: quantum machine qprog: quantum prog
- Returns:
qsm string stores prog
- Raises:
run_fail: An error occurred in convert_qprog_to_qasm
- pyqpanda.pyQPanda.convert_qprog_to_quil(qprog: QProg, machine: QuantumMachine) str [源代码]
convert QProg to Quil instruction
- Args:
qprog: QProg machine: quantum machine
- Returns:
Quil instruction string
- pyqpanda.pyQPanda.count_gate(quantum_prog: QProg) int [源代码]
- pyqpanda.pyQPanda.count_gate(quantum_circuit: QCircuit) int
Count quantum gate num under quantum program, quantum circuit Args:
circuit : quantum_circuit
- Returns:
result: gate count
- Raises:
run_fail: An error occurred in get_qgate_num
- pyqpanda.pyQPanda.count_prog_info(node: QProg, selected_types: List[GateType] = []) ProgCount [源代码]
- pyqpanda.pyQPanda.count_prog_info(node: QCircuit, selected_types: List[GateType] = []) ProgCount
count quantum program info Args:
qprog: QProg optimize: whether to enable the optimization circuit switch.
- Returns:
ProgCount struct
- pyqpanda.pyQPanda.count_qgate_num(prog: QProg, gate_type: int = -1) int [源代码]
- pyqpanda.pyQPanda.count_qgate_num(circuit: QCircuit, gate_type: int = -1) int
Count quantum gate num under quantum program
- Args:
quantum_circuit: QCircuit& gtype: const GateType
- Returns:
this GateType quantum gate num
- pyqpanda.pyQPanda.create_empty_circuit() QCircuit [源代码]
Create an empty QCircuit Container
- Args:
none
- Returns:
a empty QCircuit
- pyqpanda.pyQPanda.create_empty_qprog() QProg [源代码]
Create an empty QProg Container
- Args:
none
- Returns:
a empty QProg
- pyqpanda.pyQPanda.create_if_prog(classical_condition: ClassicalCondition, true_node: QProg) QIfProg [源代码]
- pyqpanda.pyQPanda.create_if_prog(classical_condition: ClassicalCondition, true_node: QProg, false_node: QProg) QIfProg
Create a classical quantum IfProg
- Args:
classical_condition: quatum cbit true_node: quantum IfProg true qnode false_node: quantum IfProg false qnode
- Returns:
a classical quantum IfProg
- pyqpanda.pyQPanda.create_while_prog(classical_condition: ClassicalCondition, true_node: QProg) QWhileProg [源代码]
Create a WhileProg
- Args:
classical_condition: quatum cbit true_node: quantum QWhile qnode
- Returns:
a WhileProg
- pyqpanda.pyQPanda.decompose_multiple_control_qgate(qprog: QProg, machine: QuantumMachine, config_file: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.pyQPanda.decompose_multiple_control_qgate(qprog: QProg, machine: QuantumMachine, convert_single_gates: List[str], convert_double_gates: List[str], b_transform_to_base_qgate: bool = True) QProg
Decompose multiple control QGate
- Args:
qprog: quantum program machine: quantum machine convert_single_gates: quantum single gates sets convert_double_gates: quantum double gates sets transform_to_base_qgate: transform to base qgate sets
- Returns:
a new prog after decomposition
- pyqpanda.pyQPanda.deep_copy(node: QProg) QProg [源代码]
- pyqpanda.pyQPanda.deep_copy(node: QCircuit) QCircuit
- pyqpanda.pyQPanda.deep_copy(node: QGate) QGate
- pyqpanda.pyQPanda.deep_copy(node: QMeasure) QMeasure
- pyqpanda.pyQPanda.deep_copy(node: ClassicalProg) ClassicalProg
- pyqpanda.pyQPanda.deep_copy(node: QIfProg) QIfProg
- pyqpanda.pyQPanda.deep_copy(node: QWhileProg) QWhileProg
- pyqpanda.pyQPanda.del_weak_edge(topo_data: List[List[int]]) None [源代码]
Delete weakly connected edges
- Args:
topo_data: quantum program topo_data
- Returns:
none
- Raises:
run_fail: An error occurred in del_weak_edge
- pyqpanda.pyQPanda.del_weak_edge2(topo_data: List[List[int]], max_connect_degree: int, sub_graph_set: List[int]) list [源代码]
Delete weakly connected edges
- Args:
topo_data: quantum program topo_data max_connect_degree: max value of connect degree sub_graph_set: sub graph set list
- Returns:
result data
- Raises:
run_fail: An error occurred in del_weak_edge2
- pyqpanda.pyQPanda.del_weak_edge3(topo_data: List[List[int]], sub_graph_set: List[int], max_connect_degree: int, lamda1: float, lamda2: float, lamda3: float) list [源代码]
Delete weakly connected edges
- Args:
topo_data: quantum program topo_data max_connect_degree: max value of connect degree sub_graph_set: sub graph set list lamda1: lamda1 lamda2: lamda2 lamda3: lamda3
- Returns:
result data
- Raises:
run_fail: An error occurred in del_weak_edge3
- pyqpanda.pyQPanda.destroy_quantum_machine(machine: QuantumMachine) None [源代码]
Destroy a quantum machine
- Args:
machine: type should be one of CPUQVM, CPUSingleThreadQVM, GPUQVM, NoiseQVM
- Returns:
noneRaises: run_fail: An error occurred in destroy_quantum_machine
- pyqpanda.pyQPanda.directly_run(qprog: QProg, noise_model: Noise = NoiseModel()) Dict[str, bool] [源代码]
Directly run quantum prog After init()
- Args:
qprog: quantum program noise_model: noise model, default is no noise. noise model only work on CPUQVM now
- Returns:
- Dict[str, bool]: result of quantum program execution one shot.
first is the final qubit register state, second is it's measure probability
- pyqpanda.pyQPanda.div(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.div(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.div(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.pyQPanda.double_gate_xeb(config: QCloudTaskConfig, qubit0: int, qubit1: int, clifford_range: List[int], num_circuits: int, gate_type: GateType = GateType.CZ_GATE) Dict[int, float] [源代码]
- pyqpanda.pyQPanda.double_gate_xeb(qvm: QuantumMachine, qubit0: Qubit, qubit1: Qubit, clifford_range: List[int], num_circuits: int, shots: int, chip_id: int = 2, gate_type: GateType = GateType.CZ_GATE) Dict[int, float]
double gate xeb
- Args:
qvm: quantum machine qubit0: double qubit 0 qubit1: double qubit 1 clifford_range: clifford range list num_circuits: the num of circuits shots: measure shots chip type: RealChipType interleaved_gates: interleaved gates list
- Returns:
result data dict
- Raises:
run_fail: An error occurred in double_gate_xeb
- pyqpanda.pyQPanda.double_qubit_rb(qvm: QuantumMachine, qubit0: Qubit, qubit1: Qubit, clifford_range: List[int], num_circuits: int, shots: int, chip_id: int = 2, interleaved_gates: List[QGate] = []) Dict[int, float] [源代码]
- pyqpanda.pyQPanda.double_qubit_rb(config: QCloudTaskConfig, qubit0: int, qubit1: int, clifford_range: List[int], num_circuits: int, interleaved_gates: List[QGate] = []) Dict[int, float]
double qubit rb with origin chip Args:
config: QCloudTaskConfig qubit0: double qubit 0 qubit1: double qubit 1 clifford_range: clifford range list num_circuits: the num of circuits interleaved_gates: interleaved gates list
- Returns:
result data dict
- Raises:
run_fail: An error occurred in double_qubit_rb
- pyqpanda.pyQPanda.draw_qprog_latex(prog: QProg, auto_wrap_len: int = 100, output_file: str = 'QCircuit.tex', with_logo: bool = False, itr_start: NodeIter = NodeIter(), itr_end: NodeIter = NodeIter()) str [源代码]
Convert a quantum prog/circuit to latex source code, and save the source code to file in current path with name QCircuit.tex Args:
QProg: quantum prog auto_wrap_len: defaut is 100 output_file: result output file name itr_start: nodeiter start itr_end: nodeiter end
- Returns:
result data tuple contains prog info
- Raises:
run_fail: An error occurred in get draw_qprog_text
- pyqpanda.pyQPanda.draw_qprog_latex_with_clock(prog: QProg, config_data: str = 'QPandaConfig.json', auto_wrap_len: bool = 100, output_file: int = 'QCircuit.tex', with_logo: str = False, itr_start: NodeIter = NodeIter(), itr_end: NodeIter = NodeIter()) str [源代码]
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 Args:
QProg: quantum prog config_data: default config file is QPandaConfig.json auto_wrap_len: defaut is 100 output_file: result output file name itr_start: nodeiter start itr_end: nodeiter end
- Returns:
result data tuple contains prog info
- Raises:
run_fail: An error occurred in get draw_qprog_text
- pyqpanda.pyQPanda.draw_qprog_text(qprog: QProg, auto_wrap_len: int = 100, output_file: str = 'QCircuitTextPic.txt', itr_start: NodeIter = NodeIter(), itr_end: NodeIter = NodeIter()) str [源代码]
Convert a quantum prog/circuit to text-pic(UTF-8 code), and will save the text-pic in file named QCircuitTextPic.txt in the same time in current path Args:
QProg: quantum prog auto_wrap_len: defaut is 100 output_file: result output file name itr_start: nodeiter start itr_end: nodeiter end
- Returns:
result data tuple contains prog info
- Raises:
run_fail: An error occurred in get draw_qprog_text
- pyqpanda.pyQPanda.draw_qprog_text_with_clock(prog: QProg, config_data: str = 'QPandaConfig.json', auto_wrap_len: int = 100, output_file: str = 'QCircuitTextPic.txt', itr_start: NodeIter = NodeIter(), itr_end: NodeIter = NodeIter()) str [源代码]
Convert a quantum prog/circuit to text-pic(UTF-8 code) with time sequence, and will save the text-pic in file named QCircuitTextPic.txt in the same time in current path Args:
QProg: quantum prog auto_wrap_len: defaut is 100 output_file: result output file name itr_start: nodeiter start itr_end: nodeiter end
- Returns:
result data tuple contains prog info
- Raises:
run_fail: An error occurred in get draw_qprog_text
- pyqpanda.pyQPanda.equal(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.equal(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.equal(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.pyQPanda.estimate_topology(topo_data: List[List[int]]) float [源代码]
Evaluate topology performance
- Args:
topo_data: quantum program topo data
- Returns:
result data
- Raises:
run_fail: An error occurred in estimate_topology
- pyqpanda.pyQPanda.eval(arg0: var, arg1: bool) numpy.ndarray[numpy.float64[m, n]] [源代码]
- pyqpanda.pyQPanda.eval(arg0: var) numpy.ndarray[numpy.float64[m, n]]
- pyqpanda.pyQPanda.expMat(arg0: complex, arg1: numpy.ndarray[numpy.complex128[m, n]], arg2: float) numpy.ndarray[numpy.complex128[m, n]] [源代码]
calculate the matrix power of e
- pyqpanda.pyQPanda.expand_linear_equations(matrix: List[complex], list: List[float]) expand_linear_equations.list [源代码]
- pyqpanda.pyQPanda.expand_linear_equations(matrix: List[complex], list: List[float]) expand_linear_equations.list
Extending linear equations to N dimension, N = 2 ^ n
- Args:
matrix: the source matrix, which will be extend to N*N, N = 2 ^ n list: the source vector b, which will be extend to 2 ^ n
- pyqpanda.pyQPanda.fill_qprog_by_I(qprog: QProg) QProg [源代码]
Fill the input QProg by I gate, return a new quantum program
- Args:
prog: quantum prog
- Returns:
a new quantum program
- Raises:
run_fail: An error occurred in get fill_qprog_by_I
- pyqpanda.pyQPanda.finalize() None [源代码]
Finalize the environment and destory global unique quantum machine.
- Args:
none
- Returns:
none
- pyqpanda.pyQPanda.fit_to_gbk(utf8_str: str) str [源代码]
Special character conversion
- Args:
utf8_str: string using utf-8 encode
- Returns:
result string
- Raises:
run_fail: An error occurred in get fit_to_gbk
- pyqpanda.pyQPanda.flatten(qprog: QProg) None [源代码]
- pyqpanda.pyQPanda.flatten(qcircuit: QCircuit) None
Flatten quantum circuit
- Args:
qprog: quantum circuit
- Returns:
none
- pyqpanda.pyQPanda.getAllocateCMem() int [源代码]
Deprecated, use get_allocate_cmem_num instead Args:
none
- Returns:
allocate qubit num
- Raises:
run_fail: An error occurred in get_allocate_cmem_num
- pyqpanda.pyQPanda.getAllocateQubitNum() int [源代码]
Deprecated, use get_allocate_qubit_num instead Args:
none
- Returns:
allocate cbit num
- Raises:
run_fail: An error occurred in get_allocate_qubit_num
- pyqpanda.pyQPanda.get_adjacent_qgate_type(qprog: QProg, node_iter: NodeIter) List[NodeInfo] [源代码]
Get the adjacent quantum gates's(the front one and the back one) typeinfo from QProg
- Args:
qprog: target quantum program node_iter: gate node iter in qprog
- Returns:
the front one and back node info of node_iter in qprog
- pyqpanda.pyQPanda.get_all_used_qubits(qprog: QProg) QVec [源代码]
Get all the used quantum bits in the input prog Args:
qprog: quantum program
- Returns:
all used qubits
- pyqpanda.pyQPanda.get_all_used_qubits_to_int(qprog: QProg) List[int] [源代码]
Get all the used quantum bits addr in the input prog Args:
qprog: quantum program
- Returns:
all used qubits
- pyqpanda.pyQPanda.get_allocate_cbits() List[ClassicalCondition] [源代码]
Get allocated cbits of QuantumMachine
- Args:
none
- Returns:
cbit list
- Raises:
run_fail: An error occurred in allocated cbits of QuantumMachine
- pyqpanda.pyQPanda.get_allocate_cmem_num() int [源代码]
get allocate cmem num Args:
none
- Returns:
qubit_num : allocate cbit num
- Raises:
run_fail: An error occurred in get_allocate_cmem_num
- pyqpanda.pyQPanda.get_allocate_qubit_num() int [源代码]
get allocate qubit num
- Args:
none
- Returns:
qubit_num : allocate qubit num
- Raises:
run_fail: An error occurred in get_allocate_qubit_num
- pyqpanda.pyQPanda.get_allocate_qubits() QVec [源代码]
Get allocated qubits of QuantumMachine
- Args:
none
- Returns:
qubit list
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- pyqpanda.pyQPanda.get_bin_data(qprog: QProg) List[int] [源代码]
Get quantum program binary data
- Args:
qprog: QProg machine: quantum machine
- Returns:
binary data in list
- pyqpanda.pyQPanda.get_bin_str(qprog: QProg, machine: QuantumMachine) str [源代码]
Transfor quantum program to string Args:
machine: quantum machine qprog: quantum prog
- Returns:
string for bin_str
- pyqpanda.pyQPanda.get_circuit_optimal_topology(qprog: QProg, machine: QuantumMachine, max_connect_degree: int, config_file: str = 'QPandaConfig.json') List[List[int]] [源代码]
Get the optimal topology of the input circuit
- Args:
qprog: quantum program machine: quantum machine max_connect_degree: max value of connect degree config_file: config file
- Returns:
Topology prog DataRaises: run_fail: An error occurred in get_circuit_optimal_topology
- pyqpanda.pyQPanda.get_clock_cycle(qpog: QProg) int [源代码]
Get quantum program clock cycle Args:
qprog: QProg
- Returns:
clock_cycle
- pyqpanda.pyQPanda.get_complex_points(topo_data: List[List[int]], max_connect_degree: int) List[int] [源代码]
Get complex points
- Args:
topo_data: quantum program topo_data max_connect_degree: max value of connect degree
- Returns:
complex points list
- Raises:
run_fail: An error occurred in get_complex_points
- pyqpanda.pyQPanda.get_double_gate_block_topology(qprog: QProg) List[List[int]] [源代码]
get double gate block topology
- Args:
qprog: quantum program
- Returns:
Topology prog DataRaises: run_fail: An error occurred in get_double_gate_block_topology
- pyqpanda.pyQPanda.get_matrix(qprog: QProg, positive_seq: bool = False, nodeitr_start: NodeIter = NodeIter(), nodeitr_end: NodeIter = NodeIter()) List[complex] [源代码]
Get the target matrix between the input two Nodeiters
- Args:
qprog: quantum program positive_seq: Qubit order of output matrix
true for positive sequence(q0q1q2), false for inverted order(q2q1q0), default is false
nodeiter_start: the start NodeIter nodeiter_end: the end NodeIter
- Returns:
target matrix include all the QGate's matrix (multiply)
- pyqpanda.pyQPanda.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
- pyqpanda.pyQPanda.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
- pyqpanda.pyQPanda.get_qgate_num(quantum_prog: QProg) int [源代码]
- pyqpanda.pyQPanda.get_qgate_num(quantum_circuit: QCircuit) int
- pyqpanda.pyQPanda.get_qgate_num(qprog: QProg) int
Count quantum gate num under quantum program
- Args:
qprog: quantum prog
- Returns:
quantum gate num under quantum program
- pyqpanda.pyQPanda.get_qprog_clock_cycle(qprog: QProg, machine: QuantumMachine, optimize: bool = False) int [源代码]
Get Quantum Program Clock Cycle
- Args:
qprog: quantum program machine: quantum machine optimize: optimize qprog
- Returns:
QProg time comsume, no unit, not in seconds
- pyqpanda.pyQPanda.get_sub_graph(topo_data: List[List[int]]) List[int] [源代码]
Get sub graph
- Args:
topo_data: quantum program topo data
- Returns:
sub graph
- Raises:
run_fail: An error occurred in sub graph
- pyqpanda.pyQPanda.get_tuple_list(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get pmeasure result as tuple 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_tuple_list
- pyqpanda.pyQPanda.get_unitary(qprog: QProg, positive_seq: bool = False, nodeitr_start: NodeIter = NodeIter(), nodeitr_end: NodeIter = NodeIter()) List[complex] [源代码]
Get the target matrix between the input two Nodeiters
- Args:
qprog: quantum program positive_seq: Qubit order of output matrix
true for positive sequence(q0q1q2), false for inverted order(q2q1q0), default is false
nodeiter_start: the start NodeIter nodeiter_end: the end NodeIter
- Returns:
target matrix include all the QGate's matrix (multiply)
- pyqpanda.pyQPanda.get_unsupport_qgate_num(qprog: QProg, support_gates: List[List[str]]) int [源代码]
Count quantum program unsupported gate numner
- Args:
qprog: quantum prog support_gates: support_gates
- Returns:
unsupported gate numner
- pyqpanda.pyQPanda.getstat(*args, **kwargs) Any [源代码]
Get the status of the Quantum machine
- Args:
none
- Returns:
the status of the Quantum machine, see QMachineStatus
- Raises:
init_fail: An error occurred
- pyqpanda.pyQPanda.iSWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.pyQPanda.iSWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.pyQPanda.iSWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.pyQPanda.iSWAP(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int]) QCircuit
- pyqpanda.pyQPanda.iSWAP(first_qubit: Qubit, second_qubit: Qubit, theta_angle: float) QGate
- pyqpanda.pyQPanda.iSWAP(first_qubit_list: QVec, second_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.pyQPanda.iSWAP(first_qubit_addr: int, second_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.pyQPanda.iSWAP(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int], theta_angle: float) QCircuit
- Returns:
a iSWAP gate node
- Raises:
run_fail: An error occurred in construct gate node
- pyqpanda.pyQPanda.init(machine_type: QMachineType = QMachineType.CPU) bool [源代码]
Init the global unique quantum machine at background.
- Args:
machine_type: quantum machine type, see pyQPanda.QMachineType
- Returns:
bool: ture if initialization success
- pyqpanda.pyQPanda.init_quantum_machine(machine_type: QMachineType = QMachineType.CPU) QuantumMachine [源代码]
Create and initialize a new quantum machine, and let it be global unique quantum machine
- Args:
machine_type: quantum machine type, see pyQPanda.QMachineType
- Returns:
the quantum machine, type is depend on machine_type QMachineType.CPU --> pyQPanda.CPUQVM QMachineType.CPU_SINGLE_THREAD --> pyQPanda.CPUSingleThreadQVM QMachineType.GPU --> pyQPanda.GPUQVM (if pyQPanda is build with GPU) QMachineType.NOISE --> pyQPanda.NoiseQVM return None if initial machine faild
- Raises:
init_fail: An error occurred in init_quantum_machine
- pyqpanda.pyQPanda.isCarry(arg0: QVec, arg1: QVec, arg2: Qubit, arg3: Qubit) QCircuit [源代码]
Construct a circuit to determine if there is a carry
- pyqpanda.pyQPanda.is_match_topology(gate: QGate, topo: List[List[float]]) bool [源代码]
Judge the QGate if match the target topologic structure of quantum circuit
- Args:
gate: QGate topo: the target topologic structure of quantum circuit
- Returns:
true if match, else false
- pyqpanda.pyQPanda.is_supported_qgate_type(nodeitr: NodeIter) bool [源代码]
Judge if the target node is a QGate type
- Args:
node_iter: node iter in qprog
- Returns:
true ir false if the target node is a QGate type
- pyqpanda.pyQPanda.is_swappable(prog: QProg, nodeitr_1: NodeIter, nodeitr_2: NodeIter) bool [源代码]
Judge the specialed two NodeIters in qprog whether can be exchanged
- Args:
qprog: target quantum program node_iter1: node iter 1 in qprog node_iter2: node iter 2 in qprog
- Returns:
true ir false for two NodeIters in qprog whether can be exchanged
- pyqpanda.pyQPanda.iterative_amplitude_estimation(arg0: QCircuit, arg1: QVec, arg2: float, arg3: float) float [源代码]
estimate the probability corresponding to the ground state |1> of the last bit Args:
QCircuit: quantum circuit qvec: qubit list double: epsilon double: confidence
- Returns:
result iterative amplitude
- Raises:
run_fail: An error occurred in iterative_amplitude_estimation
- pyqpanda.pyQPanda.ldd_decompose(qprog: QProg) QProg [源代码]
Decompose multiple control QGate
- Args:
qprog: quantum program
- Returns:
a new prog after decomposition
- pyqpanda.pyQPanda.matrix_decompose(qubits: QVec, matrix: numpy.ndarray[numpy.complex128[m, n]], mode: DecompositionMode = DecompositionMode.QSD, b_positive_seq: bool = True) QCircuit [源代码]
- pyqpanda.pyQPanda.matrix_decompose(qubits: QVec, matrix: List[complex], mode: DecompositionMode = DecompositionMode.QSD, b_positive_seq: bool = True) QCircuit
Matrix decomposition
- Args:
qubits: the used qubits matrix: The target matrix mode: DecompositionMode decomposition mode, default is QSD b_positive_seq: true for positive sequence(q0q1q2), false for inverted order(q2q1q0), default is true
- Returns:
QCircuit The quantum circuit for target matrix
- pyqpanda.pyQPanda.matrix_decompose_paulis(arg0: QuantumMachine, arg1: numpy.ndarray[numpy.float64[m, n]]) List[Tuple[float, QCircuit]] [源代码]
- pyqpanda.pyQPanda.matrix_decompose_paulis(arg0: QVec, arg1: numpy.ndarray[numpy.float64[m, n]]) List[Tuple[float, QCircuit]]
decompose matrix into paulis combination
- Args:
quantum_machine: quantum machine matrix: 2^N *2^N double matrix
- Returns:
result : linearcom contains pauli circuit
- pyqpanda.pyQPanda.measure_all(qubit_list: QVec, cbit_list: List[ClassicalCondition]) QProg [源代码]
- pyqpanda.pyQPanda.measure_all(qubit_addr_list: List[int], cbit_addr_list: List[int]) QProg
Create a list of measure node
- Args:
qubit_list : measure qubits list cbit_list : cbits stores quantum measure result
- Returns:
a list of measure node
- pyqpanda.pyQPanda.mul(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.mul(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.mul(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.pyQPanda.originir_to_qprog(file_path: str, machine: QuantumMachine) QProg [源代码]
Read OriginIR file and trans to QProg
- Args:
file_path: OriginIR file path machine: initialized quantum machine
- Returns:
Transformed QProgRaises: run_fail: An error occurred in originir_to_qprog
- pyqpanda.pyQPanda.pauli_combination_replace(arg0: List[Tuple[float, QCircuit]], arg1: QuantumMachine, arg2: str, arg3: str) List[Tuple[float, QCircuit]] [源代码]
- pyqpanda.pyQPanda.planarity_testing(topo_data: List[List[int]]) bool [源代码]
planarity testing
- Args:
topo_data: quantum program topo data
- Returns:
result data
- Raises:
run_fail: An error occurred in planarity_testing
- pyqpanda.pyQPanda.pmeasure(qubit_list: QVec, select_max: int) 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
- pyqpanda.pyQPanda.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
- pyqpanda.pyQPanda.print_matrix(matrix: List[complex], precision: int = 8) str [源代码]
Print matrix element
- Args:
matrix: matrix precision: double value to string cutoff precision
- Returns:
string of matrix
- pyqpanda.pyQPanda.prob_run_dict(qprog: 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
- pyqpanda.pyQPanda.prob_run_list(qprog: 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
- pyqpanda.pyQPanda.prob_run_tuple_list(qptog: 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
- pyqpanda.pyQPanda.qAlloc() Qubit [源代码]
- pyqpanda.pyQPanda.qAlloc(qubit_addr: int) Qubit
Allocate a qubits After init()
- Args:
qubit_addr: qubit physic address, should in [0,29)
- Returns:
pyQPanda.Qubit: None, if qubit_addr error, or reached max number of allowed qubit
- pyqpanda.pyQPanda.qAlloc_many(qubit_num: int) List[Qubit] [源代码]
Allocate several qubits After init()
- Args:
qubit_num: numbers of qubit want to be created
- Returns:
list[pyQPanda.Qubit]: list of qubit
- pyqpanda.pyQPanda.qFree_all() None [源代码]
- pyqpanda.pyQPanda.qFree_all(qubit_list: QVec) None
Free a list of qubits
- Args:
a list of qubits
- Returns:
none
- pyqpanda.pyQPanda.qop(VariationalQuantumCircuit: qop.VariationalQuantumCircuit, Hamiltonian, QuantumMachine: qop.QuantumMachine, qubitList: List[Qubit]) var [源代码]
- pyqpanda.pyQPanda.qop(VariationalQuantumCircuit: qop.VariationalQuantumCircuit, Hamiltonian, QuantumMachine: qop.QuantumMachine, qubitList: Dict[int, Qubit]) var
- pyqpanda.pyQPanda.qop_pmeasure(arg0: VariationalQuantumCircuit, arg1: List[int], arg2: QuantumMachine, arg3: List[Qubit]) var [源代码]
- pyqpanda.pyQPanda.quantum_chip_adapter(qprog: QProg, machine: QuantumMachine, mapping: bool = True, config_file: str = 'QPandaConfig.json') list [源代码]
Quantum chip adaptive conversion
- Args:
qprog: quantum program machine: quantum machine mapping: whether or not perform the mapping operation config_file: config file
- Returns:
list contains qprog and qubit_list after mapping, if mapping is false, the qubit_list may be misoperated
- pyqpanda.pyQPanda.quantum_walk_alg(*args, **kwargs) Any [源代码]
Build quantum-walk algorithm quantum circuit
- pyqpanda.pyQPanda.quantum_walk_search(list: List[int], Classical_condition: ClassicalCondition, QuantumMachine: quantum_walk_search.QuantumMachine, data: int = 2) quantum_walk_search.list [源代码]
Use Quantum-walk Algorithm to search target data, return QProg and search_result
- Args:
list: data list Classical_condition: quantum Classical condition QuantumMachine: quantum machine repeat: search repeat times
- Returns:
result : Quantum-walk search result
- Raises:
run_fail: An error occurred in Quantum-walk
- pyqpanda.pyQPanda.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 programRaises: run_fail: An error occurred in measure quantum program
- pyqpanda.pyQPanda.random_qcircuit(qvec: QVec, depth: int = 100, gate_type: List[str] = []) QCircuit [源代码]
Generate random quantum circuit
- Args:
qubit_row: circuit qubit row value qubit_col: circuit qubit col value depth: circuit depth qvm: quantum machine qvec: out put circuits for random circuit
- Returns:
random quantum program
- Raises:
run_fail: An error occurred in generate random circuit
- pyqpanda.pyQPanda.random_qprog(qubit_row: int, qubit_col: int, depth: int, qvm: QuantumMachine, qvec: QVec) QProg [源代码]
Generate random quantum program
- Args:
qubit_row: circuit qubit row value qubit_col: circuit qubit col value depth: circuit depth qvm: quantum machine qvec: out put circuits for random qprog
- Returns:
random quantum program
- Raises:
run_fail: An error occurred in generate random qprog
- pyqpanda.pyQPanda.recover_edges(topo_data: List[List[int]], max_connect_degree: int, candidate_edges: List[Tuple[int, List[int]]]) List[List[int]] [源代码]
Recover edges from the candidate edges
- Args:
topo_data: quantum program topo_data max_connect_degree: max value of connect degree candidate_edges: candidate edges
- Returns:
topo data
- Raises:
run_fail: An error occurred in recover_edges
- pyqpanda.pyQPanda.remap(prog: QProg, target_qlist: QVec, target_clist: List[ClassicalCondition] = []) QProg [源代码]
Source qunatum program is mapped to the target qubits
- Args:
prog: source quantum progprom target_qlist: target qubits target_clist: target cbits
- Returns:
target quantum program
- pyqpanda.pyQPanda.replace_complex_points(src_topo_data: List[List[int]], max_connect_degree: int, sub_topo_vec: List[Tuple[int, List[List[int]]]]) None [源代码]
Replacing complex points with subgraphs
- Args:
src_topo_data: quantum program source topo data max_connect_degree: max value of connect degree sub_topo_vec: sub topo list
- Returns:
none
- Raises:
run_fail: An error occurred in replace_complex_points
- pyqpanda.pyQPanda.run_with_configuration(program: QProg, cbit_list: List[ClassicalCondition], shots: int, noise_model: Noise = NoiseModel()) Dict[str, int] [源代码]
- pyqpanda.pyQPanda.run_with_configuration(program: QProg, shots: int, noise_model: Noise = NoiseModel()) Dict[str, int]
Run quantum program with configuration
- Args:
program: quantum program cbit_list: classic cbits list shots: repeate run quantum program times noise_model: noise model, default is no noise. noise model only work on CPUQVM now
- Returns:
result of quantum program execution in shots. first is the final qubit register state, second is it's hit shotRaises: run_fail: An error occurred in measure quantum program
- pyqpanda.pyQPanda.sabre_mapping(prog: QProg, quantum_machine: QuantumMachine, init_map: List[int], max_look_ahead: int = 20, max_iterations: int = 10, config_data: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.pyQPanda.sabre_mapping(prog: QProg, quantum_machine: QuantumMachine, init_map: List[int], max_look_ahead: int, max_iterations: int, arch_matrix: numpy.ndarray[numpy.float64[m, n]]) QProg
- pyqpanda.pyQPanda.sabre_mapping(prog: QProg, quantum_machine: QuantumMachine, max_look_ahead: int = 20, max_iterations: int = 10, config_data: str = 'QPandaConfig.json') QProg
- pyqpanda.pyQPanda.sabre_mapping(prog: QProg, quantum_machine: QuantumMachine, max_look_ahead: int, max_iterations: int, arch_matrix: numpy.ndarray[numpy.float64[m, n]]) QProg
sabre mapping
- Args:
prog: the target prog quantum_machine: quantum machine max_look_ahead: sabre_mapping max_look_ahead, default is 20 max_iterations: sabre_mapping max_iterations, default is 10 arch_matrix: arch matrix
- Returns:
mapped quantum program
- pyqpanda.pyQPanda.single_qubit_rb(qvm: QuantumMachine, qubit: Qubit, clifford_range: List[int], num_circuits: int, shots: int, chip_id: int = 2, interleaved_gates: List[QGate] = []) Dict[int, float] [源代码]
- pyqpanda.pyQPanda.single_qubit_rb(config: QCloudTaskConfig, qubit: int, clifford_range: List[int], num_circuits: int, interleaved_gates: List[QGate] = []) Dict[int, float]
Single qubit rb with origin chip
- Args:
config: quantum QCloudTaskConfig qubit: single qubit clifford_range: clifford range list num_circuits: the num of circuits interleaved_gates: interleaved gates list
- Returns:
result data dict
- Raises:
run_fail: An error occurred in single_qubit_rb
- pyqpanda.pyQPanda.split_complex_points(complex_points: List[int], max_connect_degree: int, topo_data: List[List[int]], split_method: ComplexVertexSplitMethod = ComplexVertexSplitMethod.LINEAR) List[Tuple[int, List[List[int]]]] [源代码]
Splitting complex points into multiple points
- Args:
topo_data: quantum program topo_data max_connect_degree: max value of connect degree complex_points: complex points list split_method: see ComplexVertexSplitMethod, default is ComplexVertexSplitMethod.LINEAR
- Returns:
none
- Raises:
run_fail: An error occurred in split_complex_points
- pyqpanda.pyQPanda.state_fidelity(state1: List[complex], state2: List[complex]) float [源代码]
- pyqpanda.pyQPanda.state_fidelity(matrix1: List[List[complex]], matrix2: List[List[complex]]) float
- pyqpanda.pyQPanda.state_fidelity(state1: List[complex], state2: List[List[complex]]) float
- pyqpanda.pyQPanda.state_fidelity(state1: List[List[complex]], state2: List[complex]) float
compare two quantum states , Get the state fidelity
- Args:
state1: quantum state matrix 1 state2: quantum state list 2
- Returns:
state fidelity bewteen [0,1]
- pyqpanda.pyQPanda.sub(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.pyQPanda.sub(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.pyQPanda.sub(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.pyQPanda.to_Quil(qprog: QProg, machine: QuantumMachine) str [源代码]
Transform QProg to Quil instruction
- Args:
qprog: QProg machine: quantum machine
- Returns:
Quil instruction string
- pyqpanda.pyQPanda.to_originir(qprog: QProg, machine: QuantumMachine) str [源代码]
- pyqpanda.pyQPanda.to_originir(qprog: QCircuit, machine: QuantumMachine) str
- pyqpanda.pyQPanda.to_originir(qprog: QGate, machine: QuantumMachine) str
- pyqpanda.pyQPanda.to_originir(qprog: QIfProg, machine: QuantumMachine) str
- pyqpanda.pyQPanda.to_originir(qprog: QWhileProg, machine: QuantumMachine) str
- pyqpanda.pyQPanda.to_originir(qprog: QMeasure, machine: QuantumMachine) str
Transform QProg to OriginIR string
- Args:
qprog: QProg or QCircute machine: quantum machine
- Returns:
QriginIR string
- pyqpanda.pyQPanda.topology_match(qprog: QProg, qubit_list: QVec, machine: QuantumMachine, confing_file: str = 'QPandaConfig.json') list [源代码]
Judge QProg/QCircuit matches the topology of the physical qubits
- Args:
qprog: quantum prog qubit_list: qubits list in quantum prog machine: quantum machine confing_file: match configfilepath, default is QPandaConfig.json
- Returns:
result data
- Raises:
run_fail: An error occurred in topology_match
- pyqpanda.pyQPanda.transform_binary_data_to_qprog(machine: QuantumMachine, data: List[int]) QProg [源代码]
Parse binary data trans to quantum program
- Args:
machine: quantum machine data: list contains binary data from transform_qprog_to_binary()
- Returns:
QProg
- pyqpanda.pyQPanda.transform_originir_to_qprog(fname: str, machine: QuantumMachine) QProg [源代码]
Transform OriginIR to QProg
- Args:
fname: file sotred OriginIR instruction machine: quantum machine
- Returns:
QProg
- pyqpanda.pyQPanda.transform_qprog_to_binary(qprog: QProg, machine: QuantumMachine) List[int] [源代码]
- pyqpanda.pyQPanda.transform_qprog_to_binary(qprog: QProg, machine: QuantumMachine, fname: str) None
Save quantum program to file as binary data
- Args:
qprog: QProg machine: quantum machine fname: save to file name
- pyqpanda.pyQPanda.transform_qprog_to_originir(qprog: QProg, machine: QuantumMachine) str [源代码]
Quantum program transform to OriginIR string
- Args:
qprog: QProg machine: quantum machine
- Returns:
OriginIR instruction string
- pyqpanda.pyQPanda.transform_qprog_to_quil(qprog: QProg, machine: QuantumMachine) str [源代码]
Transform QProg to Quil instruction
- Args:
qprog: QProg machine: quantum machine
- Returns:
Quil instruction string
- pyqpanda.pyQPanda.transform_to_base_qgate(qprog: QProg, machine: QuantumMachine, config_file: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.pyQPanda.transform_to_base_qgate(qprog: QProg, machine: QuantumMachine, convert_single_gates: List[str], convert_double_gates: List[str]) QProg
Basic quantum - gate conversion
- Args:
qprog: quantum program machine: quantum machine convert_single_gates: quantum single gates sets convert_double_gates: quantum double gates sets
- Returns:
a new prog after transform_to_base_qgate
- pyqpanda.pyQPanda.transfrom_pauli_operator_to_matrix(arg0) List[complex] [源代码]
transfrom pauli operator to matrix
- Args:
matrix: 2^N *2^N double matrix
- Returns:
result : hamiltonian
- pyqpanda.pyQPanda.validate_double_qgate_type(gate_str_list: List[str]) list [源代码]
Get valid QGates and valid double bit QGate type
- Args:
double_gates: double gates list
- Returns:
result list
- pyqpanda.pyQPanda.validate_single_qgate_type(gate_str_list: List[str]) list [源代码]
Get valid QGates and valid single bit QGate type
- Args:
single_gates: single gates list
- Returns:
result list
- pyqpanda.pyQPanda.vector_dot(x: List[float], y: List[float]) float [源代码]
Inner product of vector x and y
- Args:
x: list x y: list y
- Returns:
dot result
- Raises:
run_fail: An error occurred in vector_dot
- pyqpanda.pyQPanda.virtual_z_transform(prog: QProg, quantum_machine: QuantumMachine, b_del_rz_gate: bool = False, config_data: str = 'QPandaConfig.json') QProg [源代码]
virtual z transform
- Args:
prog: the target prog quantum_machine: quantum machine b_del_rz_gate: whether delete the rz gate config_data: config data, @See JsonConfigParam::load_config()
- Returns:
mapped quantum program