Results 121 comments of Dax Fohl

I tried this and (2) ends up being not particularly clean. The reason is that state vector simulator records which mixture option was chosen. This means `apply_gate` would have to...

Option (3) that I mentioned two comments above is done as of #5065. That PR created an interface `qis.QuantumStateRepresentation`: https://github.com/quantumlib/Cirq/blob/fe7fe4e1d29e6b5fcc1643c0c73c26f8b37adae1/cirq-core/cirq/qis/clifford_tableau.py#L28 Implementations are expected to be bare bones. The interface operates...

After thinking about this for a bit, I believe the *root* problem is not going to be solved by a new quantum state representation (though the representation I added worked...

@mpharrigan So you're suggesting here we leave `channel` alone and instead create a new `protocols.choi` that looks something like the following? ``` def choi(op): f = getattr(op, '_choi_') if f...

> Would we want to return the raw matrix, or wrap it in a ChoiMatrix class that has some useful functions? FWIW I'd vote for the latter, even if the...

(Higher-level, should Cirq have a more robust QIS class hierarchy? Right now, all the protocols emit raw numpy arrays, or sequences thereof, without anything other than documentation saying what those...

It seems most QIS libraries reference the following https://arxiv.org/abs/1111.6950 [edit: updated to correct link], and provide some object model with `Channel` as the interface and `Kraus`, `Choi`, `Chi`, and `Superoperator`...

I feel like we've seen situations where these are created in decomposition or transformers or whatever. Even if they're just temporary and eventually removed from the circuit, disallowing them from...

Looks like this gets fixed by #7051, with the underlying issue being #7052.

Yeah I understand the concern. If it's decided that this is breaking, we should also probably revisit other issues involving presentation of circuit diagrams (e.g. #1245, #3597, #3612, #3913, etc),...