pyqpanda.pyQPanda
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 |
|
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 |
|
origin quantum pilot OS Machine |
|
Quantum program,can construct quantum circuit,data struct is linked list |
|
quantum prog dag class |
|
quantum prog dag edge |
|
quantum prog dag vertex node |
|
quantum reset node |
|
QResult abstract class, this class contains the result of the quantum measurement |
|
Qubit vector basic class |
|
quantum while node |
|
quantum machine base class |
|
quantum state tomography class |
|
Qubit abstract class |
|
variational quantum RMSPropOptimizer |
|
quantum single amplitude machine class |
|
Quantum single gate transfer type |
|
quantum sparse machine class |
|
simulator for basic clifford simulator |
|
quantum imaginary time evolution update mode |
|
variational quantum VanillaGradientDescentOptimizer |
|
variational quantum CIRCUIT class |
|
variational quantum gate base class |
|
variational quantum CNOT gate class |
|
variational quantum CR gate class |
|
variational quantum CRX gate class |
|
variational quantum CRY gate class |
|
variational quantum CRZ gate class |
|
variational quantum CU gate class |
|
variational quantum CZ gate class |
|
variational quantum H gate class |
|
variational quantum I gate class |
|
variational quantum RX gate class |
|
variational quantum RY gate class |
|
variational quantum RZ gate class |
|
variational quantum S gate class |
|
variational quantum SWAP gate class |
|
variational quantum SqiSWAP gate class |
|
variational quantum T gate class |
|
variational quantum U1 gate class |
|
variational quantum U2 gate class |
|
variational quantum U3 gate class |
|
variational quantum U4 gate class |
|
variational quantum X gate class |
|
variational quantum X1 gate class |
|
variational quantum Y gate class |
|
variational quantum Y1 gate class |
|
variational quantum Z gate class |
|
variational quantum Z1 gate class |
|
variational quantum iSWAP gate class |
|
origin quantum real chip error_mitigation type |
|
variational quantum expression class |
|
hadamard circuit class |
|
origin quantum real chip type enum |
|
quantum variational class |
Functions
|
Create a BARRIER gate for a list of qubit addresses. |
|
Returns: |
|
Returns: |
|
Returns: |
|
Create a CU gate. |
|
Returns: |
|
Create an empty QCircuit container. |
|
Create an empty QProg container. |
|
Create an IfProg that executes one of two quantum operations based on a classical condition. |
|
Create a WhileProg that executes while a classical condition is true. |
|
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 a 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 probability list. |
|
Accumulate the probability from a probability list. |
|
Accumulate the probability from a probability list. |
|
|
|
Add a bit size and a ClassicalCondition. |
|
Generate a graph representation for the max cut problem. |
Encode the input double data to the amplitude of qubits |
|
|
Apply a quantum gate operation to a list of qubit addresses. |
|
|
|
Assign a bit size value to a ClassicalCondition. |
|
|
Calculate the average gate fidelity between two quantum operation matrices. |
|
|
Parse binary data to transform into a 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 |
|
Cast a quantum program into a quantum circuit. |
|
Cast a quantum program into a quantum gate. |
|
Cast a quantum program into a quantum measurement. |
|
Quantum circuit layering. |
|
Optimize a quantum circuit. |
|
Optimize a quantum circuit using configuration data. |
|
Decode binary data into a list of quantum programs using the communication protocol. |
Encode a list of quantum programs into binary communication protocol data. |
|
|
Args: |
|
Args: |
|
Args: |
|
Parse binary data into a quantum program. |
|
Transform OriginIR string into QProg. |
|
Read an OriginIR file and transform it into QProg. |
|
Transform QASM string into QProg. |
|
Read a QASM file and transform it into QProg. |
Store the quantum program in a binary file. |
|
|
Convert QProg to OriginIR string. |
|
Convert a quantum program to a QASM instruction string. |
|
Convert QProg to Quil instruction. |
|
|
|
Count quantum gate number in the quantum circuit. |
Count quantum program information. |
|
Count quantum gate number in the quantum circuit. |
|
|
Create an empty QCircuit container. |
|
Create an empty QProg container. |
Create a classical quantum IfProg. |
|
|
Create a WhileProg. |
|
|
Decompose multiple control QGate. |
|
|
Create a deep copy of the given quantum program node. |
|
Delete weakly connected edges from the quantum program topology. |
|
Delete weakly connected edges from the quantum program topology. |
|
Delete weakly connected edges based on specified parameters. |
|
Destroy a quantum machine. |
|
Directly run a quantum program |
|
Divide a bit size by a ClassicalCondition. |
|
|
|
Convert a quantum prog/circuit to LaTeX representation, |
|
Convert a quantum prog/circuit to LaTeX source code with time sequence, |
|
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, |
|
|
|
Check if a bit size is equal to a ClassicalCondition. |
|
Evaluate topology performance. |
|
|
|
|
|
Calculate the matrix power of e. |
Extending linear equations to N dimension, N = 2 ^ n |
|
|
Fill the input quantum program with I gates and return a new quantum program. |
|
Finalize the environment and destroy global unique quantum machine. |
|
Special character conversion. |
|
Flatten a quantum circuit in place. |
|
Deprecated, use get_allocate_cmem_num instead. |
|
Deprecated, use get_allocate_qubit_num instead. |
|
Get the adjacent quantum gates' (the front one and the back one) type info from QProg. |
|
Get all the quantum bits used in the input program. |
|
Get the addresses of all used quantum bits in the input program. |
|
Get allocated cbits of QuantumMachine |
|
Get allocate cmem num. |
|
Get allocate qubit num. |
|
Get allocated qubits of QuantumMachine |
|
Get quantum program binary data. |
|
Transform a quantum program into a string representation. |
|
Retrieve the optimal topology of the input quantum circuit. |
|
Get quantum program clock cycle. |
|
Retrieve complex points from the given topology data. |
|
Retrieve the double gate block topology from the input quantum program. |
|
Get the target matrix between the input two NodeIters. |
|
Get pmeasure result as dict |
|
Get pmeasure result as list |
Count the number of quantum gates in a quantum program. |
|
|
Get Quantum Program Clock Cycle. |
|
|
|
Retrieve a subgraph from the provided topology data. |
|
Get pmeasure result as tuple list |
|
Get the target unitary matrix between the input two NodeIters. |
|
Count the number of unsupported gates in a quantum program. |
|
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 a globally unique quantum machine. |
|
|
|
Construct a circuit to determine if there is a carry |
|
Judge if the QGate matches the target topologic structure of the quantum circuit. |
|
Judge if the target node is a QGate type. |
|
Judge whether the specified two NodeIters in the quantum program can be exchanged. |
|
estimate the probability corresponding to the ground state |1> of the last bit |
|
Decompose a multiple control quantum gate using LDD. |
|
|
Matrix decomposition |
|
decompose matrix into paulis combination |
|
|
Create a list of measure nodes. |
|
Multiply a bit size by a ClassicalCondition. |
|
Read an OriginIR file and transform it into QProg. |
|
|
|
Perform planarity testing. |
|
Get the probability distribution over qubits. |
|
Get the probability distribution over qubits. |
|
|
|
Print matrix elements. |
|
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 |
|
Process the given quantum program layer. |
|
Convert a quantum program into a directed acyclic graph (DAG). |
|
Allocate a qubit |
|
Allocate several qubits |
|
Free a qubit |
|
Free a list of qubits |
|
|
|
|
|
Perform adaptive conversion for the quantum chip. |
|
Build quantum-walk algorithm quantum circuit |
|
Use Quantum-walk Algorithm to search target data, return QProg and search_result |
|
Quick measure. |
|
Generate a random quantum circuit. |
|
Generate a random quantum program. |
|
Recover edges using the specified candidate edges. |
|
Map the source quantum program to the target qubits. |
|
Replace complex points in the source topology with subgraphs. |
|
|
sabre mapping |
|
|
|
|
|
|
|
|
Split complex points into multiple discrete points. |
|
|
Compare a quantum state matrix with a quantum state and calculate their fidelity. |
|
|
Subtract a ClassicalCondition from a bit size. |
|
|
|
|
|
Transform QProg to Quil instruction. |
|
Transform QProg to OriginIR string. |
|
Judge whether a quantum program matches the topology of the physical qubits. |
|
Parse binary data to transform it into a quantum program. |
|
Transform OriginIR instruction from a file into a QProg. |
Save quantum program to file as binary data. |
|
|
Transform a quantum program into an OriginIR instruction string. |
|
Transform QProg to Quil instruction. |
Convert quantum gates to basic gates. |
|
|
transfrom pauli operator to matrix |
|
|
|
Get valid QGates and valid double bit QGate type. |
|
Get valid QGates and valid single bit QGate type. |
|
Compute the inner product of two vectors. |
|
virtual z transform |
Module Contents
- class pyqpanda.pyQPanda.AbstractOptimizer(*args, **kwargs)[源代码]
quantum AbstractOptimizer class
- exec() None [源代码]
Execute the optimization process.
- Args:
None: This method takes no parameters.
- Returns:
result: The result of the optimization process.
- getResult(*args, **kwargs) Any [源代码]
Retrieve the result of the last optimization.
- Args:
None: This method takes no parameters.
- Returns:
result: The result of the last optimization.
- registerFunc(arg0: Callable[[List[float], List[float], int, int], Tuple[str, float]], arg1: List[float]) None [源代码]
Register an optimization function.
- Args:
func: The optimization function to be registered.
- Returns:
None
- setAdaptive(arg0: bool) None [源代码]
Set whether the optimizer should use adaptive methods.
- Args:
adaptive: A boolean indicating whether to enable adaptive optimization.
- Returns:
None
- setCacheFile(arg0: str) None [源代码]
Set the path for the cache file used in optimization.
- Args:
cache_file: A string representing the path to the cache file.
- Returns:
None
- setDisp(arg0: bool) None [源代码]
Set the display flag for the optimizer.
- Args:
disp: A boolean indicating whether to display optimization progress.
- Returns:
None
- setFatol(arg0: float) None [源代码]
Set the function absolute tolerance for optimization.
- Args:
fatol: The function absolute tolerance value to be set.
- Returns:
None
- setMaxFCalls(arg0: int) None [源代码]
Set the maximum number of function calls allowed during optimization.
- Args:
max_calls: The maximum number of function calls to be set.
- Returns:
None
- setMaxIter(arg0: int) None [源代码]
Set the maximum number of iterations allowed during optimization.
- Args:
max_iter: The maximum number of iterations to be set.
- Returns:
None
- class pyqpanda.pyQPanda.AdaGradOptimizer(arg0: var, arg1: float, arg2: float, arg3: float)[源代码]
variational quantum AdaGradOptimizer
- class pyqpanda.pyQPanda.AdamOptimizer(arg0: var, arg1: float, arg2: float, arg3: float, arg4: float)[源代码]
variational quantum AdamOptimizer
- class pyqpanda.pyQPanda.Ansatz[源代码]
- class pyqpanda.pyQPanda.Ansatz(arg0: QGate)
- class pyqpanda.pyQPanda.Ansatz(arg0: AnsatzGate)
- class pyqpanda.pyQPanda.Ansatz(ansatz: List[AnsatzGate], thetas: List[float] = [])
- class pyqpanda.pyQPanda.Ansatz(ansatz_circuit: Ansatz, thetas: List[float] = [])
- class pyqpanda.pyQPanda.Ansatz(circuit: QCircuit, thetas: List[float] = [])
quantum ansatz class
- get_ansatz_list() List[AnsatzGate] [源代码]
- insert(gate: QGate) None [源代码]
- insert(gate: AnsatzGate) None
- insert(gate: List[AnsatzGate]) None
- insert(gate: QCircuit) None
- insert(gate: Ansatz, thetas: List[float] = []) None
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int)[源代码]
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float)
- class pyqpanda.pyQPanda.AnsatzGate(arg0: AnsatzGateType, arg1: int, arg2: float, arg3: int)
ansatz gate struct
- type: AnsatzGateType[源代码]
- class pyqpanda.pyQPanda.AnsatzGateType(value: int)[源代码]
Quantum ansatz gate type
Members:
AGT_X
AGT_H
AGT_RX
AGT_RY
AGT_RZ
- AGT_H: ClassVar[AnsatzGateType] = Ellipsis[源代码]
- AGT_RX: ClassVar[AnsatzGateType] = Ellipsis[源代码]
- AGT_RY: ClassVar[AnsatzGateType] = Ellipsis[源代码]
- AGT_RZ: ClassVar[AnsatzGateType] = Ellipsis[源代码]
- AGT_X: ClassVar[AnsatzGateType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.BackendType(value: int)[源代码]
Quantum machine backend type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
MPS
- CPU: ClassVar[BackendType] = Ellipsis[源代码]
- CPU_SINGLE_THREAD: ClassVar[BackendType] = Ellipsis[源代码]
- GPU: ClassVar[BackendType] = Ellipsis[源代码]
- MPS: ClassVar[BackendType] = Ellipsis[源代码]
- NOISE: ClassVar[BackendType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.CPUQVM[源代码]
Bases:
QuantumMachine
quantum machine cpu
- get_prob_dict(qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]
Get a dictionary of probabilities for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of entries to return (default: -1).
- Returns:
Dictionary of probabilities as a reference.
- get_prob_list(qubit_list: QVec, select_max: int = -1) List[float] [源代码]
Get a list of probabilities for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of probabilities to return (default: -1).
- Returns:
List of probabilities as a reference.
- get_prob_tuple_list(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get a list of probability tuples for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of tuples to return (default: -1).
- Returns:
List of probability tuples as a reference.
- init_qvm(arg0: bool) None [源代码]
- init_qvm() None
Initialize the quantum virtual machine (QVM).
This method sets up the necessary environment for the QVM to execute quantum programs.
- Returns:
None: This method does not return a value.
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get the probability distribution over qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of results to select (default: -1).
- Returns:
Probability distribution as a reference.
- pmeasure_no_index(qubit_list: QVec) List[float] [源代码]
Get the probability distribution over qubits without index.
- Args:
qubit_list: List of qubits to measure.
- Returns:
Probability distribution as a reference.
- 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]
Execute a quantum program and retrieve a dictionary of probabilities using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of entries in the dictionary to return (default: -1).
- Returns:
Dictionary of probabilities.
- 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]
Execute a quantum program and retrieve a list of probabilities using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of probabilities to return (default: -1).
- Returns:
List of probabilities.
- prob_run_tuple_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
- prob_run_tuple_list(program: QProg, qubit_addr_list: List[int], select_max: int = -1) List[Tuple[int, float]]
Execute a quantum program and get a list of probability tuples using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of tuples to return (default: -1).
- Returns:
List of probability tuples.
- class pyqpanda.pyQPanda.CPUSingleThreadQVM[源代码]
Bases:
QuantumMachine
quantum machine class for cpu single thread
- get_prob_dict(qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]
Get a dictionary of probabilities for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of entries to return (default: -1).
- Returns:
Dictionary of probabilities as a reference.
- get_prob_list(qubit_list: QVec, select_max: int = -1) List[float] [源代码]
Get a list of probabilities for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of probabilities to return (default: -1).
- Returns:
List of probabilities as a reference.
- get_prob_tuple_list(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get a list of probability tuples for the specified qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of tuples to return (default: -1).
- Returns:
List of probability tuples as a reference.
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get the probability distribution over qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: int, optional, maximum number of results to select (default: -1).
- Returns:
Probability distribution as a reference.
- pmeasure_no_index(qubit_list: QVec) List[float] [源代码]
Get the probability distribution over qubits without index.
- Args:
qubit_list: List of qubits to measure.
- Returns:
Probability distribution as a reference.
- 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]
Execute a quantum program and retrieve a dictionary of probabilities using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of entries in the dictionary to return (default: -1).
- Returns:
Dictionary of probabilities.
- 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]
Execute a quantum program and retrieve a list of probabilities using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of probabilities to return (default: -1).
- Returns:
List of probabilities.
- prob_run_tuple_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
- prob_run_tuple_list(program: QProg, qubit_addr_list: List[int], select_max: int = -1) List[Tuple[int, float]]
Execute a quantum program and get a list of probability tuples using qubit addresses.
- Args:
program: The quantum program to execute.
qubit_addr_list: List of qubit addresses to measure.
select_max: int, optional, maximum number of tuples to return (default: -1).
- Returns:
List of probability tuples.
- class pyqpanda.pyQPanda.ChipID(value: int)[源代码]
origin quantum real chip type
Members:
Simulation
WUYUAN_1
WUYUAN_2
WUYUAN_3
- class pyqpanda.pyQPanda.ClassicalCondition(*args, **kwargs)[源代码]
Classical condition class Proxy class of cexpr class
- c_and(arg0: int) ClassicalCondition [源代码]
- c_and(arg0: ClassicalCondition) ClassicalCondition
Perform a logical AND operation with another ClassicalCondition.
- Args:
other: Another ClassicalCondition to perform AND with.
- Returns:
The result of the AND operation.
- c_not() ClassicalCondition [源代码]
Perform a logical NOT operation on the classical condition.
- Args:
None
- Returns:
The result of the NOT operation.
- c_or(arg0: int) ClassicalCondition [源代码]
- c_or(arg0: ClassicalCondition) ClassicalCondition
Perform a logical OR operation with another ClassicalCondition.
- Args:
other: Another ClassicalCondition to perform OR with.
- Returns:
The result of the OR operation.
- class pyqpanda.pyQPanda.ClassicalProg(arg0: ClassicalCondition)[源代码]
quantum ClassicalProg
- class pyqpanda.pyQPanda.ComplexVertexSplitMethod(value: int)[源代码]
quantum complex vertex split method
Members:
METHOD_UNDEFINED
LINEAR
RING
- LINEAR: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]
- METHOD_UNDEFINED: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]
- RING: ClassVar[ComplexVertexSplitMethod] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.DAGNodeType(value: int)[源代码]
Quantum dag node type
Members:
NUKNOW_SEQ_NODE_TYPE
MAX_GATE_TYPE
MEASURE
QUBIT
RESET
- MAX_GATE_TYPE: ClassVar[DAGNodeType] = Ellipsis[源代码]
- MEASURE: ClassVar[DAGNodeType] = Ellipsis[源代码]
- NUKNOW_SEQ_NODE_TYPE: ClassVar[DAGNodeType] = Ellipsis[源代码]
- QUBIT: ClassVar[DAGNodeType] = Ellipsis[源代码]
- RESET: ClassVar[DAGNodeType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.DecompositionMode(value: int)[源代码]
Quantum matrix decomposition mode
Members:
QR
HOUSEHOLDER_QR
QSDecomposition
CSDecomposition
- CSDecomposition: ClassVar[DecompositionMode] = Ellipsis[源代码]
- HOUSEHOLDER_QR: ClassVar[DecompositionMode] = Ellipsis[源代码]
- QR: ClassVar[DecompositionMode] = Ellipsis[源代码]
- QSDecomposition: ClassVar[DecompositionMode] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.DensityMatrixSimulator[源代码]
Bases:
QuantumMachine
simulator for density matrix
- get_density_matrix(prog: QProg) numpy.ndarray[numpy.complex128[m, n]] [源代码]
Run quantum program and get the full density matrix.
- Args:
prog: The quantum program to execute.
- Returns:
The full 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 the quantum program and calculate the Hamiltonian expectation for the specified qubits.
- Args:
prog: The quantum program to execute.
hamiltonian: The QHamiltonian to use for the expectation value.
qubits: The selected qubits for measurement.
- Returns:
The Hamiltonian expectation for the specified qubits.
- 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 the quantum program and get the probabilities for the specified binary indices.
- Args:
prog: The quantum program to execute.
indices: The selected binary indices for measurement.
- Returns:
The probabilities result of the quantum program.
- get_probability(prog: QProg, index: int) float [源代码]
- get_probability(prog: QProg, index: str) float
Run the quantum program and get the probability for the specified index.
- Args:
prog: The quantum program to execute.
index: The measurement index in [0, 2^N 1].
- Returns:
The probability result of the quantum program.
- 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 the density matrix for current qubits.
- Args:
prog: The quantum program to execute.
qubits: The selected qubits from the quantum program.
- Returns:
The density matrix for the specified qubits.
- 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
Set a specific noise model for the density matrix simulator with a given gate type, probability, duration, temperature, and multiple target qubits.
- Args:
noise_model: The noise model to apply.
gate_type: The specific gate type associated with the noise model.
probability: The probability of the noise occurring.
duration: The duration for which the noise model is applied.
temperature: The temperature affecting the noise characteristics.
target_qubits: A vector of qubits targeted by the noise model.
- Returns:
None.
- class pyqpanda.pyQPanda.DoubleGateTransferType(value: int)[源代码]
Quantum double gate transfer type
Members:
DOUBLE_GATE_INVALID
DOUBLE_BIT_GATE
- DOUBLE_BIT_GATE: ClassVar[DoubleGateTransferType] = Ellipsis[源代码]
- DOUBLE_GATE_INVALID: ClassVar[DoubleGateTransferType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.Encode[源代码]
quantum amplitude encode
- amplitude_encode(qubit: QVec, data: List[float]) None [源代码]
- amplitude_encode(qubit: QVec, data: List[complex]) None
Perform amplitude encoding using complex numbers on the given qubits.
- Args:
qubit: The quantum vector to be encoded.
data: The classical complex data to be encoded.
- Returns:
An encoded quantum state.
- amplitude_encode_recursive(qubit: QVec, data: List[float]) None [源代码]
- amplitude_encode_recursive(qubit: QVec, data: List[complex]) None
Encode by amplitude recursively.
- Args:
QVec: qubits
QStat: amplitude
- Returns:
circuit
- 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.
- 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
Approximate Matrix Product State encoding.
- Args:
QVec: qubits
std::vector<qcomplex_t>: input data
int: number of layers (default: 3)
int: number of steps (default: 100)
- Returns:
Encoded circuit.
- basic_encode(qubit: QVec, data: str) None [源代码]
Basic encoding.
- Args:
QVec: qubits
string: data
- Returns:
circuit
- bid_amplitude_encode(qubit: QVec, data: List[float], split: int = 0) None [源代码]
Encode by bid.
- Args:
QVec: qubits
QStat: amplitude
split: int
- Returns:
circuit
- dc_amplitude_encode(qubit: QVec, data: List[float]) None [源代码]
Encode by DC amplitude.
- Args:
QVec: qubits
QStat: amplitude
- Returns:
circuit
- dense_angle_encode(qubit: QVec, data: List[float]) None [源代码]
Encode by dense angle.
- Args:
QVec: qubits
prob_vec: data
- Returns:
circuit
- 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
Prepare a quantum state.
- Args:
QVec: qubits
std::vector<std::complex<double>>: state parameters
- Returns:
circuit
- 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
Perform an efficient sparse operation.
- Args:
QVec: qubits
std::vector<std::complex<double>>: parameters for the operation
- Returns:
circuit
- get_circuit() QCircuit [源代码]
Retrieve the circuit from the encoder.
- Returns:
The corresponding circuit object.
- get_fidelity(data: List[float]) float [源代码]
- get_fidelity(data: List[complex]) float
- get_fidelity(data: List[float]) float
Calculate the fidelity based on the provided float data.
- Args:
data: A vector of floats representing the input data.
- Returns:
The calculated fidelity value.
- get_out_qubits() QVec [源代码]
Retrieve the output qubits from the encoder.
- Returns:
A vector of output qubits.
- 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.
- schmidt_encode(qubit: QVec, data: List[float], cutoff: float) None [源代码]
Encode by schmidt.
- Args:
QVec: qubits
QStat: amplitude
double: cutoff
- Returns:
circuit
- sparse_isometry(qubit: QVec, data: Dict[str, float]) None [源代码]
- sparse_isometry(qubit: QVec, data: Dict[str, complex]) None
- sparse_isometry(qubit: QVec, data: List[float]) None
- sparse_isometry(qubit: QVec, data: List[complex]) None
Perform a sparse isometry operation.
- Args:
QVec: qubits
std::vector<std::complex<double>>: parameters for the isometry
- Returns:
circuit
- class pyqpanda.pyQPanda.ErrorCode(value: int)[源代码]
pliot error code
Members:
NO_ERROR_FOUND
DATABASE_ERROR
ORIGINIR_ERROR
JSON_FIELD_ERROR
BACKEND_CALC_ERROR
ERR_TASK_BUF_OVERFLOW
EXCEED_MAX_QUBIT
ERR_UNSUPPORT_BACKEND_TYPE
EXCEED_MAX_CLOCK
ERR_UNKNOW_TASK_TYPE
ERR_QVM_INIT_FAILED
ERR_QCOMPILER_FAILED
ERR_PRE_ESTIMATE
ERR_MATE_GATE_CONFIG
ERR_FIDELITY_MATRIX
ERR_QST_PROG
ERR_EMPTY_PROG
ERR_QUBIT_SIZE
ERR_QUBIT_TOPO
ERR_QUANTUM_CHIP_PROG
ERR_REPEAT_MEASURE
ERR_OPERATOR_DB
ERR_TASK_STATUS_BUF_OVERFLOW
ERR_BACKEND_CHIP_TASK_SOCKET_WRONG
CLUSTER_SIMULATE_CALC_ERR
ERR_SCHEDULE_CHIP_TOPOLOGY_SUPPORTED
ERR_TASK_CONFIG
ERR_NOT_FOUND_APP_ID
ERR_NOT_FOUND_TASK_ID
ERR_PARSER_SUB_TASK_RESULT
ERR_SYS_CALL_TIME_OUT
ERR_TASK_TERMINATED
ERR_INVALID_URL
ERR_PARAMETER
ERR_QPROG_LENGTH
ERR_CHIP_OFFLINE
UNDEFINED_ERROR
ERR_SUB_GRAPH_OUT_OF_RANGE
ERR_TCP_INIT_FATLT
ERR_TCP_SERVER_HALT
CLUSTER_BASE
- class pyqpanda.pyQPanda.GateType(value: int)[源代码]
quantum gate type
Members:
GATE_NOP
GATE_UNDEFINED
P0_GATE
P1_GATE
PAULI_X_GATE
PAULI_Y_GATE
PAULI_Z_GATE
X_HALF_PI
Y_HALF_PI
Z_HALF_PI
HADAMARD_GATE
T_GATE
S_GATE
P_GATE
CP_GATE
RX_GATE
RY_GATE
RZ_GATE
RXX_GATE
RYY_GATE
RZZ_GATE
RZX_GATE
U1_GATE
U2_GATE
U3_GATE
U4_GATE
CU_GATE
CNOT_GATE
CZ_GATE
MS_GATE
CPHASE_GATE
ISWAP_THETA_GATE
ISWAP_GATE
SQISWAP_GATE
SWAP_GATE
TWO_QUBIT_GATE
P00_GATE
P11_GATE
TOFFOLI_GATE
ORACLE_GATE
I_GATE
BARRIER_GATE
RPHI_GATE
- class pyqpanda.pyQPanda.HHLAlg(arg0: QuantumMachine)[源代码]
quantum hhl algorithm class
- class pyqpanda.pyQPanda.LATEX_GATE_TYPE(value: int)[源代码]
Quantum latex gate type
Members:
GENERAL_GATE
CNOT_GATE
SWAP_GATE
- CNOT_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]
- GENERAL_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]
- SWAP_GATE: ClassVar[LATEX_GATE_TYPE] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.LatexMatrix[源代码]
Generate quantum circuits latex src code can be compiled on latex package 'qcircuit' circuits element treated as matrix element in latex syntax
qcircuit package tutorial [https://physics.unm.edu/CQuIC/Qcircuit/Qtutorial.pdf]
- insert_barrier(rows: List[int], from_col: int) int [源代码]
Insert a barrier into the circuit.
- Args:
rows: The rows of the LaTeX matrix where the barrier is applied.
from_col: Desired column position for the barrier; if space is insufficient, a suitable column will be found.
- Returns:
int: Actual column number where the barrier is placed.
- 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 the circuit.
- Args:
target_rows: Gate target rows of the LaTeX matrix.
ctrl_rows: Control rows for the gate.
from_col: Desired column position for the gate; if space is insufficient, a suitable column will be found.
gate_type: Enum type of LATEX_GATE_TYPE.
gate_name: Name of the gate (default: '').
dagger: Flag indicating if the gate is a dagger (default: false).
param: Parameter string for the gate (default: '').
- Returns:
int: Actual column number where the gate is placed.
- insert_measure(q_row: int, c_row: int, from_col: int) int [源代码]
Insert a measurement operation into the circuit.
- Args:
q_row: The row of the qubit being measured.
c_row: The row of the classical bit that will store the measurement result.
from_col: The desired column position for the measurement.
- Returns:
None, as the function modifies the matrix in place.
- insert_reset(q_row: int, from_col: int) int [源代码]
Insert a reset operation into the circuit.
- Args:
q_row: The row of the qubit to be reset.
from_col: The desired column position for the reset.
- Returns:
None, as the function modifies the matrix in place.
- insert_timeseq(t_col: int, time_seq: int) None [源代码]
Insert a time sequence into the circuit.
- Args:
t_col: The column position where the time sequence will be inserted.
time_seq: The time sequence data to be inserted.
- Warning:
This function does not check for column number validity, which may cause overwriting.
Users must ensure the column number is managed correctly to avoid conflicts.
- set_label(qubit_label: Dict[int, str], cbit_label: Dict[int, str] = {}, time_seq_label: str = '', head: bool = True) None [源代码]
Set label at the leftmost head column or rightmost tail column. Labels can be reset at any time.
- Args:
qubit_label: Label for the qubit wire's leftmost head label, specified in LaTeX syntax.If not given, the row will remain empty (e.g., {0: 'q_{1}', 2:'q_{2}'}).
cbit_label: Classic label string, supports LaTeX formatting.
time_seq_label: If given, sets the time sequence label.
head: If true, appends the label at the head; if false, appends at the tail.
- Returns:
None, as the function modifies the matrix in place.
- set_logo(logo: str = '') None [源代码]
Add a logo string.
- Args:
logo: The logo string to be added. If not provided, the logo will be set to an empty string.
- Returns:
None, as the function modifies the matrix in place.
- str(with_time: bool = False) str [源代码]
Return the final LaTeX source code representation of the matrix.
- Args:
with_time: A boolean flag indicating whether to include timing information in the output.
- Returns:
str: The LaTeX source code as a string. This method can be called at any time to obtain the current state of the matrix.
- class pyqpanda.pyQPanda.MPSQVM[源代码]
Bases:
QuantumMachine
quantum matrix product state machine class
- add_single_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float) None [源代码]
- add_single_noise_model(arg0: NoiseModel, arg1: GateType, arg2: float, arg3: float, arg4: float) None
Add a noise model to a specific gate with multiple error rates.
- Args:
noise_model: NOISE_MODEL, the type of noise model to apply.
gate_type: GateType, the type of gate affected by the noise.
error_rate_1: float, the first error rate.
error_rate_2: float, the second error rate.
error_rate_3: float, the third error rate.
- Returns:
None.
- get_prob_dict(qubit_list: QVec, select_max: int = -1) Dict[str, float] [源代码]
Get pmeasure result as dict.
- Args:
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result tuple; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- get_prob_list(qubit_list: QVec, select_max: int = -1) List[float] [源代码]
Get pmeasure result as list.
- Args:
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result tuple; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- get_prob_tuple_list(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get pmeasure result as list.
- Args:
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result tuple; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- pmeasure(qubit_list: QVec, select_max: int = -1) List[Tuple[int, float]] [源代码]
Get the probability distribution over qubits.
- Args:
qubit_list: List of qubits to measure.
select_max: Maximum number of returned elements in the result tuple; should be in [-1, 1<<len(qubit_list)]. Default is -1, which means no limit.
- Returns:
Measure result of the quantum machine in tuple form.
- pmeasure_bin_index(program: QProg, string: str) complex [源代码]
Get pmeasure bin index quantum state amplitude.
- Args:
string: Bin string.
- Returns:
Complex: Bin amplitude.
- pmeasure_bin_subset(program: QProg, string_list: List[str]) List[complex] [源代码]
Get pmeasure quantum state amplitude subset.
- Args:
list: List of bin state strings.
- Returns:
List: Bin amplitude result list.
- pmeasure_dec_index(program: QProg, string: str) complex [源代码]
Get pmeasure decimal index quantum state amplitude.
- Args:
string: Decimal string.
- Returns:
Complex: Decimal amplitude.
- pmeasure_dec_subset(program: QProg, string_list: List[str]) List[complex] [源代码]
Get pmeasure quantum state amplitude subset.
- Args:
list: List of decimal state strings.
- Returns:
List: Decimal amplitude result list.
- pmeasure_no_index(qubit_list: QVec) List[float] [源代码]
Get the probability distribution over qubits.
- Args:
qubit_list: List of qubits to measure.
- Returns:
Measure result of the 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:
program: Quantum program to run.
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- prob_run_list(program: QProg, qubit_list: QVec, select_max: int = -1) List[float] [源代码]
Run quantum program and get pmeasure result as list.
- Args:
program: Quantum program to run.
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- 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:
program: Quantum program to run.
qubit_list: List of qubits for pmeasure.
select_max: Maximum number of returned elements in the result tuple; should be in [-1, 1<<len(qubit_list)]. Default is -1, meaning no limit.
- Returns:
Measure result of the quantum machine.
- quick_measure(qubit_list: QVec, shots: int) Dict[str, int] [源代码]
Quick measure.
- Args:
qubit_list: List of qubits to measure.
shots: The number of repetitions for the measurement operation.
- Returns:
Result of the quantum program.
- set_measure_error(arg0: NoiseModel, arg1: float) None [源代码]
- set_measure_error(arg0: NoiseModel, arg1: float, arg2: float, arg3: float) None
Set the measurement error with multiple error rates for the specified noise model.
- Args:
noise_model: The type of noise model to apply.
error_rate1: First error rate.
error_rate2: Second error rate.
error_rate3: Third error rate.
- 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 mixed unitary errors with associated probabilities for the specified gate type.
- Args:
gate_type: Type of gate affected by the error.
unitary_errors: List of unitary error matrices.
probabilities: Probabilities associated with each unitary error.
- 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
Set the noise model for the quantum simulation with specific noise levels and qubits.
- Args:
noise_model: Type of noise model (bit-flip, phase-flip, etc.).
gate_type: Type of gate affected by the noise.
noise_level_1: First noise level to apply.
noise_level_2: Second noise level to apply.
noise_level_3: Third noise level to apply.
qubits: List of qubits to which the noise model will be applied.
- set_readout_error(readout_params: List[List[float]], qubits: QVec) None [源代码]
Set readout error parameters for the specified qubits.
- Args:
readout_params: Parameters defining the readout errors.
qubits: List of qubits to which the readout errors apply.
- class pyqpanda.pyQPanda.MomentumOptimizer(arg0: var, arg1: float, arg2: float)[源代码]
variational quantum MomentumOptimizer
- class pyqpanda.pyQPanda.NodeInfo[源代码]
- class pyqpanda.pyQPanda.NodeInfo(iter: NodeIter, target_qubits: QVec, control_qubits: QVec, type: int, dagger: bool)
Detailed information of a QProg node
- class pyqpanda.pyQPanda.NodeIter[源代码]
quantum node iter
- get_next() NodeIter [源代码]
Get the next node iterator.
- Args:
None
- Returns:
The next NodeIter instance.
- class pyqpanda.pyQPanda.NodeType(value: int)[源代码]
quantum node type
Members:
NODE_UNDEFINED
GATE_NODE
CIRCUIT_NODE
PROG_NODE
MEASURE_GATE
WHILE_START_NODE
QIF_START_NODE
CLASS_COND_NODE
RESET_NODE
- class pyqpanda.pyQPanda.Noise[源代码]
Quantum machine for noise simulation
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float]) None [源代码]
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float], qubits: QVec) None
- add_mixed_unitary_error(gate_types: GateType, unitary_matrices: List[List[complex]], probs: List[float], qubits: List[QVec]) None
Add mixed unitary errors to specified gate types for multiple qubits.
- Args:
gate_types: The type of gates to which the mixed unitary errors apply.
unitary_matrices: A vector of unitary matrices representing the errors.
probs: A vector of probabilities corresponding to each unitary matrix.
qubits: A vector of QVec instances indicating which qubits the errors affect.
- Returns:
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
Add a noise model to a specific gate with specified time parameters and targeted qubits.
- Args:
noise_model: An instance of NOISE_MODEL to be added.
gate_type: The type of gate to which the noise model applies.
t1: The time constant for relaxation (T1).
t2: The time constant for dephasing (T2).
t_gate: The duration of the gate operation.
qubits: A vector of vectors of qubit indices that the noise affects.
- Returns:
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
Set the measurement error using time parameters for the specified qubits.
- Args:
noise_model: An instance of NOISE_MODEL to be used.
t1: The time constant for relaxation (T1).
t2: The time constant for dephasing (T2).
t_gate: The duration of the gate operation.
qubits: A vector of qubit indices to which the measurement error applies. Defaults to an empty QVec.
- Returns:
None.
- set_readout_error(prob_list: List[List[float]], qubits: QVec = ...) None [源代码]
Set readout errors for specified qubits.
- Args:
prob_list: A list of probabilities for readout errors.
qubits: A vector of qubit indices that the readout errors apply to (default is all qubits).
- Returns:
None.
- class pyqpanda.pyQPanda.NoiseModel(value: int)[源代码]
noise model type
Members:
DAMPING_KRAUS_OPERATOR
DECOHERENCE_KRAUS_OPERATOR
DEPHASING_KRAUS_OPERATOR
PAULI_KRAUS_MAP
BITFLIP_KRAUS_OPERATOR
DEPOLARIZING_KRAUS_OPERATOR
BIT_PHASE_FLIP_OPRATOR
PHASE_DAMPING_OPRATOR
- BITFLIP_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- BIT_PHASE_FLIP_OPRATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- DAMPING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- DECOHERENCE_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- DEPHASING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- DEPOLARIZING_KRAUS_OPERATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- PAULI_KRAUS_MAP: ClassVar[NoiseModel] = Ellipsis[源代码]
- PHASE_DAMPING_OPRATOR: ClassVar[NoiseModel] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.NoiseQVM[源代码]
Bases:
QuantumMachine
quantum machine class for simulate noise prog
- set_max_threads(size: int) None [源代码]
Set the maximum number of threads for the noise quantum virtual machine (NoiseQVM).
- Args:
size: The maximum number of threads to utilize.
- Returns:
None: This method does not return a value.
- 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 the measurement error model in the quantum virtual machine with specific error parameters.
- Args:
model: The noise model to be applied for measurement errors.
T1: A double representing the relaxation time constant for the qubits.
T2: A double representing the dephasing time constant for the qubits.
t_gate: A double representing the time duration of the gate operation.
qubits: A specific qubit vector (QVec) for which the measurement error applies (default is an empty QVec).
- Returns:
None, as the function configures the measurement error model in place for the specified qubit vector.
- 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 a mixed unitary error model for a specific gate type in the quantum virtual machine, targeting multiple qubits.
- Args:
gate_type: The type of gate for which the mixed unitary error model applies.
unitary_ops: A vector of unitary operations (QStat) representing the error model.
probabilities: A vector of doubles representing the probabilities associated with each unitary operation.
qubit_groups: A vector of qubit vectors (QVec) specifying the qubits affected by the error model.
- Returns:
None, as the function configures the mixed unitary error model in place for the specified gate type and qubit groups.
- 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
Set the noise model for a specific gate type with multiple noise parameters affecting a vector of qubit vectors in the quantum virtual machine.
- Args:
noise_model: The noise model to be applied.
gate_type: The type of gate for which the noise model is relevant.
noise_level1: A double representing the first level of noise to apply.
noise_level2: A double representing the second level of noise to apply.
noise_level3: A double representing the third level of noise to apply.
qubits_list: A vector of qubit vectors (QVec) affected by the noise model.
- Returns:
None, as the function configures the noise model in place for the specified gate type and qubit vectors.
- set_readout_error(probs_list: List[List[float]], qubits: QVec = ...) None [源代码]
Set a readout error model for the quantum virtual machine.
- Args:
probs_list: A list of probabilities for readout errors associated with each qubit.
qubits: A vector of qubits (QVec) for which the readout error model applies. Defaults to all qubits if not specified.
- Returns:
None, as this function configures the readout error model in place for the specified qubits.
- set_reset_error(p0: float, p1: float, qubits: QVec = ...) None [源代码]
Set a reset error model for the quantum virtual machine.
- Args:
p0: Probability of the qubit resetting to state 0.
p1: Probability of the qubit resetting to state 1.
qubits: A vector of qubits (QVec) for which the reset error model applies. Defaults to all qubits if not specified.
- Returns:
None, as this function configures the reset error model in place for the specified qubits.
- set_rotation_error(arg0: float) None [源代码]
Set a rotation error model for the quantum virtual machine.
- Args:
None specified in the function signature, but typically would include error parameters for the rotation.
- Returns:
None, as this function configures the rotation error model in place for the quantum operations.
- class pyqpanda.pyQPanda.OptimizerFactory[源代码]
quantum OptimizerFactory class
- makeOptimizer() AbstractOptimizer [源代码]
- makeOptimizer() AbstractOptimizer
Create an optimizer using its name.
- Args:
optimizer_name: A string representing the name of the desired optimizer.
- Returns:
An instance of the created optimizer.
- class pyqpanda.pyQPanda.OptimizerType(value: int)[源代码]
quantum OptimizerType
Members:
NELDER_MEAD
POWELL
GRADIENT
- GRADIENT: ClassVar[OptimizerType] = Ellipsis[源代码]
- NELDER_MEAD: ClassVar[OptimizerType] = Ellipsis[源代码]
- POWELL: ClassVar[OptimizerType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.OriginCMem[源代码]
origin quantum cmem
- Allocate_CBit() CBit [源代码]
- Allocate_CBit(cbit_num: int) CBit
Allocate a specified number of classical bits.
- Args:
cbit_num: The number of classical bits to allocate.
- Returns:
A reference to the allocated classical bits.
- Free_CBit(cbit: CBit) None [源代码]
Free a previously allocated classical bit.
- Args:
cbit: The classical bit to be freed.
- cAlloc() CBit [源代码]
- cAlloc(arg0: int) CBit
Allocate memory for classical bits. This method initializes or resets the memory allocation for classical bits.
- cAlloc_many(count: int) List[ClassicalCondition] [源代码]
Allocate memory for multiple classical bits.
- Args:
count: The number of classical bits to allocate.
- cFree(classical_cond: ClassicalCondition) None [源代码]
Free the allocated memory for a classical condition.
- Args:
classical_cond: The classical condition to be freed.
- cFree_all(classical_cond_list: List[ClassicalCondition]) None [源代码]
- cFree_all() None
Free all allocated classical memory. This method releases all memory associated with classical conditions.
- clearAll() None [源代码]
Clear all allocated classical bits. This method releases all resources associated with classical bits.
- getIdleMem() int [源代码]
Get the amount of idle memory currently available.
- Returns:
The amount of idle memory in terms of qubits.
- getMaxMem() int [源代码]
Get the maximum memory capacity.
- Returns:
The maximum memory capacity in terms of qubits.
- get_allocate_cbits() List[ClassicalCondition] [源代码]
Retrieve allocated classical bits. Returns a vector of ClassicalCondition representing the allocated cbits.
- get_capacity() int [源代码]
Get the capacity of the memory.
- Returns:
The total capacity of the memory in terms of qubits.
- class pyqpanda.pyQPanda.OriginCollection[源代码]
- class pyqpanda.pyQPanda.OriginCollection(file_name: str)
- class pyqpanda.pyQPanda.OriginCollection(arg0: OriginCollection)
A relatively free data collection class for saving data
- getFilePath() str [源代码]
Retrieve the file path associated with the OriginCollection. This function returns the path to the file linked to the collection.
- Returns:
A string containing the file path.
- getJsonString() str [源代码]
Retrieve the JSON string representation of the OriginCollection. This function converts the collection's data into a JSON format string.
- Returns:
A string containing the JSON representation of the collection.
- getKeyVector() List[str] [源代码]
Retrieve the vector of keys associated with the OriginCollection. This function returns a vector containing all the keys in the collection.
- Returns:
A vector of keys.
- getValue(key_name: str) List[str] [源代码]
Get the value associated with the specified key name. This function retrieves the value stored in the OriginCollection for the given key.
- Args:
key_name: The name of the key whose value is to be retrieved.
- Returns:
The value associated with the specified key.
- getValueByKey(key_value: str) str [源代码]
- getValueByKey(key_value: int) str
Retrieve the value associated with a specified key. This function returns the value that corresponds to the given key.
- Args:
key_value: The key for which to retrieve the associated value.
- Returns:
The value associated with the specified key.
- insertValue(key: str, *args) None [源代码]
Insert values into the OriginCollection under the specified key. This function adds the first value associated with the provided key and then inserts additional values from the provided arguments.
- Args:
key: The key under which to insert the values.
args: A variable number of values to be inserted.
- Returns:
None.
- open(file_name: str) bool [源代码]
Open and read the JSON file at the specified path. This function reads the contents of the JSON file provided.
- Args:
file_name: The path to the JSON file to be read.
- Returns:
None.
- class pyqpanda.pyQPanda.OriginQubitPool[源代码]
quantum qubit pool
- allocateQubitThroughPhyAddress(qubit_addr: int) Qubit [源代码]
Allocate a qubit using its physical address.
- Args:
qubit_addr: The physical address of the qubit to allocate.
- Returns:
A reference to the allocated qubit.
- allocateQubitThroughVirAddress(qubit_num: int) Qubit [源代码]
Allocate a qubit using its virtual address.
- Args:
qubit_num: The virtual address of the qubit to allocate.
- Returns:
A reference to the allocated qubit.
- clearAll() None [源代码]
Clear all qubits from the OriginQubitPool. This method removes all qubits, resetting the pool to its initial state.
- getIdleQubit() int [源代码]
Retrieve an idle qubit from the OriginQubitPool.
- Returns:
An idle qubit if available, otherwise may return a null reference or indicate no idle qubits.
- getMaxQubit() int [源代码]
Retrieve the maximum qubit from the OriginQubitPool.
- Returns:
The maximum qubit available in the pool.
- getPhysicalQubitAddr(qubit: Qubit) int [源代码]
Retrieve the physical address of a specified qubit.
- Args:
qubit: The qubit for which to retrieve the physical address.
- Returns:
The physical address of the specified qubit.
- getVirtualQubitAddress(qubit: Qubit) int [源代码]
Retrieve the virtual address of a specified qubit.
- Args:
qubit: The qubit for which to retrieve the virtual address.
- Returns:
The virtual address of the specified qubit.
- get_allocate_qubits() QVec [源代码]
Retrieve currently allocated qubits.
- Returns:
A reference to the vector of currently allocated qubits.
- get_capacity() int [源代码]
Get the capacity of the OriginQubitPool.
- Returns:
An integer representing the capacity of the pool.
- get_max_usedqubit_addr() int [源代码]
Retrieve the address of the maximum used qubit in the OriginQubitPool.
- Returns:
The address of the maximum used qubit, or an indication if no qubits are in use.
- get_qubit_by_addr(qubit_addr: int) Qubit [源代码]
Retrieve a qubit from the pool using its address.
- Args:
qubit_addr: The address of the qubit to retrieve.
- Returns:
A reference to the requested qubit.
- qAlloc_many(qubit_num: int) List[Qubit] [源代码]
Allocate a list of qubits.
- Args:
qubit_num: The number of qubits to allocate.
- Returns:
A reference to the vector of allocated qubits.
- qFree(arg0: Qubit) None [源代码]
Free a previously allocated qubit.
- Args:
qubit: The qubit to be freed.
- class pyqpanda.pyQPanda.PartialAmpQVM[源代码]
Bases:
QuantumMachine
quantum partial amplitude machine class
- get_prob_dict(arg0: QVec) Dict[str, float] [源代码]
Get the measurement results as a dictionary.
- Args:
qubit_list: A list of qubits to measure.
- Returns:
A dictionary containing the measurement results of the quantum machine.
- pmeasure_bin_index(bin_index: str) complex [源代码]
Get the amplitude of the quantum state for the specified bin index.
- Args:
bin_index: A string representing the bin.
- Returns:
A complex number representing the amplitude of the bin.
- pmeasure_dec_index(dec_index: str) complex [源代码]
Get the amplitude of the quantum state for the specified decimal index.
- Args:
dec_index: A string representing the decimal.
- Returns:
A complex number representing the amplitude of the decimal.
- pmeasure_subset(index_list: List[str]) Dict[str, complex] [源代码]
Get the amplitudes of the quantum state for a subset of indices.
- Args:
index_list: A list of strings representing decimal states.
- Returns:
A list of complex numbers representing the amplitude results.
- prob_run_dict(arg0: QProg, arg1: QVec) Dict[str, float] [源代码]
Run the quantum program and get the measurement results as a dictionary.
- Args:
qprog: The quantum program to execute.
qubit_list: A list of qubits to measure.
- Returns:
A dictionary containing the measurement results of the quantum machine.
- class pyqpanda.pyQPanda.QCircuit[源代码]
- class pyqpanda.pyQPanda.QCircuit(arg0: NodeIter)
quantum circuit node
- begin() NodeIter [源代码]
Get an iterator to the first node in the circuit.
- Returns:
Iterator: An iterator pointing to the first node.
- control(control_qubits: QVec) QCircuit [源代码]
Apply a control operation to the circuit.
- Args:
control_qubits (list): A list of qubits that will act as control qubits.
- Returns:
QCircuit: The circuit with the control operation applied.
- dagger() QCircuit [源代码]
Compute the adjoint (dagger) of the circuit.
- Returns:
QCircuit: The adjoint of this circuit.
- end() NodeIter [源代码]
Get an iterator to the end of the circuit.
- Returns:
Iterator: An iterator pointing to the end of the nodes.
- head() NodeIter [源代码]
Get an iterator to the head of the circuit.
- Returns:
Iterator: An iterator pointing to the head node.
- insert(arg0: QCircuit) QCircuit [源代码]
- insert(arg0: QGate) QCircuit
Insert a QGate into this circuit.
- Args:
gate (QGate): The gate to be inserted.
- Returns:
QCircuit: A reference to this circuit after the gate insertion.
- is_empty() bool [源代码]
Check if the circuit is empty.
- Returns:
bool: True if the circuit has no gates; otherwise, False.
- last() NodeIter [源代码]
Get an iterator to the last node in the circuit.
- Returns:
Iterator: An iterator pointing to the last node.
- class pyqpanda.pyQPanda.QCircuitOPtimizerMode(value: int)[源代码]
Quantum circuit optimize mode
Members:
Merge_H_X
Merge_U3
Merge_RX
Merge_RY
Merge_RZ
- Merge_H_X: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]
- Merge_RX: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]
- Merge_RY: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]
- Merge_RZ: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]
- Merge_U3: ClassVar[QCircuitOPtimizerMode] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.QError(value: int)[源代码]
Quantum QError Type
Members:
UndefineError
qErrorNone
qParameterError
qubitError
loadFileError
initStateError
destroyStateError
setComputeUnitError
runProgramError
getResultError
getQStateError
- class pyqpanda.pyQPanda.QGate(arg0: NodeIter)[源代码]
quantum gate node
- control(control_qubits: QVec) QGate [源代码]
Get a controlled quantum gate based on the current QGate instance. This function creates a control version of the quantum gate using the specified control qubits.
- Args:
control_qubits: A list of qubits that serve as control qubits for the gate.
- Returns:
A new QGate instance representing the controlled gate.
- gate_matrix() List[complex] [源代码]
Get the matrix representation of the quantum gate.
- Args:
qgate: The quantum gate instance.
- Returns:
QStat: The matrix representation of the quantum gate.
- gate_type() int [源代码]
Get the type of the quantum gate.
- Args:
qgate: The quantum gate instance.
- Returns:
The type of the quantum gate.
- get_control_qubit_num() int [源代码]
Retrieve the number of control qubits for the QGate instance. This function returns the count of qubits that act as control qubits for the gate.
- Args:
None
- Returns:
An integer representing the number of control qubits.
- get_control_qubits(control_qubits: QVec) int [源代码]
Get the control vector from the current quantum gate node.
- Args:
control_qubits: The control qubits output vector.
- Returns:
int: Size of the control qubits.
- get_qubits(qubits: QVec) int [源代码]
Get the qubit vector inside this quantum gate.
- Args:
qubits: The qubits output vector.
- Returns:
int: Size of the qubits.
- get_target_qubit_num() int [源代码]
Retrieve the number of target qubits for the QGate instance. This function returns the count of qubits that the quantum gate affects.
- Args:
None
- Returns:
An integer representing the number of target qubits.
- is_dagger() bool [源代码]
Check if the QGate instance is a dagger (Hermitian conjugate) of another gate. This function determines whether the current gate is the adjoint of its corresponding gate.
- Args:
None
- Returns:
A boolean indicating whether the current gate is a dagger.
- class pyqpanda.pyQPanda.QITE[源代码]
quantum imaginary time evolution
- set_para_update_mode(arg0: UpdateMode) None [源代码]
- set_pauli_matrix(arg0: QuantumMachine, arg1: numpy.ndarray[numpy.float64[m, n]]) None [源代码]
- set_quantum_machine_type(arg0: QMachineType) None [源代码]
- class pyqpanda.pyQPanda.QIfProg(arg0: NodeIter)[源代码]
- class pyqpanda.pyQPanda.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg)
- class pyqpanda.pyQPanda.QIfProg(classical_cond: ClassicalCondition, true_branch_qprog: QProg, false_branch_qprog: QProg)
quantum if prog node
- get_classical_condition() ClassicalCondition [源代码]
Retrieve the classical condition associated with the quantum if program.
- Returns:
The classical condition object used in the if statement.
- class pyqpanda.pyQPanda.QMachineType(value: int)[源代码]
Quantum machine type
Members:
CPU
GPU
CPU_SINGLE_THREAD
NOISE
- CPU: ClassVar[QMachineType] = Ellipsis[源代码]
- CPU_SINGLE_THREAD: ClassVar[QMachineType] = Ellipsis[源代码]
- GPU: ClassVar[QMachineType] = Ellipsis[源代码]
- NOISE: ClassVar[QMachineType] = Ellipsis[源代码]
- class pyqpanda.pyQPanda.QOperator[源代码]
- class pyqpanda.pyQPanda.QOperator(arg0: QGate)
- class pyqpanda.pyQPanda.QOperator(arg0: QCircuit)
quantum operator class