def _unitary_(self) -> np.ndarray: mat = np.eye(2) qubit = named_qubit.NamedQubit('arbitrary') for op in op_tree.flatten_op_tree(self.default_decompose((qubit, ))): mat = protocols.unitary(op).dot(mat) return mat
def _unitary_(self) -> np.ndarray: mat = np.eye(2) qubit = named_qubit.NamedQubit('arbitrary') for op in protocols.decompose_once_with_qubits(self, (qubit, )): mat = protocols.unitary(op).dot(mat) return mat