CartanKAKDiagonalDecomposition
QuICT.qcda.synthesis.unitary_decomposition.CartanKAKDiagonalDecomposition ¶
Bases: object
Decompose a matrix \(U \in SU(4)\) with Cartan KAK Decomposition. Unlike the original version, now the result circuit has a two-qubit gate whose matrix is diagonal at the edge, which is useful in the optimization. The process is taken from [2] Proposition V.2 and Theorem VI.3, while the Cartan KAK Decomposition process is refined from [1].
Reference
[1] Constructive Quantum Shannon Decomposition from Cartan Involutions
https://arxiv.org/abs/0806.4015
[2] Optimal Quantum Circuits for General Two-Qubit Gates
https://arxiv.org/abs/quant-ph/0308006
Parameters:
-
target(str, default:'cx') –how the core part \(\exp(i(a XX + b YY + c ZZ))\) would be decomposed, which could be chosen from
'cx'(by default) and'rot'(rxx, ryy, rzz) -
eps(float, default:1e-15) –Eps of decomposition process
Source code in QuICT/qcda/synthesis/unitary_decomposition/cartan_kak_diagonal_decomposition.py
execute ¶
Decompose a matrix \(U \in SU(4)\) with Cartan KAK Diagonal Decomposition.
Parameters:
-
matrix(ndarray) –4*4 unitary matrix to be decomposed
Returns:
-
CompositeGate(CompositeGate) –Decomposed gates.
Source code in QuICT/qcda/synthesis/unitary_decomposition/cartan_kak_diagonal_decomposition.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | |