William J. Huggins
William J. Huggins
It can be circumvented by adding the following code to _is_spin_block_diagonal(matrix) if matrix.shape[0] != matrix.shape[1]: return False It should be possible to implement properly for a general fermionic gaussian transformation...
This causes additional problems with Pylance in VSCode. It really would be a nice change even if it's annoying to break people's code.
Would a PR that does this be approved?
This is an example where I think we would benefit from counting things in terms of qubits * surface code cycles, as advocated in #1454.
I think this should be a blocking issue for the 1.0 release @ncrubin @mpharrigan @tanujkhattar. At least finishing the implementations for the most important algorithms. People are going to want...
Thanks @giordano! It's good to know the problem and understand the workarounds.
I think I captured the situation correctly @tanujkhattar, but please let me know if I'm missing something.
That does sound like a good plan. I guess a good first step would be making a skeleton for this in a different branch? Then it will take some work...
I've started working on this in https://github.com/wjhuggins/Qualtran/tree/improved_clifford_costing. I've also started a rough list of surface code spacetime volume (for a 2d architecture using lattice surgery) here: https://docs.google.com/spreadsheets/d/1b21sGKJYo83wJxfGXdNT42pUR65970frZpiz98RJ7kY/edit?usp=sharing. Don't take the...
This is connected to #1121, which is related to the observation that we can do compute / uncompute pairs for Toffoli and Fredkin gates more cheaply than a naive implementation.