Anurudh Peduri

Results 48 comments of Anurudh Peduri

Btw, `Partition` does work with symbolics: ```py import sympy from attrs import frozen from qualtran import Bloq, Signature from qualtran.symbolics import SymbolicInt from qualtran.bloqs.bookkeeping import Partition from qualtran.bloqs.basic_gates import Identity...

On deeper inspection, it looks like `GreedyQubitManager` is indeed propagated correctly, but `_cbloq_to_cirq_circuit` seems to destroy ordering: https://github.com/quantumlib/Qualtran/blob/cc4e3bcf1729cb31dcaa22591610ebb552e82d2b/qualtran/cirq_interop/_bloq_to_cirq.py#L270 In the example with two alloc-cnot-free, the topological ordering first processes the...

I ran `python -X importtime -c "import qualtran"` (after #949), it seems `import cirq` takes up most of the time: ``` import time: self [us] | cumulative | imported package...

+1 On top of this, I think we should add `Bloq.build_controlled_bloq` which is called by `get_ctrl_system` which in turn is called by `controlled` (similar to `build_composite_bloq` and `decompose_bloq`). Because the...

Ah yeah, if we add a separate `GWROperation`, it solves the problem I described (can just use `controlled`)

@tanujkhattar can we merge this?

Could you give an example where this is a bug? As I understand, we treat MultiControlPauli as controlled by `n` qubits, hence the control register of `dtype=QBit(), shape=(n,)`. There is...

Another subtle issue with `OnEach(Identity(), n).controlled(m)` is that it would produce `m` bloqs of `OnEach(Identity(), n + 1)` (because the control qubits are common), and therefore `m * (n +...