Returns a unitary matrix describing the given value.
cirq.unitary(
val: Any,
default: Union[np.ndarray, TDefault] = RaiseTypeErrorIfNotProvided
) -> Union[np.ndarray, TDefault]
Used in the notebooks
The matrix is determined by any one of the following techniques:
- The value has a
_unitary_
method that returns something besides None or
NotImplemented. The matrix is whatever the method returned.
- The value has a
_decompose_
method that returns a list of operations,
and each operation in the list has a unitary effect. The matrix is
created by aggregating the sub-operations' unitary effects.
- The value has an
_apply_unitary_
method, and it returns something
besides None or NotImplemented. The matrix is created by applying
_apply_unitary_
to an identity matrix.
If none of these techniques succeeds, it is assumed that val
doesn't have
a unitary effect. The order in which techniques are attempted is
unspecified.
Args |
val
|
The value to describe with a unitary matrix.
|
default
|
Determines the fallback behavior when val doesn't have
a unitary effect. If default is not set, a TypeError is raised. If
default is set to a value, that value is returned.
|
Returns |
If val has a unitary effect, the corresponding unitary matrix.
Otherwise, if default is specified, it is returned.
|
Raises |
TypeError
|
val doesn't have a unitary effect and no default value was
specified.
|