Results 121 comments of Dax Fohl

An old comment from a previous TL states that diagrams are not intended to be used as inputs: https://github.com/quantumlib/Cirq/issues/3597#issuecomment-765028484. Also the intermediate data structure "CircuitDiagramInfo" isn't used for anything but...

@eliottrosenberg @ddddddanni can/should this now be closed?

Note I tried this a while back and it's *hugely* invasive. For example `TaggedOperation` intercepts several protocol methods like diagram_info and resolve_params, and adorns them with its own behavior before...

One option that may actually be easier is if we go all in and change all existing operations to gates. I've done a few of those for https://github.com/quantumlib/Cirq/issues/4683. The ones...

Controlled-Y currently decomposes to the following. ``` 0: ─────────────S────────────────────@───────────────────────────────────@─────────────────────────── │ │ 1: ─────────────Z───────────Y^-0.5───@───Y^0.5───S^-1───Y^0.5───Y^-0.5───@───Y^0.5───Y^-0.5───S^-1─── ``` For a proper `CY` gate, by symmetry with `CX`, I'd expect you could start with CX's...

The code is pretty hard to follow, but definitely looks like https://github.com/quantumlib/Cirq/blob/main/cirq-core/cirq/circuits/circuit.py#L2167 causes the splitter index to increment (note it passes `k` to `_pick_or_create_inserted_op_moment_index`). For some reason, one of the...

Okay, yeah, if the first qubit already has a gate, it falls all the way back to `NEW`, and creates a new moment. While splitter_index then becomes `1`, all subsequent...

Tried a few things but nothing worked. Biggest issue is here https://github.com/quantumlib/Cirq/blob/79d562ad9a9349c69e91f5ec35d90451a3128358/cirq-core/cirq/circuits/circuit.py#L2117 it inserts a Moment, but say you've got another op in that same batch on a different qubit....

Found a fix: https://github.com/quantumlib/Cirq/issues/6978 I'm not going to merge it yet (in fact I'll close it for now, to keep the PR list clean), because it's ugly and a little...