pyqpanda.Algorithm.test
Test Module
Copyright (C) Origin Quantum 2017-2018
Licensed Under Apache Licence 2.0
Submodules
pyqpanda.Algorithm.test.hamiltonian_simulation_test
pyqpanda.Algorithm.test.qaoa_maxcut_test
pyqpanda.Algorithm.test.qaoa_test
pyqpanda.Algorithm.test.qcl_test
pyqpanda.Algorithm.test.quantum_gradient_qaoa_test
pyqpanda.Algorithm.test.state_preparation_test
pyqpanda.Algorithm.test.test_script
pyqpanda.Algorithm.test.test_utils
pyqpanda.Algorithm.test.vqe_test
Package 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 |
|
Quantum Computing Cloud Service Utility Class. |
|
This class can submit Quantum Program to PilotOS. |
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 |
|
construct a pauli i operator |
|
decompose matrix into hamiltonian |
|
Transfrom Pauli operator to vector |
|
Transfrom vector to pauli operator |
|
construct a pauli x operator |
|
construct a pauli y operator |
|
construct a pauli z operator |
|
Apply single gates to all qubits in qubit_list |
|
Apply a single gate to a qubit |
|
Measure qubits mapping to cbits |
|
get quantum state fidelity |
|
Draw a quantum circuit to different formats (set by output parameter): |
|
|
|
Draw a quantum state probaility dict |
|
Draw a quantum state probaility dict |
|
plot quantum state city |
|
plot quantum state density matrix |
|
convert quantum state to density matrix |
|
Draw a quantum circuit bloch view , only support one qubit |
|
Draw a quantum state bloch view |
|
Draw a quantum state bloch view |
- class pyqpanda.Algorithm.test.AbstractOptimizer(*args, **kwargs)[源代码]
quantum AbstractOptimizer class
- class pyqpanda.Algorithm.test.AdaGradOptimizer(arg0: var, arg1: float, arg2: float, arg3: float)[源代码]
variational quantum AdaGradOptimizer
- class pyqpanda.Algorithm.test.AdamOptimizer(arg0: var, arg1: float, arg2: float, arg3: float, arg4: float)[源代码]
variational quantum AdamOptimizer
- class pyqpanda.Algorithm.test.Ansatz[源代码]
- class pyqpanda.Algorithm.test.Ansatz(arg0: QGate)
- class pyqpanda.Algorithm.test.Ansatz(arg0: AnsatzGate)
- class pyqpanda.Algorithm.test.Ansatz(ansatz: List[AnsatzGate], thetas: List[float] = [])
- class pyqpanda.Algorithm.test.Ansatz(ansatz_circuit: Ansatz, thetas: List[float] = [])
- class pyqpanda.Algorithm.test.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.Algorithm.test.AnsatzGate(arg0: AnsatzGateType, arg1: int)[源代码]
- class pyqpanda.Algorithm.test.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float)
- class pyqpanda.Algorithm.test.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float, arg3: int)
ansatz gate struct
- control: int
- target: int
- theta: float
- type: AnsatzGateType
- class pyqpanda.Algorithm.test.AnsatzGateType(value: int)[源代码]
Quantum ansatz gate type
Members:
AGT_X
AGT_H
AGT_RX
AGT_RY
AGT_RZ
- property name: str
- property value: int
- 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.Algorithm.test.BackendType(value: int)[源代码]
Quantum machine backend type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
MPS
- property name: str
- property value: int
- CPU: ClassVar[BackendType] = Ellipsis
- CPU_SINGLE_THREAD: ClassVar[BackendType] = Ellipsis
- GPU: ClassVar[BackendType] = Ellipsis
- MPS: ClassVar[BackendType] = Ellipsis
- NOISE: ClassVar[BackendType] = Ellipsis
- class pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.ChipID(value: int)[源代码]
origin quantum real chip type
Members:
Simulation
WUYUAN_1
WUYUAN_2
WUYUAN_3
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.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.Algorithm.test.ClassicalProg(arg0: ClassicalCondition)[源代码]
quantum ClassicalProg
- class pyqpanda.Algorithm.test.CommProtocolConfig[源代码]
- circuits_num: int
- open_error_mitigation: bool
- open_mapping: bool
- optimization_level: int
- shots: int
- class pyqpanda.Algorithm.test.ComplexVertexSplitMethod(value: int)[源代码]
quantum complex vertex split method
Members:
METHOD_UNDEFINED
LINEAR
RING
- property name: str
- property value: int
- LINEAR: ClassVar[ComplexVertexSplitMethod] = Ellipsis
- METHOD_UNDEFINED: ClassVar[ComplexVertexSplitMethod] = Ellipsis
- RING: ClassVar[ComplexVertexSplitMethod] = Ellipsis
- class pyqpanda.Algorithm.test.DAGNodeType(value: int)[源代码]
Quantum dag node type
Members:
NUKNOW_SEQ_NODE_TYPE
MAX_GATE_TYPE
MEASURE
QUBIT
RESET
- property name: str
- property value: int
- 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.Algorithm.test.DecompositionMode(value: int)[源代码]
Quantum matrix decomposition mode
Members:
QR
HOUSEHOLDER_QR
QSDecomposition
CSDecomposition
- property name: str
- property value: int
- CSDecomposition: ClassVar[DecompositionMode] = Ellipsis
- HOUSEHOLDER_QR: ClassVar[DecompositionMode] = Ellipsis
- QR: ClassVar[DecompositionMode] = Ellipsis
- QSDecomposition: ClassVar[DecompositionMode] = Ellipsis
- class pyqpanda.Algorithm.test.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.Algorithm.test.DoubleGateTransferType(value: int)[源代码]
Quantum double gate transfer type
Members:
DOUBLE_GATE_INVALID
DOUBLE_BIT_GATE
- property name: str
- property value: int
- DOUBLE_BIT_GATE: ClassVar[DoubleGateTransferType] = Ellipsis
- DOUBLE_GATE_INVALID: ClassVar[DoubleGateTransferType] = Ellipsis
- class pyqpanda.Algorithm.test.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.Algorithm.test.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
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.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
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.HHLAlg(arg0: QuantumMachine)[源代码]
quantum hhl algorithm class
- class pyqpanda.Algorithm.test.LATEX_GATE_TYPE(value: int)[源代码]
Quantum latex gate type
Members:
GENERAL_GATE
CNOT_GATE
SWAP_GATE
- property name: str
- property value: int
- CNOT_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis
- GENERAL_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis
- SWAP_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis
- class pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.MomentumOptimizer(arg0: var, arg1: float, arg2: float)[源代码]
variational quantum MomentumOptimizer
- class pyqpanda.Algorithm.test.NodeInfo[源代码]
- class pyqpanda.Algorithm.test.NodeInfo(iter: NodeIter, target_qubits: QVec, control_qubits: QVec, type: int, dagger: bool)
Detailed information of a QProg node
- m_cbits: List[int]
- m_is_dagger: bool
- m_name: str
- m_params: List[float]
- class pyqpanda.Algorithm.test.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
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.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.Algorithm.test.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
- property name: str
- property value: int
- 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.Algorithm.test.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.Algorithm.test.OptimizerFactory[源代码]
quantum OptimizerFactory class
- makeOptimizer() AbstractOptimizer [源代码]
- makeOptimizer() AbstractOptimizer
Please input the Optimizer's name(string)
- class pyqpanda.Algorithm.test.OptimizerMode(value: int)[源代码]
variational quantum OptimizerMode
Members:
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.OptimizerType(value: int)[源代码]
quantum OptimizerType
Members:
NELDER_MEAD
POWELL
GRADIENT
- property name: str
- property value: int
- GRADIENT: ClassVar[OptimizerType] = Ellipsis
- NELDER_MEAD: ClassVar[OptimizerType] = Ellipsis
- POWELL: ClassVar[OptimizerType] = Ellipsis
- class pyqpanda.Algorithm.test.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.Algorithm.test.OriginCollection[源代码]
- class pyqpanda.Algorithm.test.OriginCollection(file_name: str)
- class pyqpanda.Algorithm.test.OriginCollection(arg0: OriginCollection)
A relatively free data collection class for saving data
- class pyqpanda.Algorithm.test.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.Algorithm.test.PilotNoiseParams(*args, **kwargs)[源代码]
pliot noise simulate params
- double_gate_param: float
- double_p2: float
- double_pgate: float
- noise_model: str
- single_gate_param: float
- single_p2: float
- single_pgate: float
- class pyqpanda.Algorithm.test.ProgCount[源代码]
- double_gate_layer_num: int
- double_gate_num: int
- gate_num: int
- layer_num: int
- multi_control_gate_num: int
- node_num: int
- single_gate_layer_num: int
- single_gate_num: int
- class pyqpanda.Algorithm.test.QCircuit[源代码]
- class pyqpanda.Algorithm.test.QCircuit(arg0: NodeIter)
quantum circuit node
- class pyqpanda.Algorithm.test.QCircuitOPtimizerMode(value: int)[源代码]
Quantum circuit optimize mode
Members:
Merge_H_X
Merge_U3
Merge_RX
Merge_RY
Merge_RZ
- property name: str
- property value: int
- 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.Algorithm.test.QCloudService[源代码]
Bases:
QuantumMachine
origin quantum cloud machine
- batch_compute_url: str
- batch_inquire_url: str
- big_data_batch_compute_url: str
- compute_url: str
- configuration_header_data: str
- estimate_url: str
- inquire_url: str
- measure_qubits_num: List[int]
- pqc_batch_compute_url: str
- pqc_batch_inquire_url: str
- pqc_compute_url: str
- pqc_init_url: str
- pqc_inquire_url: str
- pqc_keys_url: str
- use_compress_data: bool
- user_token: str
- 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(prog: QProg, task_name: str = 'QPanda Experiment', task_from: int = 4) None [源代码]
- build_init_object(prog_str: str, task_name: str = 'QPanda Experiment', task_from: int = 4) 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.Algorithm.test.QCloudTaskConfig[源代码]
- chip_id: real_chip_type
- cloud_token: str
- open_amend: bool
- open_mapping: bool
- open_optimization: bool
- shots: int
- class pyqpanda.Algorithm.test.QError(value: int)[源代码]
Quantum QError Type
Members:
UndefineError
qErrorNone
qParameterError
qubitError
loadFileError
initStateError
destroyStateError
setComputeUnitError
runProgramError
getResultError
getQStateError
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.QIfProg(arg0: NodeIter)[源代码]
- class pyqpanda.Algorithm.test.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg)
- class pyqpanda.Algorithm.test.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg, false_branch_qprog: QProg)
quantum if prog node
- get_classical_condition() ClassicalCondition [源代码]
- class pyqpanda.Algorithm.test.QMachineType(value: int)[源代码]
Quantum machine type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
- property name: str
- property value: int
- CPU: ClassVar[QMachineType] = Ellipsis
- CPU_SINGLE_THREAD: ClassVar[QMachineType] = Ellipsis
- GPU: ClassVar[QMachineType] = Ellipsis
- NOISE: ClassVar[QMachineType] = Ellipsis
- class pyqpanda.Algorithm.test.QOperator[源代码]
- class pyqpanda.Algorithm.test.QOperator(arg0: QGate)
- class pyqpanda.Algorithm.test.QOperator(arg0: QCircuit)
quantum operator class
- class pyqpanda.Algorithm.test.QOptimizationResult(arg0: str, arg1: int, arg2: int, arg3: str, arg4: float, arg5: List[float])[源代码]
quantum QOptimizationResult class
- fcalls: int
- fun_val: float
- iters: int
- key: str
- message: str
- para: List[float]
- class pyqpanda.Algorithm.test.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.Algorithm.test.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 [源代码]
deprecated, use request instead.
- 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_expectation_task_msg(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] = [], task_describe: str = '') str [源代码]
use C++ to build a expectation task body.
- build_qst_task_msg(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] = [], task_describe: str = '') str [源代码]
use C++ to build ordinary qst task msg body
- 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 [源代码]
use c++ to build real chip measure task msg body.
- 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 [源代码]
deprecated, use request instead.
- 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.Algorithm.test.QProg[源代码]
- class pyqpanda.Algorithm.test.QProg(arg0: QProg)
- class pyqpanda.Algorithm.test.QProg(arg0: QCircuit)
- class pyqpanda.Algorithm.test.QProg(arg0: QIfProg)
- class pyqpanda.Algorithm.test.QProg(arg0: QWhileProg)
- class pyqpanda.Algorithm.test.QProg(arg0: QGate)
- class pyqpanda.Algorithm.test.QProg(arg0: QMeasure)
- class pyqpanda.Algorithm.test.QProg(arg0: QReset)
- class pyqpanda.Algorithm.test.QProg(arg0: ClassicalCondition)
- class pyqpanda.Algorithm.test.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.Algorithm.test.QProgDAG[源代码]
quantum prog dag class
- get_edges() List[QProgDAGEdge] [源代码]
- get_target_vertex(vertice_num: int) QProgDAGVertex [源代码]
- get_vertex_set() List[QProgDAGVertex] [源代码]
- class pyqpanda.Algorithm.test.QProgDAGEdge(from_arg: int, to_arg: int, qubit_arg: int)[源代码]
quantum prog dag edge
- m_from: int
- m_qubit: int
- m_to: int
- class pyqpanda.Algorithm.test.QProgDAGVertex[源代码]
quantum prog dag vertex node
- m_id: int
- m_layer: int
- m_pre_node: List[int]
- m_succ_node: List[int]
- m_type: DAGNodeType
- class pyqpanda.Algorithm.test.QResult(*args, **kwargs)[源代码]
QResult abstract class, this class contains the result of the quantum measurement
- class pyqpanda.Algorithm.test.QVec[源代码]
- class pyqpanda.Algorithm.test.QVec(qubit_list: List[Qubit])
- class pyqpanda.Algorithm.test.QVec(qvec: QVec)
- class pyqpanda.Algorithm.test.QVec(qubit: Qubit)
Qubit vector basic class
- class pyqpanda.Algorithm.test.QWhileProg(arg0: NodeIter)[源代码]
- class pyqpanda.Algorithm.test.QWhileProg(arg0: ClassicalCondition, arg1: QProg)
quantum while node
- get_classical_condition() ClassicalCondition [源代码]
- class pyqpanda.Algorithm.test.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() List[Qubit] [源代码]
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.Algorithm.test.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.Algorithm.test.Qubit(*args, **kwargs)[源代码]
Qubit abstract class
- getPhysicalQubitPtr() PhysicalQubit [源代码]
- class pyqpanda.Algorithm.test.RMSPropOptimizer(arg0: var, arg1: float, arg2: float, arg3: float)[源代码]
variational quantum RMSPropOptimizer
- class pyqpanda.Algorithm.test.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.Algorithm.test.SingleGateTransferType(value: int)[源代码]
Quantum single gate transfer type
Members:
SINGLE_GATE_INVALID
ARBITRARY_ROTATION
DOUBLE_CONTINUOUS
SINGLE_CONTINUOUS_DISCRETE
DOUBLE_DISCRETE
- property name: str
- property value: int
- 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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.UpdateMode(value: int)[源代码]
quantum imaginary time evolution update mode
Members:
GD_VALUE
GD_DIRECTION
- property name: str
- property value: int
- GD_DIRECTION: ClassVar[UpdateMode] = Ellipsis
- GD_VALUE: ClassVar[UpdateMode] = Ellipsis
- class pyqpanda.Algorithm.test.VanillaGradientDescentOptimizer(arg0: var, arg1: float, arg2: float, arg3: OptimizerMode)[源代码]
variational quantum VanillaGradientDescentOptimizer
- class pyqpanda.Algorithm.test.VariationalQuantumCircuit[源代码]
- class pyqpanda.Algorithm.test.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.Algorithm.test.VariationalQuantumGate(*args, **kwargs)[源代码]
variational quantum gate base class
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CNOT(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum CNOT gate class
- control(arg0: QVec) VariationalQuantumGate_CNOT [源代码]
- dagger() VariationalQuantumGate_CNOT [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CR(arg0: Qubit, arg1: Qubit, arg2: float)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CR(arg0: Qubit, arg1: Qubit, arg2: var)
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CR(arg0: VariationalQuantumGate_CR)
Bases:
VariationalQuantumGate
variational quantum CR gate class
- control(arg0: QVec) VariationalQuantumGate_CR [源代码]
- dagger() VariationalQuantumGate_CR [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRX(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRX(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRX(arg0: VariationalQuantumGate_CRX)
Bases:
VariationalQuantumGate
variational quantum CRX gate class
- control(arg0: QVec) VariationalQuantumGate_CRX [源代码]
- dagger() VariationalQuantumGate_CRX [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRY(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRY(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRY(arg0: VariationalQuantumGate_CRY)
Bases:
VariationalQuantumGate
variational quantum CRY gate class
- control(arg0: QVec) VariationalQuantumGate_CRY [源代码]
- dagger() VariationalQuantumGate_CRY [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRZ(arg0: Qubit, arg1: QVec, arg2: float)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRZ(arg0: Qubit, arg1: QVec, arg2: var)
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CRZ(arg0: VariationalQuantumGate_CRZ)
Bases:
VariationalQuantumGate
variational quantum CRZ gate class
- control(arg0: QVec) VariationalQuantumGate_CRZ [源代码]
- dagger() VariationalQuantumGate_CRZ [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CU(arg0: Qubit, arg1: Qubit, arg2: float, arg3: float, arg4: float, arg5: float)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CU(arg0: Qubit, arg1: Qubit, arg2: var, arg3: var, arg4: var, arg5: var)
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CU(arg0: VariationalQuantumGate_CU)
Bases:
VariationalQuantumGate
variational quantum CU gate class
- control(arg0: QVec) VariationalQuantumGate_CU [源代码]
- dagger() VariationalQuantumGate_CU [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_CZ(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum CZ gate class
- control(arg0: QVec) VariationalQuantumGate_CZ [源代码]
- dagger() VariationalQuantumGate_CZ [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_H(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum H gate class
- control(arg0: QVec) VariationalQuantumGate_H [源代码]
- dagger() VariationalQuantumGate_H [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_I(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum I gate class
- control(arg0: QVec) VariationalQuantumGate_I [源代码]
- dagger() VariationalQuantumGate_I [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RX(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RX(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RX gate class
- control(arg0: QVec) VariationalQuantumGate_RX [源代码]
- dagger() VariationalQuantumGate_RX [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RY(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RY(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RY gate class
- control(arg0: QVec) VariationalQuantumGate_RY [源代码]
- dagger() VariationalQuantumGate_RY [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RZ(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_RZ(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum RZ gate class
- control(arg0: QVec) VariationalQuantumGate_RZ [源代码]
- dagger() VariationalQuantumGate_RZ [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_S(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum S gate class
- control(arg0: QVec) VariationalQuantumGate_S [源代码]
- dagger() VariationalQuantumGate_S [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_SWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum SWAP gate class
- control(arg0: QVec) VariationalQuantumGate_SWAP [源代码]
- dagger() VariationalQuantumGate_SWAP [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_SqiSWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum SqiSWAP gate class
- control(arg0: QVec) VariationalQuantumGate_SqiSWAP [源代码]
- dagger() VariationalQuantumGate_SqiSWAP [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_T(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum T gate class
- control(arg0: QVec) VariationalQuantumGate_T [源代码]
- dagger() VariationalQuantumGate_T [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_U1(arg0: Qubit, arg1: var)[源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_U1(arg0: Qubit, arg1: float)
Bases:
VariationalQuantumGate
variational quantum U1 gate class
- control(arg0: QVec) VariationalQuantumGate_U1 [源代码]
- dagger() VariationalQuantumGate_U1 [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_U2(arg0: Qubit, arg1: var, arg2: var)[源代码]
- class pyqpanda.Algorithm.test.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.Algorithm.test.VariationalQuantumGate_U3(arg0: Qubit, arg1: var, arg2: var, arg3: var)[源代码]
- class pyqpanda.Algorithm.test.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.Algorithm.test.VariationalQuantumGate_U4(arg0: Qubit, arg1: var, arg2: var, arg3: var, arg4: var)[源代码]
- class pyqpanda.Algorithm.test.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.Algorithm.test.VariationalQuantumGate_X(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum X gate class
- control(arg0: QVec) VariationalQuantumGate_X [源代码]
- dagger() VariationalQuantumGate_X [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_X1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum X1 gate class
- control(arg0: QVec) VariationalQuantumGate_X1 [源代码]
- dagger() VariationalQuantumGate_X1 [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_Y(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Y gate class
- control(arg0: QVec) VariationalQuantumGate_Y [源代码]
- dagger() VariationalQuantumGate_Y [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_Y1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Y1 gate class
- control(arg0: QVec) VariationalQuantumGate_Y1 [源代码]
- dagger() VariationalQuantumGate_Y1 [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_Z(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Z gate class
- control(arg0: QVec) VariationalQuantumGate_Z [源代码]
- dagger() VariationalQuantumGate_Z [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_Z1(arg0: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum Z1 gate class
- control(arg0: QVec) VariationalQuantumGate_Z1 [源代码]
- dagger() VariationalQuantumGate_Z1 [源代码]
- class pyqpanda.Algorithm.test.VariationalQuantumGate_iSWAP(arg0: Qubit, arg1: Qubit)[源代码]
Bases:
VariationalQuantumGate
variational quantum iSWAP gate class
- control(arg0: QVec) VariationalQuantumGate_iSWAP [源代码]
- dagger() VariationalQuantumGate_iSWAP [源代码]
- class pyqpanda.Algorithm.test.em_method(value: int)[源代码]
origin quantum real chip error_mitigation type
Members:
ZNE
PEC
READ_OUT
- property name: str
- property value: int
- class pyqpanda.Algorithm.test.expression(arg0: var)[源代码]
variational quantum expression class
- class pyqpanda.Algorithm.test.hadamard_circuit(arg0: QVec)[源代码]
Bases:
QCircuit
hadamard circuit class
- class pyqpanda.Algorithm.test.real_chip_type(value: int)[源代码]
origin quantum real chip type enum
Members:
origin_wuyuan_d3
origin_wuyuan_d4
origin_wuyuan_d5
origin_72
- property name: str
- property value: int
- 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.Algorithm.test.var(arg0: float)[源代码]
- class pyqpanda.Algorithm.test.var(arg0: numpy.ndarray[numpy.float64[m, n], flags.writeable])
- class pyqpanda.Algorithm.test.var(arg0: float, arg1: bool)
- class pyqpanda.Algorithm.test.var(arg0: numpy.ndarray[numpy.float64[m, n], flags.writeable], arg1: bool)
quantum variational class
- pyqpanda.Algorithm.test.BARRIER(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.BARRIER(qubit_list: int) QGate
- pyqpanda.Algorithm.test.BARRIER(qubit_list: QVec) QGate
- pyqpanda.Algorithm.test.BARRIER(qubit_addr_list: List[int]) QGate
Create a BARRIER gate
- Args:
qubit_list : measure qubits list
- Returns:
a BARRIER node
- pyqpanda.Algorithm.test.CNOT(control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.CNOT(control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.CNOT(control_qubit_addr: int, target_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CP(control_qubit: Qubit, target_qubit: Qubit, theta_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.CP(control_qubit_list: QVec, target_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.Algorithm.test.CP(control_qubit_addr: int, target_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CR(control_qubit: Qubit, target_qubit: Qubit, theta_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.CR(control_qubit_list: QVec, target_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.Algorithm.test.CR(control_qubit_addr: int, target_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CU(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.CU(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, control_qubit_list: QVec, target_qubi_list: QVec) QCircuit
- pyqpanda.Algorithm.test.CU(matrix: List[complex], control_qubit: Qubit, target_qubit: Qubit) QGate
- pyqpanda.Algorithm.test.CU(matrix: List[complex], control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.CU(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QGate
- pyqpanda.Algorithm.test.CU(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QCircuit
- pyqpanda.Algorithm.test.CU(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CU(control_qubit: Qubit, target_qubit: Qubit, matrix: List[complex]) QGate
- pyqpanda.Algorithm.test.CU(control_qubit_list: QVec, target_qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.Algorithm.test.CU(control_qubit_addr: int, target_qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CZ(control_qubit: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.CZ(control_qubit_list: QVec, target_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.CZ(control_qubit_addr: int, target_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.CreateEmptyCircuit() QCircuit [源代码]
Create an empty QCircuit Container
- Args:
none
- Returns:
a empty QCircuit
- pyqpanda.Algorithm.test.CreateEmptyQProg() QProg [源代码]
Create an empty QProg Container
- Args:
none
- Returns:
a empty QProg
- pyqpanda.Algorithm.test.CreateIfProg(classical_condition: ClassicalCondition, true_node: QProg) QIfProg [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.Grover_search(list: List[int], Classical_condition: ClassicalCondition, QuantumMachine: Grover_search.QuantumMachine, repeat: int = 2) Grover_search.list [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.H(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.H(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.H(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.I(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.I(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.I(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.MAJ(arg0: Qubit, arg1: Qubit, arg2: Qubit) QCircuit [源代码]
Quantum adder MAJ module
- pyqpanda.Algorithm.test.MAJ2(arg0: QVec, arg1: QVec, arg2: Qubit) QCircuit [源代码]
Quantum adder MAJ2 module
- pyqpanda.Algorithm.test.MS(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.MS(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.MS(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Measure(qubit: Qubit, cbit: ClassicalCondition) QMeasure [源代码]
- pyqpanda.Algorithm.test.Measure(qubit: Qubit, cbit: CBit) QMeasure
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.P(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.P(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.Algorithm.test.P(qubit_addr: int, angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.QAdd(arg0: QVec, arg1: QVec, arg2: QVec) QCircuit [源代码]
Quantum adder that supports signed operations, but ignore carry
- pyqpanda.Algorithm.test.QAdder(arg0: QVec, arg1: QVec, arg2: Qubit, arg3: Qubit) QCircuit [源代码]
Quantum adder with carry
- pyqpanda.Algorithm.test.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.Algorithm.test.QComplement(arg0: QVec, arg1: QVec) QCircuit [源代码]
Convert quantum state to binary complement representation
- pyqpanda.Algorithm.test.QDiv(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec, arg4: ClassicalCondition) QProg [源代码]
Quantum division
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.QDouble(first_qubit: Qubit, second_qubit: Qubit, matrix: List[complex]) QGate [源代码]
- pyqpanda.Algorithm.test.QDouble(first_qubit_list: QVec, second_qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.Algorithm.test.QDouble(first_qubit_addr: int, second_qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.QMul(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec) QCircuit [源代码]
Quantum multiplication
- pyqpanda.Algorithm.test.QMultiplier(arg0: QVec, arg1: QVec, arg2: QVec, arg3: QVec) QCircuit [源代码]
Quantum multiplication, only supports positive multiplication
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.QSub(arg0: QVec, arg1: QVec, arg2: QVec) QCircuit [源代码]
Quantum subtraction
- pyqpanda.Algorithm.test.RX(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RX(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.Algorithm.test.RX(qubit_addr: int, angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RXX(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RXX(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.Algorithm.test.RXX(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RY(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RY(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.Algorithm.test.RY(qubit_addr: int, angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RYY(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RYY(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.Algorithm.test.RYY(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RZ(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RZ(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.Algorithm.test.RZ(qubit_addr: int, angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RZX(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RZX(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.Algorithm.test.RZX(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.RZZ(control_qubit: Qubit, target_qubit: Qubit, alpha_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.RZZ(control_qubit_list: QVec, target_qubit_list: QVec, alpha_angle: float) QCircuit
- pyqpanda.Algorithm.test.RZZ(control_qubit_addr: int, target_qubit_addr: int, alpha_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Reset(qubit: Qubit) QReset [源代码]
- pyqpanda.Algorithm.test.Reset(qubit_addr: int) QReset
Create a Reset node
- pyqpanda.Algorithm.test.S(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.S(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.S(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.SWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.SWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.SWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.SqiSWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.SqiSWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.SqiSWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.T(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.T(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.T(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Toffoli(control_qubit_first: Qubit, control_qubit_second: Qubit, target_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.Toffoli(control_qubit_addr_first: int, control_qubit_addr_second: int, target_qubit_addr: int) QGate
Create a Toffoli gate
- pyqpanda.Algorithm.test.U1(qubit: Qubit, angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.U1(qubit_list: QVec, angle: float) QCircuit
- pyqpanda.Algorithm.test.U1(qubit_addr: int, angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.U2(qubit: Qubit, phi_angle: float, lambda_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.U2(qubit_list: QVec, phi_angle: float, lambda_angle: float) QCircuit
- pyqpanda.Algorithm.test.U2(qubit_addr: int, phi_angle: float, lambda_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.U3(qubit: Qubit, theta_angle: float, phi_angle: float, lambda_angle: float) QGate [源代码]
- pyqpanda.Algorithm.test.U3(qubit_list: QVec, theta_angle: float, phi_angle: float, lambda_angle: float) QCircuit
- pyqpanda.Algorithm.test.U3(qubit_addr: int, theta_angle: float, phi_angle: float, lambda_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.U4(matrix: List[complex], qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.U4(alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float, qubit: Qubit) QGate
- pyqpanda.Algorithm.test.U4(qubit: Qubit, matrix: List[complex]) QGate
- pyqpanda.Algorithm.test.U4(qubit_list: QVec, matrix: List[complex]) QCircuit
- pyqpanda.Algorithm.test.U4(qubit_addr: int, matrix: List[complex]) QGate
- pyqpanda.Algorithm.test.U4(qubit_addr_list: List[int], matrix: List[complex]) QCircuit
- pyqpanda.Algorithm.test.U4(qubit: Qubit, alpha_anlge: float, beta_anlge: float, gamma_anlge: float, delta_anlge: float) QGate
- pyqpanda.Algorithm.test.U4(qubit_list: QVec, alpha_angle: float, beta_angle: float, gamma_angle: float, delta_angle: float) QCircuit
- pyqpanda.Algorithm.test.U4(qubit_addr: int, alpha_anlge: float, beta_anlge: float, gamma_anlge: float, delta_anlge: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.UMA(arg0: Qubit, arg1: Qubit, arg2: Qubit) QCircuit [源代码]
Quantum adder UMA module
- pyqpanda.Algorithm.test.VQG_CNOT_batch(*args, **kwargs) Any [源代码]
variational quantum CNOT batch gates
- pyqpanda.Algorithm.test.VQG_SWAP_batch(*args, **kwargs) Any [源代码]
variational quantum SWAP batch gates
- pyqpanda.Algorithm.test.VQG_SqiSWAP_batch(*args, **kwargs) Any [源代码]
variational quantum SqiSWAP batch gates
- pyqpanda.Algorithm.test.VQG_iSWAP_batch(*args, **kwargs) Any [源代码]
variational quantum iSWAP batch gates
- pyqpanda.Algorithm.test.X(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.X(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.X(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.X1(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.X1(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.X1(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Y(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.Y(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.Y(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Y1(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.Y1(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.Y1(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Z(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.Z(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.Z(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.Z1(qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.Z1(qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.Z1(qubit_addr: int) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.add(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.add(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.add(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.Algorithm.test.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.Algorithm.test.amplitude_encode(qubit: QVec, data: List[float], b_need_check_normalization: bool = True) QCircuit [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.apply_QGate(qubit_list: QVec, func_obj: Callable[[Qubit], QGate]) QCircuit [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.assign(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.assign(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.average_gate_fidelity(state1: numpy.ndarray[numpy.complex128[m, n]], state2: List[complex]) float [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.cAlloc() ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.cAlloc(cbit_addr: int) ClassicalCondition
Allocate a CBit After init()
- Args:
cbit_addr: cbit address, should in [0,29)
- Returns:
classic result cbit
- pyqpanda.Algorithm.test.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.Algorithm.test.cFree(cbit: ClassicalCondition) None [源代码]
Free a CBit
- Args:
CBit: a CBit
- Returns:
none
- pyqpanda.Algorithm.test.cFree_all() None [源代码]
- pyqpanda.Algorithm.test.cFree_all(cbit_list: List[ClassicalCondition]) None
Free all cbits
- Args:
a list of cbits
- Returns:
none
- pyqpanda.Algorithm.test.calculate_quantum_volume(noise_qvm: NoiseQVM, qubit_list: List[List[int]], ntrials: int, shots: int = 1000) int [源代码]
- pyqpanda.Algorithm.test.calculate_quantum_volume(cloud_qvm, qubit_list: List[List[int]], ntrials: int, shots: int = 1000) int
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.comm_protocol_encode(prog: QProg, config: CommProtocolConfig = ...) bytes [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.convert_qprog_to_binary(qprog: QProg, machine: QuantumMachine) List[int] [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.count_gate(quantum_prog: QProg) int [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.count_prog_info(node: QProg, selected_types: List[GateType] = []) ProgCount [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.count_qgate_num(prog: QProg, gate_type: int = -1) int [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.create_empty_circuit() QCircuit [源代码]
Create an empty QCircuit Container
- Args:
none
- Returns:
a empty QCircuit
- pyqpanda.Algorithm.test.create_empty_qprog() QProg [源代码]
Create an empty QProg Container
- Args:
none
- Returns:
a empty QProg
- pyqpanda.Algorithm.test.create_if_prog(classical_condition: ClassicalCondition, true_node: QProg) QIfProg [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.decompose_multiple_control_qgate(qprog: QProg, machine: QuantumMachine, config_file: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.deep_copy(node: QProg) QProg [源代码]
- pyqpanda.Algorithm.test.deep_copy(node: QCircuit) QCircuit
- pyqpanda.Algorithm.test.deep_copy(node: QGate) QGate
- pyqpanda.Algorithm.test.deep_copy(node: QMeasure) QMeasure
- pyqpanda.Algorithm.test.deep_copy(node: ClassicalProg) ClassicalProg
- pyqpanda.Algorithm.test.deep_copy(node: QIfProg) QIfProg
- pyqpanda.Algorithm.test.deep_copy(node: QWhileProg) QWhileProg
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.div(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.div(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.div(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.equal(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.equal(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.equal(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.Algorithm.test.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.Algorithm.test.eval(arg0: var, arg1: bool) numpy.ndarray[numpy.float64[m, n]] [源代码]
- pyqpanda.Algorithm.test.eval(arg0: var) numpy.ndarray[numpy.float64[m, n]]
- pyqpanda.Algorithm.test.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.Algorithm.test.expand_linear_equations(matrix: List[complex], list: List[float]) expand_linear_equations.list [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.finalize() None [源代码]
Finalize the environment and destory global unique quantum machine.
- Args:
none
- Returns:
none
- pyqpanda.Algorithm.test.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.Algorithm.test.flatten(qprog: QProg) None [源代码]
- pyqpanda.Algorithm.test.flatten(qcircuit: QCircuit) None
Flatten quantum circuit
- Args:
qprog: quantum circuit
- Returns:
none
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.get_all_used_qubits(qprog: QProg) List[Qubit] [源代码]
Get all the used quantum bits in the input prog Args:
qprog: quantum program
- Returns:
all used qubits
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.get_allocate_qubits() List[Qubit] [源代码]
Get allocated qubits of QuantumMachine
- Args:
none
- Returns:
qubit list
- Raises:
run_fail: An error occurred in allocated qubits of QuantumMachine
- pyqpanda.Algorithm.test.get_bin_data(qprog: QProg) List[int] [源代码]
Get quantum program binary data
- Args:
qprog: QProg machine: quantum machine
- Returns:
binary data in list
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.get_clock_cycle(qpog: QProg) int [源代码]
Get quantum program clock cycle Args:
qprog: QProg
- Returns:
clock_cycle
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.get_qgate_num(quantum_prog: QProg) int [源代码]
- pyqpanda.Algorithm.test.get_qgate_num(quantum_circuit: QCircuit) int
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.iSWAP(first_qubit: Qubit, second_qubit: Qubit) QGate [源代码]
- pyqpanda.Algorithm.test.iSWAP(first_qubit_list: QVec, second_qubit_list: QVec) QCircuit
- pyqpanda.Algorithm.test.iSWAP(first_qubit_addr: int, second_qubit_addr: int) QGate
- pyqpanda.Algorithm.test.iSWAP(first_qubit_addr_list: List[int], second_qubit_addr_list: List[int]) QCircuit
- pyqpanda.Algorithm.test.iSWAP(first_qubit: Qubit, second_qubit: Qubit, theta_angle: float) QGate
- pyqpanda.Algorithm.test.iSWAP(first_qubit_list: QVec, second_qubit_list: QVec, theta_angle: float) QCircuit
- pyqpanda.Algorithm.test.iSWAP(first_qubit_addr: int, second_qubit_addr: int, theta_angle: float) QGate
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.isCarry(arg0: QVec, arg1: QVec, arg2: Qubit, arg3: Qubit) QCircuit [源代码]
Construct a circuit to determine if there is a carry
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.ldd_decompose(qprog: QProg) QProg [源代码]
Decompose multiple control QGate
- Args:
qprog: quantum program
- Returns:
a new prog after decomposition
- pyqpanda.Algorithm.test.matrix_decompose(qubits: QVec, matrix: numpy.ndarray[numpy.complex128[m, n]], mode: DecompositionMode = DecompositionMode.QSD, b_positive_seq: bool = True) QCircuit [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.matrix_decompose_paulis(arg0: QuantumMachine, arg1: numpy.ndarray[numpy.float64[m, n]]) List[Tuple[float, QCircuit]] [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.measure_all(qubit_list: QVec, cbit_list: List[ClassicalCondition]) QProg [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.mul(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.mul(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.mul(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.Algorithm.test.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.Algorithm.test.pauli_combination_replace(arg0: List[Tuple[float, QCircuit]], arg1: QuantumMachine, arg2: str, arg3: str) List[Tuple[float, QCircuit]] [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.qAlloc() Qubit [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.qFree(qubit: Qubit) None [源代码]
Free a qubit
- Args:
Qubit: a qubit
- Returns:
none
- pyqpanda.Algorithm.test.qFree_all() None [源代码]
- pyqpanda.Algorithm.test.qFree_all(qubit_list: QVec) None
Free a list of qubits
- Args:
a list of qubits
- Returns:
none
- pyqpanda.Algorithm.test.qop(VariationalQuantumCircuit: qop.VariationalQuantumCircuit, Hamiltonian, QuantumMachine: qop.QuantumMachine, qubitList: List[Qubit]) var [源代码]
- pyqpanda.Algorithm.test.qop(VariationalQuantumCircuit: qop.VariationalQuantumCircuit, Hamiltonian, QuantumMachine: qop.QuantumMachine, qubitList: Dict[int, Qubit]) var
- pyqpanda.Algorithm.test.qop_pmeasure(arg0: VariationalQuantumCircuit, arg1: List[int], arg2: QuantumMachine, arg3: List[Qubit]) var [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.quantum_walk_alg(*args, **kwargs) Any [源代码]
Build quantum-walk algorithm quantum circuit
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.run_with_configuration(program: QProg, cbit_list: List[ClassicalCondition], shots: int, noise_model: Noise = NoiseModel()) Dict[str, int] [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.sabre_mapping(prog: QProg, quantum_machine: QuantumMachine, max_look_ahead: int = 20, max_iterations: int = 10, config_data: str = 'QPandaConfig.json') QProg
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.state_fidelity(state1: List[complex], state2: List[complex]) float [源代码]
- pyqpanda.Algorithm.test.state_fidelity(matrix1: List[List[complex]], matrix2: List[List[complex]]) float
- pyqpanda.Algorithm.test.state_fidelity(state1: List[complex], state2: List[List[complex]]) float
- pyqpanda.Algorithm.test.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.Algorithm.test.sub(arg0: ClassicalCondition, arg1: ClassicalCondition) ClassicalCondition [源代码]
- pyqpanda.Algorithm.test.sub(arg0: ClassicalCondition, arg1: int) ClassicalCondition
- pyqpanda.Algorithm.test.sub(arg0: int, arg1: ClassicalCondition) ClassicalCondition
- pyqpanda.Algorithm.test.to_Quil(qprog: QProg, machine: QuantumMachine) str [源代码]
Transform QProg to Quil instruction
- Args:
qprog: QProg machine: quantum machine
- Returns:
Quil instruction string
- pyqpanda.Algorithm.test.to_originir(qprog: QProg, machine: QuantumMachine) str [源代码]
- pyqpanda.Algorithm.test.to_originir(qprog: QCircuit, machine: QuantumMachine) str
- pyqpanda.Algorithm.test.to_originir(qprog: QGate, machine: QuantumMachine) str
- pyqpanda.Algorithm.test.to_originir(qprog: QIfProg, machine: QuantumMachine) str
- pyqpanda.Algorithm.test.to_originir(qprog: QWhileProg, machine: QuantumMachine) str
- pyqpanda.Algorithm.test.to_originir(qprog: QMeasure, machine: QuantumMachine) str
Transform QProg to OriginIR string
- Args:
qprog: QProg or QCircute machine: quantum machine
- Returns:
QriginIR string
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.transform_qprog_to_binary(qprog: QProg, machine: QuantumMachine) List[int] [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.transform_to_base_qgate(qprog: QProg, machine: QuantumMachine, config_file: str = 'QPandaConfig.json') QProg [源代码]
- pyqpanda.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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.Algorithm.test.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
- class pyqpanda.Algorithm.test.FermionOperator[源代码]
- class pyqpanda.Algorithm.test.FermionOperator(arg0: float)
- class pyqpanda.Algorithm.test.FermionOperator(arg0: complex)
- class pyqpanda.Algorithm.test.FermionOperator(arg0: str, arg1: complex)
- class pyqpanda.Algorithm.test.FermionOperator(arg0: Dict[str, complex])
-
- normal_ordered() FermionOperator [源代码]
- class pyqpanda.Algorithm.test.PauliOperator[源代码]
- class pyqpanda.Algorithm.test.PauliOperator(arg0: complex)
- class pyqpanda.Algorithm.test.PauliOperator(matrix: numpy.ndarray[numpy.float64[m, n]], is_reduce_duplicates: bool = False)
- class pyqpanda.Algorithm.test.PauliOperator(key: str, value: complex, is_reduce_duplicates: bool = False)
- class pyqpanda.Algorithm.test.PauliOperator(pauli_map: Dict[str, complex], is_reduce_duplicates: bool = False)
- dagger() PauliOperator [源代码]
- remapQubitIndex(arg0: Dict[int, int]) PauliOperator [源代码]
- remap_qubit_index(arg0: Dict[int, int]) PauliOperator [源代码]
- class pyqpanda.Algorithm.test.VarFermionOperator[源代码]
- class pyqpanda.Algorithm.test.VarFermionOperator(arg0: float)
- class pyqpanda.Algorithm.test.VarFermionOperator(arg0: complex_var)
- class pyqpanda.Algorithm.test.VarFermionOperator(arg0: str, arg1: complex_var)
- class pyqpanda.Algorithm.test.VarFermionOperator(arg0: Dict[str, complex_var])
- data() List[Tuple[Tuple[List[Tuple[int, bool]], str], complex_var]] [源代码]
- normal_ordered() VarFermionOperator [源代码]
- class pyqpanda.Algorithm.test.VarPauliOperator[源代码]
- class pyqpanda.Algorithm.test.VarPauliOperator(arg0: float)
- class pyqpanda.Algorithm.test.VarPauliOperator(arg0: complex_var)
- class pyqpanda.Algorithm.test.VarPauliOperator(arg0: str, arg1: complex_var)
- class pyqpanda.Algorithm.test.VarPauliOperator(arg0: Dict[str, complex_var])
- dagger() VarPauliOperator [源代码]
- data() List[Tuple[Tuple[Dict[int, str], str], complex_var]] [源代码]
- remapQubitIndex(arg0: Dict[int, int]) VarPauliOperator [源代码]
- remap_qubit_index(arg0: Dict[int, int]) VarPauliOperator [源代码]
- class pyqpanda.Algorithm.test.complex_var[源代码]
- class pyqpanda.Algorithm.test.complex_var(arg0)
- class pyqpanda.Algorithm.test.complex_var(arg0, arg1)
- pyqpanda.Algorithm.test.i(arg0: int) PauliOperator [源代码]
construct a pauli i operator
- Args:
int: pauli operate index
- Returns:
pauli operator i
- Raises:
run_fail: An error occurred in construct a pauli i operator
- pyqpanda.Algorithm.test.matrix_decompose_hamiltonian(arg0: numpy.ndarray[numpy.float64[m, n]]) PauliOperator [源代码]
decompose matrix into hamiltonian
- Args:
quantum_machine: quantum machine matrix: 2^N *2^N double matrix
- Returns:
result : hamiltonian
- pyqpanda.Algorithm.test.trans_Pauli_operator_to_vec(arg0: PauliOperator) List[float] [源代码]
Transfrom Pauli operator to vector
- pyqpanda.Algorithm.test.trans_vec_to_Pauli_operator(arg0: List[float]) PauliOperator [源代码]
Transfrom vector to pauli operator
- pyqpanda.Algorithm.test.x(index: int) PauliOperator [源代码]
construct a pauli x operator
- Args:
int: pauli operate index
- Returns:
pauli operator x
- Raises:
run_fail: An error occurred in construct a pauli x operator
- pyqpanda.Algorithm.test.y(arg0: int) PauliOperator [源代码]
construct a pauli y operator
- Args:
int: pauli operate index
- Returns:
pauli operator y
- Raises:
run_fail: An error occurred in construct a pauli y operator
- pyqpanda.Algorithm.test.z(arg0: int) PauliOperator [源代码]
construct a pauli z operator
- Args:
int: pauli operate index
- Returns:
pauli operator z
- Raises:
run_fail: An error occurred in construct a pauli z operator
- pyqpanda.Algorithm.test.single_gate_apply_to_all(gate, qubit_list)[源代码]
Apply single gates to all qubits in qubit_list QGate(callback), list<Qubit> -> QCircuit
- Args:
gate : the quantum gate need to apply to all qubits qubit_list : qubit list
- Returns:
quantum circuit
- pyqpanda.Algorithm.test.single_gate(gate, qubit, angle=None)[源代码]
Apply a single gate to a qubit
Gate(callback), Qubit, angle(optional) -> QGate
- Args:
gate : the quantum gate need to apply qubit qubit : single qubit angle : theta for rotation gate
- Returns:
quantum circuit
Raises:
- "
run_fail: An error occurred in construct single gate node
- pyqpanda.Algorithm.test.meas_all(qubits, cbits)[源代码]
Measure qubits mapping to cbits
list<Qubit>, list<CBit> -> QProg Args:
qubit_list : measure qubits list cbits_list : measure cbits list
- Returns:
quantum prog
- Raises:
run_fail: An error occurred in construct measure all node
- pyqpanda.Algorithm.test.get_fidelity(result, shots, target_result)[源代码]
get quantum state fidelity Args:
result : current quantum state shots : measure shots target_result : compared state
- Returns:
fidelity bewteen [0,1]
Raises:
- "
run_fail: An error occurred in get_fidelity
- pyqpanda.Algorithm.test.draw_qprog(prog, output=None, scale=0.7, fold=30, filename=None, with_logo=False, line_length=100, NodeIter_first=None, NodeIter_second=None, console_encode_type='utf8')[源代码]
Draw a quantum circuit to different formats (set by output parameter):
text: ASCII art TextDrawing that can be printed in the console. text: ASCII art TextDrawing that can be printed in the console.
pic: images with color rendered purely in Python.
latex: latex source code of circuit
- Args:
prog : the quantum circuit to draw scale (float): scale of image to draw (shrink if < 1). Only used by the
pic
outputs. flod (int): x_max_size of image to draw. dOnly used by thepic
outputs. Default is 30. filename (str): file path to save image to NodeIter_first: circuit printing start position. NodeIter_second: circuit printing end position. console_encode_type(str): Target console encoding type.Mismatching of encoding types may result in character confusion, 'utf8' and 'gbk' are supported. Only used by the
pic
outputs.line_length (int): Sets the length of the lines generated by text output type.
- Returns:
no return
- pyqpanda.Algorithm.test.draw_probability(list)[源代码]
Draw a quantum state probaility dict
- Args:
list : the quantum state probaility dict
- Returns:
no return
- pyqpanda.Algorithm.test.draw_probability_dict(prob_dict)[源代码]
Draw a quantum state probaility dict
- Args:
list : the quantum state probaility dict
- Returns:
no return
- pyqpanda.Algorithm.test.plot_state_city(state, title='', figsize=None, color=None, ax_real=None, ax_imag=None)[源代码]
plot quantum state city
- Args:
quantum state: complex list title : string for figure color : color for figure
- Returns:
matplot figure
- Raises:
RuntimeError: if input is not a valid quantum state.
- pyqpanda.Algorithm.test.plot_density_matrix(M, xlabels=None, ylabels=None, title=None, limits=None, phase_limits=None, fig=None, axis_vals=None, threshold=None)[源代码]
plot quantum state density matrix
- Args:
quantum state: complex list title : string for figure color : color for figure
- Returns:
matplot figure
- Raises:
RuntimeError: if input is not a valid quantum state.
- pyqpanda.Algorithm.test.state_to_density_matrix(quantum_state)[源代码]
convert quantum state to density matrix
- Args:
quantum state: complex list
- Returns:
density matrix
- Raises:
RuntimeError: if input is not a valid quantum state.
- pyqpanda.Algorithm.test.plot_bloch_circuit(circuit, trace=True, saveas=None, fps=20, secs_per_gate=1)[源代码]
Draw a quantum circuit bloch view , only support one qubit
- Args:
circuit : the quantum circuit trace : whether shows the trace fps : flash fps
- Returns:
bloch figure shows quantum circuit
- pyqpanda.Algorithm.test.plot_bloch_vector(bloch, title='bloch', axis_obj=None, fig_size=None)[源代码]
Draw a quantum state bloch view
- Args:
state : the quantum state title : the figure title fig_size : the figure size
- Returns:
bloch figure shows quantum state
- pyqpanda.Algorithm.test.plot_bloch_multivector(state, title='', fig_size=None)[源代码]
Draw a quantum state bloch view
- Args:
state : the quantum state title : the figure title fig_size : the figure size
- Returns:
bloch figure shows quantum state
- class pyqpanda.Algorithm.test.QCloud[源代码]
Bases:
pyqpanda.QCloudService
Quantum Computing Cloud Service Utility Class.
The primary function of this utility class for the Origin Quantum Computing Cloud Service is to package and send quantum circuits to the remote computing service (Quantum Cloud). It then queries the computation results through polling, supporting various simulators and real hardware.
User API key authentication is required for computations. Please obtain it here : http://qcloud.originqc.com.cn/
- class CloudQMchineType
Bases:
Enum
Generic enumeration.
Derive from this class to define new enumerations.
- Full_AMPLITUDE = 0
- NOISE_QMACHINE = 1
- PARTIAL_AMPLITUDE = 2
- SINGLE_AMPLITUDE = 3
- CHEMISTRY = 4
- REAL_CHIP = 5
- QST = 6
- FIDELITY = 7
- class TaskStatus
Bases:
Enum
Generic enumeration.
Derive from this class to define new enumerations.
- WAITING = 1
- COMPUTING = 2
- FINISHED = 3
- FAILED = 4
- QUEUING = 5
- SENT_TO_BUILD_SYSTEM = 6
- BUILD_SYSTEM_ERROR = 7
- SEQUENCE_TOO_LONG = 8
- BUILD_SYSTEM_RUN = 9.0
- init_qvm(token: str, is_logged: bool = False, use_bin_or_hex=True, enable_pqc_encryption=False, random_num: bytes | str = os.urandom(96), request_time_out=100)[源代码]
init quantum virtual machine
- convert_result_format(input_dict: dict, binary_size: int)[源代码]
convert result format from binary to hex
- Args:
input_dict (dict): origin result dict use_bin_or_hex (bool): True -> use binary result format, False -> Hex
- Returns:
result: dict.
- async_full_amplitude_measure(prog: pyqpanda.QProg, shot: int, task_name: str = 'QPanda Experiment')[源代码]
Execute a full amplitude measurement on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit to be measured. shot (int): Number of measurements to perform. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
Task_id[str]: A task id for current task
- full_amplitude_measure(prog: pyqpanda.QProg, shot: int, task_name: str = 'QPanda Experiment')[源代码]
Execute a full amplitude measurement on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit to be measured. shot (int): Number of measurements to perform. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
Dict[str, float]: Dictionary containing probabilities of measurement outcomes.
- async_full_amplitude_pmeasure(prog: pyqpanda.QProg, qvec: List[int], task_name: str = 'QPanda Experiment')[源代码]
Execute a full amplitude probability measurement on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit to be measured. shot (int): Number of measurements to perform. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
Task_id[str]: A task id for current task
- full_amplitude_pmeasure(prog: pyqpanda.QProg, qvec: List[int], task_name: str = 'QPanda Experiment')[源代码]
Execute a full amplitude probability measurement on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit to be measured. qvec (List[int]): List of qubits to be measured. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
Dict[str, float]: Dictionary containing probabilities of measurement outcomes.
- get_expectation(prog: pyqpanda.QProg, hamiltonian: List[Tuple[Dict[int, str], float]], qvec: pyqpanda.QVec, task_name: str = 'QPanda Experiment')[源代码]
Calculate the expectation value of a Hamiltonian on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit for state preparation. hamiltonian (List[Tuple[Dict[int, str], float]]): List of terms in the Hamiltonian along with their coefficients. qvec (QVec): List of qubits representing the quantum state. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
float: Expectation value of the Hamiltonian.
- get_state_fidelity(prog: pyqpanda.QProg, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment')[源代码]
Get the state fidelity of the Quantum Real Chip.
- Args:
prog (QProg): Quantum program containing the circuit for state preparation. shot (int): Number of measurements to perform. chip_id (int, optional): ID of the quantum chip. Defaults to 2. is_amend (bool, optional): Flag for amplitude amplification. Defaults to True. is_mapping (bool, optional): Flag for qubit mapping. Defaults to True. is_optimization (bool, optional): Flag for gate optimization. Defaults to True. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
float: State fidelity value.
- get_state_tomography_density(prog: pyqpanda.QProg, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment')[源代码]
Get the density matrix for state tomography on the Quantum Cloud Service.
- Args:
prog (QProg): Quantum program containing the circuit for state preparation. shot (int): Number of measurements to perform. chip_id (int, optional): ID of the quantum chip. Defaults to 2. is_amend (bool, optional): Flag for amplitude amplification. Defaults to True. is_mapping (bool, optional): Flag for qubit mapping. Defaults to True. is_optimization (bool, optional): Flag for gate optimization. Defaults to True. task_name (str, optional): Task name for identification. Defaults to 'QPanda Experiment'.
- Returns:
List[List[complex]]: Density matrix representing the quantum state.
- async_noise_measure(prog: pyqpanda.QProg, shot: int, task_name: str = 'QPanda Experiment')[源代码]
Measure noise in the quantum computation.
- Args:
prog (QProg): The quantum circuit to be executed. shot (int): The number of shots (measurement repetitions). task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'.
- Returns:
Task_id[str]: A task id for current task
- noise_measure(prog: pyqpanda.QProg, shot: int, task_name: str = 'QPanda Experiment')[源代码]
Measure noise in the quantum computation.
- Args:
prog (QProg): The quantum circuit to be executed. shot (int): The number of shots (measurement repetitions). task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'.
- Returns:
Dict[str, float]: A dictionary containing measurement results.
- async_partial_amplitude_pmeasure(prog: pyqpanda.QProg, amp_vec: List[str], task_name: str = 'QPanda Experiment')[源代码]
Perform partial amplitude measurement in the quantum computation.
- Args:
prog (QProg): The quantum circuit to be executed. amp_vec (List[str]): List of amplitude vectors to be measured. task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'.
- Returns:
Task_id[str]: A task id for current task
- partial_amplitude_pmeasure(prog: pyqpanda.QProg, amp_vec: List[str], task_name: str = 'QPanda Experiment')[源代码]
Perform partial amplitude measurement in the quantum computation.
- Args:
prog (QProg): The quantum circuit to be executed. amp_vec (List[str]): List of amplitude vectors to be measured. task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'.
- Returns:
Dict[str, complex]: A dictionary containing complex-valued measurement results.
- async_real_chip_measure(prog: pyqpanda.QProg | str, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment', task_from=4)[源代码]
Perform measurements on a real quantum chip.
- Args:
prog (QProg): The quantum circuit to be executed. shot (int): The number of shots (measurement repetitions). chip_id (int, optional): Identifier for the specific quantum chip. Defaults to 2. is_amend (bool, optional): Flag indicating whether to perform amendments. Defaults to True. is_mapping (bool, optional): Flag indicating whether to perform qubit mapping. Defaults to True. is_optimization (bool, optional): Flag indicating whether to perform optimization. Defaults to True. task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'. task_from (int): Task source identifier (default is 4, represented by QPanda/pyqpanda).
- Returns:
taskid[str]: real chip task id
- pqc_encrypt(data: str)[源代码]
Encrypts the given data using the pqc encryption algorithm.
- Args:
data (str): The data to be encrypted.
- Returns:
str: The encrypted data.
- pqc_encrypt_and_combine_json(json_str: str)[源代码]
Encrypts the 'code' field and the remaining JSON data, and combines them into a new JSON string.
- Args:
json_str (str): The original JSON string.
- Returns:
str: The new JSON string with encrypted 'code' field and remaining JSON data.
- pqc_encrypt_and_combine_batch_json(json_str: str)[源代码]
Encrypts the 'code' field and the remaining JSON data, and combines them into a new JSON string.
- Args:
json_str (str): The original JSON string.
- Returns:
str: The new JSON string with encrypted 'code' field and remaining JSON data.
- real_chip_measure(prog: pyqpanda.QProg | str, shot: int, chip_id: int = 2, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, task_name: str = 'QPanda Experiment', task_from=4)[源代码]
Perform measurements on a real quantum chip.
- Args:
prog (QProg): The quantum circuit to be executed. shot (int): The number of shots (measurement repetitions). chip_id (int, optional): Identifier for the specific quantum chip. Defaults to 2. is_amend (bool, optional): Flag indicating whether to perform amendments. Defaults to True. is_mapping (bool, optional): Flag indicating whether to perform qubit mapping. Defaults to True. is_optimization (bool, optional): Flag indicating whether to perform optimization. Defaults to True. task_name (str, optional): The name of the QPanda Experiment task. Defaults to 'QPanda Experiment'. task_from (int): Task source identifier (default is 4, represented by QPanda/pyqpanda).
- Returns:
Dict[str, float]: A dictionary containing measurement results.
- async_batch_real_chip_measure(prog_array: List[pyqpanda.QProg] | List[str], shot: int, chip_id: pyqpanda.real_chip_type = real_chip_type.origin_72, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, batch_id: str = '', task_from=4)[源代码]
Measure a batch of quantum programs on a real quantum chip.
Parameters: - prog_array (List[QProg]): List of quantum programs to be executed. - shot (int): Number of shots (measurements) to perform for each program. - chip_id (real_chip_type, optional): ID of the real quantum chip to use (default is real_chip_type.origin_72). - is_amend (bool, optional): Whether to perform amendment on the programs (default is True). - is_mapping (bool, optional): Whether to perform qubit mapping (default is True). - is_optimization (bool, optional): Whether to perform gate fusion optimization (default is True). - task_from (int): Task source identifier (default is 4, represented by QPanda/pyqpanda). - batch_id (str): The current batch number information for batch tasks, default to empty
Returns: batch_task_id[str]: batch task id
Note: The function submits a batch of quantum programs for execution on a real quantum chip, retrieves the results, and returns the probabilities of measurement outcomes for each program.
- batch_real_chip_measure(prog_array: List[pyqpanda.QProg] | List[str], shot: int, chip_id: pyqpanda.real_chip_type = real_chip_type.origin_72, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, batch_id: str = '', task_from=4)[源代码]
Measure a batch of quantum programs on a real quantum chip.
Parameters: - prog_array (List[QProg]): List of quantum programs to be executed. - shot (int): Number of shots (measurements) to perform for each program. - chip_id (real_chip_type, optional): ID of the real quantum chip to use (default is real_chip_type.origin_72). - is_amend (bool, optional): Whether to perform amendment on the programs (default is True). - is_mapping (bool, optional): Whether to perform qubit mapping (default is True). - is_optimization (bool, optional): Whether to perform gate fusion optimization (default is True). - task_from (int): Task source identifier (default is 4, represented by QPanda/pyqpanda). - batch_id (str): The current batch number information for batch tasks, default to empty
Returns: List[Dict[str, float]]: A list of dictionaries containing the probabilities of measurement outcomes for each program.
Note: The function submits a batch of quantum programs for execution on a real quantum chip, retrieves the results, and returns the probabilities of measurement outcomes for each program.
- set_noise_model(model: pyqpanda.NoiseModel, single_gate_params: List[float], single_param_list: List[float])[源代码]
Set the noise model for quantum computation.
Parameters: - model (NoiseModel): The noise model to be set. - single_gate_params (List[float]): List of parameters for single-qubit gates. - single_param_list (List[float]): List of parameters for single-qubit gates.
Returns: None
- set_qcloud_url(prefix_url: str)[源代码]
Set the QCloud API endpoint.
Parameters: - prefix_url (str): The prefix URL of the QCloud API.
Returns: None
- async_single_amplitude_pmeasure(prog: pyqpanda.QProg, amplitude: str, task_name: str = 'QPanda Experiment')[源代码]
Measure the single amplitude of a quantum state.
Parameters: - prog (QProg): The quantum program containing the state. - amplitude (str): The amplitude to measure. - task_name (str): Name of the QPanda Experiment task.
- Returns:
Task_id[str]: A task id for current task
- single_amplitude_pmeasure(prog: pyqpanda.QProg, amplitude: str, task_name: str = 'QPanda Experiment')[源代码]
Measure the single amplitude of a quantum state.
Parameters: - prog (QProg): The quantum program containing the state. - amplitude (str): The amplitude to measure. - task_name (str): Name of the QPanda Experiment task.
Returns: complex: The measured amplitude.
- pec_error_mitigation(prog: pyqpanda.QProg, shot: int, expectations: List[str], chip_id: int = 72, task_name: str = 'QPanda Experiment')[源代码]
Apply PEC error mitigation to correct measurement errors.
Parameters: - prog (QProg): The quantum program to apply error mitigation. - shot (int): Number of shots for measurements. - expectations (List[str]): List of measurement expectations. - chip_id (int): Chip identifier. - task_name (str): Name of the QPanda Experiment task.
Returns: List[float]: List of corrected expectation values.
- read_out_error_mitigation(prog: pyqpanda.QProg, shot: int, expectations: List[str], chip_id: int = 72, task_name: str = 'QPanda Experiment')[源代码]
Apply readout error mitigation to correct measurement errors.
Parameters: - prog (QProg): The quantum program to apply error mitigation. - shot (int): Number of shots for measurements. - expectations (List[str]): List of measurement expectations. - chip_id (int): Chip identifier. - task_name (str): Name of the QPanda Experiment task.
- Returns:
Dict[str, float]: Dictionary of corrected expectation values.
- zne_error_mitigation(prog: pyqpanda.QProg, shot: int, expectations: List[str], noise_strength: List[float], chip_id: int = 72, task_name: str = 'QPanda Experiment')[源代码]
Apply zero-noise extrapolation (ZNE) error mitigation to correct measurement errors.
Parameters: - prog (QProg): The quantum program to apply error mitigation. - shot (int): Number of shots for measurements. - expectations (List[str]): List of measurement expectations. - noise_strength (List[float]): List of noise strengths. - chip_id (int): Chip identifier. - task_name (str): Name of the QPanda Experiment task.
Returns: List[float]: List of corrected expectation values.
- class pyqpanda.Algorithm.test.QPilotOSMachine(name: str)[源代码]
Bases:
QPilotOSService
This class can submit Quantum Program to PilotOS.
Attributes
- PilotURLstr
Connect to the target PilotOS address.
- PilotIpstr
PilotOS IP address.
- PilotPortstr
PilotOS port.
- get_expectation_result(task_id: str) list [源代码]
get expectation task result
Parameters
- task_idstr
expectation task id.
Returns
- list
expectation task result.
- get_qst_result(task_id: str) list [源代码]
get qst task result through task_id
Parameters
- task_idstr
the task_id you want to query
Returns
- list
The list contains the information of qst task.
- set_config(max_qubit: int = None, max_cbit: int = None) None [源代码]
set Quantum Machine max Qubit and Cbit number function.
Parameters
- max_qubitint
The Quantum Machine max available qubits.
- max_cbitint
The Quantum Machine max available cbits.
Returns
None
Examples
>>> qm.set_config(12, 12)
- init(url: str = None, log_cout: bool = False, api_key: str = None) None [源代码]
Init Quantum Machine and connect to PilotOS.
Parameters
- urlstr
The Quantum Machine address you want to connnect.
- log_coutbool
Whether record execute log.
- api_keystr
The unique certificate to login PilotOS, which can get from PilotOS WebSite.
Returns
None
Examples
>>> qm.init('PilotOS_url', True, 'your_api_key')
- qAlloc_many(qubit_num: int = None) list [源代码]
Get Qubits to construct Quantum Circuit.
Parameters
- qubit_numint
The Qubits number you need to use in circuit.
Returns
List[Qubit]
Examples
>>> q = qm.qAlloc_many(6)
- cAlloc_many(cbit_num: int = None) list [源代码]
Get Cbits to construct Quantum Circuit.
Parameters
- cbit_numint
The Cbits number you need to use in circuit.
Returns
List[ClassicalCondition]
Examples
>>> c = qm.cAlloc_many(6)
- real_chip_measure(prog: List[str] | List[pyqpanda.QProg] | str | pyqpanda.QProg, shot=1000, chip_id=None, is_amend=True, is_mapping=True, is_optimization=True, specified_block=[], describe='') list [源代码]
Using sync way to compute your Quantum Program .
Parameters
- progUnion[List[str], List[QProg], str, QProg]
The quantum program you want to compute.
- shotint
Repeate run quantum program times.
- chip_idint
The quantum chip ID .
- is_amendbool
Whether amend task result.
- is_mappingbool
Whether mapping logical Qubit to Physical Qubit.
- is_optimizationbool
Whether optimize your quantum program.
- specified_blockList[int]
Your specifed Qubit block .
- describestr
The detailed infomation to describe your quantum program, such as which kind of algorithm, what can this program compute.
Returns
- list
a list of every single quantum program
Examples
>>> result = qm.real_chip_measure(prog_list, 1000, chip_id=1, is_mapping=True, describe="test1") >>> print(result) [{'00': 0.2456881582421773, '01': 0.2495193504871486, '10': 0.25044435129147546, '11': 0.25434813997919875}, {'00': 0.2456881582421773, '01': 0.2495193504871486, '10': 0.25044435129147546, '11': 0.25434813997919875}]
- async_real_chip_measure(prog: List[str] | List[pyqpanda.QProg] | str | pyqpanda.QProg, shot=1000, chip_id=None, is_amend=True, is_mapping=True, is_optimization=True, specified_block=[], describe='') str [源代码]
Using async way to compute your Quantum Program, then you need to query task result from task_id.
Parameters
- progUnion[List[str], List[QProg], str, QProg]
The quantum program you want to compute.
- shotint
Repeate run quantum program times.
- chip_idint
The quantum chip ID .
- is_amendbool
Whether amend task result.
- is_mappingbool
Whether mapping logical Qubit to Physical Qubit.
- is_optimizationbool
Whether optimize your quantum program.
- specified_blockList[int]
Your specifed Qubit block .
- describestr
The detailed infomation to describe your quantum program, such as which kind of algorithm, what can this program compute.
Returns
- str
your task id which can query task result
Examples
This interface will return a string that will be used to query the results of the quantum program you just submitted.
>>> task_id = qm.async_real_chip_measure(prog_list, 1000, chip_id=1, is_mapping=True, describe="test1") >>> print (task_id) 54C64205E2AF45D393FB5E6279E14984
- real_chip_expectation(prog: pyqpanda.QProg | str, hamiltonian: str, qubits: List[int] = None, shot: int = None, chip_id: int = None, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], task_describe: str = '') float [源代码]
submit Quantum expectation task, and get the expectation result.
Parameters
- progUnion[QProg, str]
The quantum program you want to compute.
- hamiltonianstr
Hamiltonian parameters.
- qubitsList[int]
measurement qubit
- shotint
Repeate run quantum program times.
- chip_idint
The quantum chip ID .
- is_amendbool
Whether amend task result.
- is_mappingbool
Whether mapping logical Qubit to Physical Qubit.
- is_optimizationbool
Whether optimize your quantum program.
- specified_blockList[int]
Your specifed Qubit block .
- task_describestr
The detailed infomation to describe your quantum program, such as which kind of algorithm, what can this program compute.
Returns
- float
if success, return the expectation task result. Otherwise return empty.
- async_real_chip_expectation(prog: pyqpanda.QProg | str, hamiltonian: str, qubits: List[int] = None, shot: int = None, chip_id: int = None, is_amend: bool = True, is_mapping: bool = True, is_optimization: bool = True, specified_block: List[int] = [], task_describe: str = '') str [源代码]
async submit Quantum expectation task, and return the task id.
Parameters
- progUnion[QProg, str]
The quantum program you want to compute.
- hamiltonianstr
Hamiltonian parameters.
- qubitsList[int]
measurement qubit
- shotint
Repeate run quantum program times.
- chip_idint
The quantum chip ID .
- is_amendbool
Whether amend task result.
- is_mappingbool
Whether mapping logical Qubit to Physical Qubit.
- is_optimizationbool
Whether optimize your quantum program.
- specified_blockList[int]
Your specifed Qubit block .
- task_describestr
The detailed infomation to describe your quantum program, such as which kind of algorithm, what can this program compute.
Returns
- str
return expectation task id, you need query task result by using task id.
- async_real_chip_qst(prog: str | pyqpanda.QProg, shot=1000, chip_id=None, is_amend=True, is_mapping=True, is_optimization=True, specified_block=[], describe='') list [源代码]
Using async way to compute QST task, then you need to query task result from task_id.
Parameters
- progUnion[str, QProg]
The quantum program you want to compute.
- shotint
Repeate run quantum program times.
- chip_idint
The quantum chip ID .
- is_amendbool
Whether amend task result.
- is_mappingbool
Whether mapping logical Qubit to Physical Qubit.
- is_optimizationbool
Whether optimize your quantum program.
- specified_blockList[int]
Your specifed Qubit block .
- describestr
The detailed infomation to describe your quantum program, such as which kind of algorithm, what can this program compute.
Returns
- str
your task id which can query task result
- query_task_state(task_id: str, file_path: str = None) list [源代码]
Query task result from task_id.
- task_idstr
The task id you want to query.
- file_pathstr
If the parameter is not None, task result will be saved to target path.
- list
Contains task state, task result, task error code, task error info, you can decide what to do with state and error code.
This interface will return a result list, contains: task state, probability result, error code, error info(if error code not equal to 0) You can decide whether to save the results of the task to a file by entering the second parameter or not, in particular, if you enter an empty string, the file will be saved in the current path
>>> result_list = qm.query_task_state(task_id, 'D:/python_test/result/') >>> for i in result_list: print(i) ... 3 ['{"key":["0","1"],"value":[0.5,0.5]}'] 0
If you enter the second parameter a path to save task result json, the json string in file will be like: {
"taskId": "2258D6B6164F4F4FA8F85D1DA2F74370", "endTime": 1700466283544, "errCode": 0, "errInfo": "", "startTime": 1700466281627, "qProg": [
"["QINIT 72nCREG 72nX q[0]nH q[1]nMEASURE q[0]", "c[0]nMEASURE q[1]", "c[1]"", " "QINIT 72nCREG 72nX q[0]nH q[1]nMEASURE q[0]", "c[0]nMEASURE q[1]", "c[1]"]"
], "qProgLength": 6, "configuration": "{"shot":1000,"amendFlag":false,"mappingFlag":true,"circuitOptimization":true,"IsProbCount":false,"specified_block":[]}", "taskState": "3", "convertQProg": [
"[[{"RPhi":[2,270.0,90.0,0]},{"RPhi":[3,0.0,180.0,0]},{"Measure":[[2,3],30]}],[{"RPhi":[2,270.0,90.0,0]},{"RPhi":[3,0.0,180.0,0]},{"Measure":[[2,3],30]}]]"
], "mappingQProg": [
"QINIT 72
CREG 72 X q[0] H q[1] MEASURE q[0],c[0] MEASURE q[1],c[1]",
"QINIT 72
CREG 72 X q[0] H q[1] MEASURE q[0],c[0] MEASURE q[1],c[1]"
], "mappingQubit": [
"{"SrcQubits":[0,1],"TargetCbits":[0,1],"MappingQubits":[3,2]}", "{"SrcQubits":[0,1],"TargetCbits":[0,1],"MappingQubits":[3,2]}"
], "aioExecuteTime": 441, "queueTime": 0, "compileTime": 608, "totalTime": 1229, "aioCompileTime": 0, "aioPendingTime": 0, "aioMeasureTime": 0, "aioPostProcessTime": 0, "requiredCore": "0", "pulseTime": 60.0, "cirExecuteTime": 200000.0, "taskType": "0", "taskResult": [
"{"key":["00","01","10","11"],"value":[0.017,0.5,0.017,0.466]}", "{"key":["00","01","10","11"],"value":[0.018,0.474,0.025,0.483]}"
]
}
- get_task_list_result(task_id: list, file_path: str = None) list [源代码]
Get task result through task id list.
Parameters
- task_idlist
The list of task id you want to query.
- file_pathstr
If the parameter is not None, task result will be saved to target path.
Returns
- list
This list contasins several dicts of task id and task result.
Examples
This interface will return a list, however, this list will not necessarily contain all the tasks queried, but will only return the results of the tasks that were queried to the completion of the calculation, and if the save path is set, these results will also be saved to a file.
>>> result_list = qm.get_task_list_result(task_id_list, 'D:/python_test/result/') >>> print(result_list) [{'task_id': '5D102BEED2714755B9B6AA082151F70E', 'task_result': ['{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}', '{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}']}, {'task_id': '18C163284EE043CAA691B201A9091891', 'task_result': ['{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}', '{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}']}, {'task_id': 'C929CE6E18374181A2E2297327CE6888', 'task_result': ['{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}', '{"key":["00","01","10","11"],"value":[0.25,0.25,0.25,0.25]}']}]
- parse_probability_result(result_str: list) list [源代码]
Parse async task probability result to a list contains dict.
Parameters
- result_strstr
The json str contains task result key and value.
Returns
list
Examples
>>> result = qm.parse_probability_result(query_str)
- quantum_chip_config_query(chip_ids: str) str [源代码]
Get quantum chip config
Parameters
- chip_idsstr
the json str contains chip id, it must be int or array, -1 represents all chips
Returns
- str
return quantum chip configuration
Examples
>>> chipID_1 = {"ChipID":-1} >>> chipID_2 = {"ChipID":[5,6,7]} >>> config_1 = qm.quantum_chip_config_query(chipID_1) >>> config_2 = qm.quantum_chip_config_query(chipID_2) >>> print(config_1) >>> print(config_2)