in src/braket/default_simulator/operation_helpers.py [0:0]
def check_matrix_dimensions(matrix: np.ndarray, targets: Tuple[int, ...]) -> None:
"""Checks that the matrix is of the correct shape to act on the targets.
Args:
matrix (np.ndarray): The matrix to check
targets (Tuple[int, ...]): The target qubits the matrix acts on
Raises:
ValueError: If the matrix is not a square matrix or operates on a space
of different dimension than that generated by the target qubits
"""
if len(matrix.shape) != 2 or matrix.shape[0] != matrix.shape[1]:
raise ValueError(f"{matrix} is not a two-dimensional square matrix")
dimension = 2 ** len(targets)
if dimension != matrix.shape[0]:
raise ValueError(
f"`matrix` operates on space of dimension {matrix.shape[0]} instead of {dimension}"
)