catalyst
catalyst copied to clipboard
A JIT compiler for hybrid quantum programs in PennyLane
For example, consider the following: ```python @qml.transform def my_quantum_transform(tape): new_operations = [] for op in tape: if op.name == "RX": if op.parameters[0] < 0: new_operations.append(qml.RY(-op.parameters[0], wires=op.wires)) else: new_operations.append(op) new_tape =...
Ensure that (co)tangent arguments of jvp/vjp contain floats. [sc-48792]
* *Expected behavior:* The attribute remains through the lowering of gradient and quantum dialect up until LLVM-IR (in which case we might wish to annotate it with some metadata). *...
Instead of having two pipelines, (one for async and one for non-async), we could have one single pipeline by predicating the compiler passes. For example: ```python A_PIPELINE = ( "A_PIPELINE_NAME",...
The print function should not be re-ordered. Example: ```python import pennylane as qml from catalyst import debug, grad, measure, qjit @qml.qnode(qml.device("lightning.qubit", wires=20)) def f(x): qml.RX(x, wires=[0]) debug.print("hello") return qml.state() @qjit(keep_intermediate=True,...
* *Expected behavior:* Shapes are integral values. Therefore an error should be raised if non-integral values are used. * *Actual behavior:* Silently a rounding function (possibly floor) is used. *...
* *Expected behavior:* Attempting to differentiate a non-differentiable gate (like `qml.QubitUnitary`) should ideally raise an error instead of a core dump. * *Actual behavior:* A segfault during the enzyme passes....
This is a potential issue which was discovered during the Jax dynamic API development. In the two-stage quantum tracing, we do the type unification of all the conditional branches _after_...
Soon after specifying toml files, we can have a the C interface also defined in the toml file. It makes sense to have all this information in one place.
#### Issue description * *Expected behavior:* QubitUnitary for gates with more than 2 qubits is not differentiable using Enzyme. This means that programs that transform gates to QubitUnitary cannot be...