cirq.inverse¶
-
cirq.inverse(val: Any, default: Any = ([], )) → Any[source]¶ Returns the inverse
val**-1of the given value, if defined.An object can define an inverse by defining a pow(self, exponent) methodthat returns something besides NotImplemented when given the exponent -1.The inverse of iterables is by default defined to be the iterable’s items,each inverted, in reverse order.Parameters: - val – The value (or iterable of invertible values) to invert.
- default – Determines the fallback behavior when val doesn’t have an inverse defined. 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 __pow__ method that returns something besides NotImplemented when given an exponent of -1, that result is returned. Otherwise, if val is iterable, the result is a tuple with the same items as val but in reverse order and with each item inverted. Otherwise, if a default argument was specified, it is returned.
Raises: TypeError– val doesn’t have a __pow__ method, or that method returned NotImplemented when given -1. Furthermore val isn’t an iterable containing invertible items. Also, no default argument was specified.