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
Used in the tutorials |
---|
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.
Returns | |
---|---|
If val has a unitary effect, the corresponding unitary matrix.
Otherwise, if default is specified, it is returned.
|