quizx icon indicating copy to clipboard operation
quizx copied to clipboard

Port core pyzx features

Open ABorgna opened this issue 7 months ago • 2 comments

QuiZX is not intended to have all the features of PyZX, but certainly the core stuff. Here's where it's at:

  • ZX-diagrams
    • [X] building ZX-diagrams and doing basic graph manipulations
    • [X] converting ZX-diagrams to Z + hadamard form
    • [X] switchable underlying graph model (fast vector-based model for sparse graphs, slower hash-based model for dense graphs)
  • ZX-calculus rules
    • [X] spider fusion
    • [X] local complementation
    • [X] pivoting
    • [X] remove identity spiders
    • [X] colour-change
    • [X] pivoting variations (boundary-pivot and gadget-pivot)
  • simplifiers
    • [X] clifford simplifier (from this paper)
    • [X] phase gadget simplifier (from this paper)
    • [X] simplification-based equality checker
  • tensor evaluation based on ndarray
    • [X] exact scalars with cyclotomic rational numbers
    • [X] floating point scalars based on num_complex
    • [X] tensor contraction for arbitrary ZX-diagrams
    • [X] equality of tensors with exact scalars
    • [ ] approximate equality of tensors with floating point scalars
    • [ ] space optimisations
    • [ ] choose good contraction ordering (currently uses reverse-insertion-order)
    • [ ] more human-readable tensor output (e.g. converting to normal matrices, pretty printing)
  • circuits
    • [X] circuit data type
    • [X] read and write QASM
    • [X] conversion from circuits to ZX-diagrams
    • [X] circuit extraction

ABorgna avatar May 04 '25 13:05 ABorgna

This TODO list was extracted from the repo README

ABorgna avatar May 04 '25 13:05 ABorgna

Thanks for moving this here from the README. I think it makes more sense as an issue.

"simplification-based equality checker" is done now: 789cd97 thanks to @alexandru-duca !

akissinger avatar May 06 '25 09:05 akissinger