mqt.qudits.compiler.twodit.variational_twodit_compilation.sparsifier

Module Contents

apply_rotations(m: numpy.typing.NDArray[numpy.complex128], params_list: numpy.typing.NDArray[numpy.float64], dims: list[int]) → numpy.typing.NDArray[numpy.complex128][source]
instantiate_rotations(circuit: QuantumCircuit, gate: Gate, params_list: numpy.typing.NDArray[numpy.float64]) → list[Gate][source]
density(m_prime: numpy.typing.NDArray[numpy.float64]) → float[source]
manhattan_norm(matrix: numpy.typing.NDArray[numpy.complex128]) → float[source]
frobenius_norm(matrix: numpy.typing.NDArray[numpy.complex128]) → float[source]
compute_f(x: numpy.typing.NDArray[numpy.complex128]) → float[source]
objective_function(thetas: numpy.typing.NDArray[numpy.float64], m: numpy.typing.NDArray[numpy.complex128], dims: list[int]) → float[source]

Objective function for promoting sparsity and low variance in the transformed matrix M’.

Parameters:
  • thetas – List of rotation angles.

  • m – Input matrix (NxN).

  • dims – Dimensions of the qudits.

Returns:

The value of the objective function.

sparsify(gate: Gate, tol: float = 0.1) → QuantumCircuit[source]