Results 121 comments of Dax Fohl

`decompose` on `X.controlled(cirq.SumOfProducts([[1]]))` currently throws `TypeError: object of type '' does have a _decompose_ method, but it returned NotImplemented or None`. So going ahead with this strictly benefits that situation....

@tanujkhattar Any further thoughts on this? The linked PR is ready to go. I added additional details in the comment above.

Kinda think this is not possible. Presumably it should work for even exponents too. However to work for even exponents, the gate needs to transform to `cirq.I`. However that ends...

Well, it's possible, as I managed to get the linked PR to pass all tests. The changes are probably more breaking than desired though. And we need to add some...

Nvm again. The second approach had an issue with `PauliString(X(q)**2)` turning into `PauliString()` and then losing the qubit and thus changing the commutation properties. To fix that we'd need to...

To be compatible with `deferred_measurement_transformer` it has to be equivalent to applying an `X` on that qudit, e.g. a `mod_add(1)`. (Or if something else is decided, then the `deferred_measurement_transformer` needs...

I take that back, the `deferred_measurement_transformer` code doesn't handle it at all. It'd just require changing `X` to `XPowGate` and explicitly passing in the dimension though. I think this is...

Makes sense. invert_mask would be a horrible name for an inc_mod function, even though it's the only reasonable qudit behavior. More likely to confuse people than anything. I think no...

Classical controls don't currently work with `AbstractControlValues`, though I don't think it would be hard to add a subclass of `Condition` that contains an `AbstractControlValues` and a `Seq[MeasurementKey]`. The easiest...