TwoLevelDecompositionSolver
public protocol TwoLevelDecompositionSolver
A quantum gate can be decomposed into a sequence of fully controlled two-level matrix gates and not gates. The following implementation is based on: Decomposition of unitary matrices and quantum gates & Decomposition of unitary matrix into quantum gates
-
Decompose
gateinto a sequence of fully controlled two-level matrix gates and not gates.Declaration
Swift
func decomposeGate(_ gate: Gate, restrictedToCircuitQubitCount qubitCount: Int) -> Result<[Gate], QuantumOperatorError>Parameters
gateGateinstance to decompose.qubitCountNumber of qubits in the circuit.
Return Value
A sequence of
Gateinstances that replace the inputgate. OrQuantumOperatorErrorerror.
-
decomposeGates(_:Extension methodrestrictedToCircuitQubitCount: ) Decompose one by one each instance in
gatesto produce an equivalent sequence of fully controlled two-level matrix gates and not gates.Declaration
Swift
public func decomposeGates(_ gates: [Gate], restrictedToCircuitQubitCount qubitCount: Int) -> Result<[Gate], DecomposeGatesError>Parameters
gatesGateinstances to decompose.qubitCountNumber of qubits in the circuit.
Return Value
A sequence of
Gateinstances equivalent togates. OrDecomposeGatesErrorerror. -
decomposeGates(_:Extension method) Decompose one by one each instance in
gatesto produce an equivalent sequence of fully controlled two-level matrix gates and not gates.Declaration
Swift
public func decomposeGates(_ gates: [Gate]) -> Result<[Gate], DecomposeGatesError>Parameters
gatesGateinstances to decompose.Return Value
A sequence of
Gateinstances equivalent togates. OrDecomposeGatesErrorerror.
TwoLevelDecompositionSolver Protocol Reference