![]() |
Utility methods for breaking matrices into useful pieces.
Classes
class AxisAngleDecomposition
: Represents a unitary operation as an axis, angle, and global phase.
class KakDecomposition
: A convenient description of an arbitrary two-qubit operation.
Functions
axis_angle(...)
: Decomposes a single-qubit unitary into axis, angle, and global phase.
deconstruct_single_qubit_matrix_into_angles(...)
: Breaks down a 2x2 unitary into more useful ZYZ angle parameters.
extract_right_diag(...)
: Extract a diagonal unitary from a 3-CNOT two-qubit unitary.
kak_canonicalize_vector(...)
: Canonicalizes an XX/YY/ZZ interaction by swap/negate/shift-ing axes.
kak_decomposition(...)
: Decomposes a 2-qubit unitary into 1-qubit ops and XX/YY/ZZ interactions.
kak_vector(...)
: Compute the KAK vectors of one or more two qubit unitaries.
kron_factor_4x4_to_2x2s(...)
: Splits a 4x4 matrix U = kron(A, B) into A, B, and a global factor.
map_eigenvalues(...)
: Applies a function to the eigenvalues of a matrix.
num_cnots_required(...)
: Returns the min number of CNOT/CZ gates required by a two-qubit unitary.
scatter_plot_normalized_kak_interaction_coefficients(...)
: Plots the interaction coefficients of many two-qubit operations.
so4_to_magic_su2s(...)
: Finds 2x2 special-unitaries A, B where mat = Mag.H @ kron(A, B) @ Mag.
unitary_eig(...)
: Gives the guaranteed unitary eigendecomposition of a normal matrix.