Stefan Krastanov
Stefan Krastanov
some is already implemented, but document the use of different approaches: - https://arxiv.org/abs/1406.2170 - https://arxiv.org/pdf/2003.09412.pdf
Currently the code branches a lot on the size of the operator being generated (using ints for n
Like `sCNOT` and `sSWAP` in https://github.com/Krastanov/QuantumClifford.jl/blob/master/src/symbolic_cliffords.jl
E.g. something like `sMX`, `sMZ`, and `sMY` which serve as ways to measure/project a qubit without employing the heavier `project!`.
Weirdly, `findfirst` seems slower... ```julia function f1(stabilizer, qubit) anticommutes = 0 r = length(stabilizer) for i in 1:r # The explicit loop is faster than anticommutes = findfirst(row->comm(pauli,stabilizer,row)!=0x0, 1:r); both...
Modify `show` so that too large tableaux do not pollute the CLI
`num_threads` causes invalidations ```julia using SnoopCompileCore invalidations = @snoopr begin using QuantumClifford #QuantumClifford._precompile() end using SnoopCompile ## length(uinvalidated(invalidations)) ## trees = invalidation_trees(invalidations) ## ftrees = filtermod(QuantumClifford, trees) # ← a...
Stim is great at: - [ ] symbolic left multiplication - [ ] symbolic right multiplication - [ ] pauli frames #32 We have similar performance on some of these...
See https://www.nature.com/articles/nature03350 and https://quantum-journal.org/papers/q-2021-07-06-497/