TwoQubitBasisDecomposer#
- class qiskit.quantum_info.TwoQubitBasisDecomposer(gate, basis_fidelity=1.0, euler_basis='U', pulse_optimize=None)[source]#
Bases :
object
A class for decomposing 2-qubit unitaries into minimal number of uses of a 2-qubit basis gate.
- Paramètres:
gate (Gate) – Two-qubit gate to be used in the KAK decomposition.
basis_fidelity (float) – Fidelity to be assumed for applications of KAK Gate. Default 1.0.
euler_basis (str) – Basis string to be provided to OneQubitEulerDecomposer for 1Q synthesis. Valid options are [“ZYZ”, “ZXZ”, “XYX”, “U”, “U3”, “U1X”, “PSX”, “ZSX”, “RR”].
pulse_optimize (None or bool) – If True, try to do decomposition which minimizes local unitaries in between entangling gates. This will raise an exception if an optimal decomposition is not implemented. Currently, only [{CX, SX, RZ}] is known. If False, don’t attempt optimization. If None, attempt optimization but don’t raise if unknown.
Methods
- static decomp0(target)[source]#
Decompose target ~Ud(x, y, z) with 0 uses of the basis gate. Result Ur has trace: \(|Tr(Ur.Utarget^dag)| = 4|(cos(x)cos(y)cos(z)+ j sin(x)sin(y)sin(z)|\), which is optimal for all targets and bases
- decomp1(target)[source]#
Decompose target ~Ud(x, y, z) with 1 uses of the basis gate ~Ud(a, b, c). Result Ur has trace: .. math:
|Tr(Ur.Utarget^dag)| = 4|cos(x-a)cos(y-b)cos(z-c) + j sin(x-a)sin(y-b)sin(z-c)|
which is optimal for all targets and bases with z==0 or c==0
- decomp2_supercontrolled(target)[source]#
Decompose target ~Ud(x, y, z) with 2 uses of the basis gate.
For supercontrolled basis ~Ud(pi/4, b, 0), all b, result Ur has trace .. math:
|Tr(Ur.Utarget^dag)| = 4cos(z)
which is the optimal approximation for basis of CNOT-class
~Ud(pi/4, 0, 0)
or DCNOT-class~Ud(pi/4, pi/4, 0)
and any target. May be sub-optimal for b!=0 (e.g. there exists exact decomposition for any target using BB~Ud(pi/4, pi/8, 0)
, but not this decomposition.) This is an exact decomposition for supercontrolled basis and target~Ud(x, y, 0)
. No guarantees for non-supercontrolled basis.
- decomp3_supercontrolled(target)[source]#
Decompose target with 3 uses of the basis. This is an exact decomposition for supercontrolled basis ~Ud(pi/4, b, 0), all b, and any target. No guarantees for non-supercontrolled basis.