quizx
quizx copied to clipboard
Port core pyzx features
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
- 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
This TODO list was extracted from the repo README
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 !