catalyst
catalyst copied to clipboard
A JIT compiler for hybrid quantum programs in PennyLane
**Context:** As title. I think enzyme version update (to v0.0.149) makes stable version break. Hopefully this can fix.
**Context:** Replace `bufferization-deallocation` with `bufferization-deallocation-pipeline`, which contains `ownership-based-deallocation` from MLIR. The pass requires each catalyst operation have a `getEffect` method. This PR is open for review to reproduce the enzyme...
**Context:** We create nested modules for qnodes that contain all the program for a specific qnode. This will allow us to perform transformations targetting specific qnodes. **Description of the Change:**...
**Context:** 1) Jax generates additional const arguments with [...], and take. 2) The `mitigate_with_zne` does not work when using the `measurements_from_sample` function. The root of the the issue is the...
**Context:** The Catalyst frontend contains a small Python extension module at catalyst/utils/wrapper.cpp which is an importable Python module written in C/C++ used to wrap the entry point of compiled programs....
**Context:** ZNE is not working with dynamic one shot, because it does not support to be applied on a classical function containing QNodes. **Description of the Change:** 1) Add `Function`...
**Context:** Measure primitives still return `ShapedArray` objects, which forces variables like the number of shots or number of wires to be known at compilation time. With the support for `DShapedArray`...
### Before submitting Please complete the following checklist when submitting a PR: - [ ] All new functions and code must be clearly commented and documented. - [ ] Ensure...
**Context:** When a tape contains two state preparation operations, it will decompose one. However, the order of the decomposed operations is no longer guaranteed to come after the first state...
The following code will produce a segmentation fault due to the use of `qml.Identity([0, 1])`. ``` dev = qml.device("lightning.qubit", wires=2) @qjit @qml.qnode(dev) def circuit(): qml.Identity([0, 1]) return qml.state() circuit() ```