decompose_once(val: Any, default=(, ), **kwargs)¶
Decomposes a value into operations, if possible.This method decomposes the value exactly once, instead of decomposing itand then continuing to decomposing the decomposed operations recursivelyuntil some criteria is met (which is what
- val – The value to call _decompose_ on, if possible.
- default – A default result to use if the value doesn’t have a _decompose_ method or that method returns NotImplemented or None. If not specified, undecomposable values cause a TypeError.
- kwargs – Arguments to forward into the _decompose_ method of val. For example, this is used to tell gates what qubits they are being applied to.
The result of val._decompose_(**kwargs), if val has a _decompose_ method and it didn’t return NotImplemented or None. Otherwise default is returned, if it was specified. Otherwise an error is raised.
- val didn’t have a _decompose_ method (or that method returned NotImplemented or None) and default wasn’t set.