mqt.qudits.quantum_circuit.components.extensions.matrix_factory

Module Contents

class MatrixFactory(gate: Gate, identities_flag: int)[source]
gate: Gate
ids: int
generate_matrix() → numpy.typing.NDArray[numpy.complex128][source]
classmethod apply_identities_and_controls(matrix: numpy.typing.NDArray[numpy.complex128], qudits_applied: int | list[int], dimensions: int | list[int], ref_lines: list[int], controls: list[int] | None = None, controls_levels: list[int] | None = None) → numpy.typing.NDArray[numpy.complex128][source]
classmethod wrap_in_identities(matrix: numpy.typing.NDArray[numpy.complex128], indices: list[int], sizes: list[int]) → numpy.typing.NDArray[numpy.complex128][source]
from_dirac_to_basis(vec: list[int], d: list[int] | int) → numpy.typing.NDArray[numpy.complex128][source]
calculate_q0_q1(lev: int, dim: int) → tuple[int, int][source]
insert_at(big_arr: numpy.typing.NDArray[numpy.complex128], pos: tuple[int, int], to_insert_arr: numpy.typing.NDArray[numpy.complex128]) → numpy.typing.NDArray[numpy.complex128][source]

Quite a forceful way of embedding a parameters into big_arr.