tket
tket copied to clipboard
Source code for the TKET quantum compiler, Python bindings and utilities
`CliffordSimp` fails to simplify the circuit `Circuit(2).H(0).H(1).CX(0,1).H(0).H(1)` (equivalent to `Circuit(2).CX(1,0)`). We should enhance the pass so that it spots this kind of pattern.
For example, see the coverage report for the constructor of a `UnitID` in `UnitID.hpp`.
(Depending on the optimization level.) See the discussion on #25 .
It has been requested that we add the following two methods to `Circuit`: - `opgroups()`, returning a set of `str` (all named opgroups); - `ops_in_group(opgroup: str)`, returning a set of...
https://docs.python.org/3/library/collections.abc.html#collections.abc.MutableMapping should makea few methods redundant Or maybe UserDict Or maybe something even closer to what the datastructure actually does.
Currently, the only architecture-aware synthesis method is for phase polynomials (and therefore CNOT circuits). Within the synthesis code, the placement of logical qubits on the physical architecture is implicitly chosen...
https://cqcl.github.io/tket/bubble/test-coverage/index.html A reasonable target would be 90% line and branch coverage. We are nearly there on lines (85%) but have a long way to go on branches (50%).
We currently ignore the existence of move semantics in bubble. That might be having an impact on performance (probably hard to quantify though). With modern C++, most classes should be...
`COMPPASSJSONTEST` in test_json.cpp was failing for a Placement Pass (as returned by `gen_placement_pass`) constructed with some `LinePlacement` objects. There were two points of failure for this: 1. `Architecture::get_distances(Node node)` has...
As suggested in https://github.com/CQCL/tket/issues/506. Currently when calling `circuit_to_qasm_str`, if the `pytket` `Circuit` has any gate with an `OpType` unsupported by the library header it will raise an error. With this...