Qualtran
Qualtran copied to clipboard
Qᴜᴀʟᴛʀᴀɴ is a Python library for expressing and analyzing Fault Tolerant Quantum algorithms.
Many bloqs (like `MultiAnd`, `MultiControlPauli` etc.) currently expect a control values object as a `Tuple[int, ...]`. This has a consequence that we cannot instantiate these objects symbolically. We should replace...
Is there a simpler way to add a singly-controlled bloq: ``` python ctrl_spec = CtrlSpec(cvs=[0]) (ctrl,), q = bb.add(ZGate(), ctrl=(ctrl,), q=q) ``` seems a little awkward. Is ``` python ctrl_spec...
The notebook tests in the CI seem to randomly fail every so often. Rerunning them seems to work. Any idea what's going on? Heres's a recent traceback: ``` [PosixPath('Adjoint.ipynb'), PosixPath('Autodoc.ipynb'),...
Costs
Tracking PR - [x] preliminaries #900 - [x] costing framework https://github.com/quantumlib/Qualtran/pull/913 - [ ] Bloq/gate counts - [ ] Qubit counts - [ ] Success probability - [ ] Docs...
Most of the bloqs in `chemistry/` package (eg: THC) have examples for `SELECT` and `PREPARE` but there are no examples for constructing a walk operator out of these SELECT and...
The t_complexity protocol can quickly use the call graph protocol to derive accurate t counts from subbloqs. This handles meta-bloqs like `Adjoint` correctly. For bloqs where `build_call_graph` is implemented and...
`assert_equivalent_bloq_example_counts` and `assert_decompose_is_consistent_with_t_complexity` should be checked for all bloqs. This currently fails and leads to a TODO in the flame graph code where we visualize the T-complexity distributions for the...
Working on #841, adds a walk operator example for the sparse hamiltonian which fits the usual select and prepare construction. Just adds an example and some autodoc. ~~I have an...
Bloq authors should always override `get_ctrl_system` and not `controlled`. I think only the old cirq-ft bloqs ( `QubitizationWalkOperator` and related) override `controlled` directly, which must be upgraded. ```py from qualtran...
work in progress. Add an automated check that will test the classical action of a bloq vs that of its decomposition. Will try 2**n random inputs unless the signature is