-adjoint-lowering

Lower adjoint regions containing a single quantum operations.

-cancel-inverses

Perform removal of chained operations that are inverses.

-combine-global-phases

Scope-wise merging of global phase operators (safe).

-convert-quantum-to-llvm

Perform a dialect conversion from Quantum to LLVM (QIR).

Options

-use-array-backed-registers : Use the array-backed-registers conversion pattern for quantum.insert ops.

-cp-global-memref

Copy global memrefs before returning from C interface.

-decompose-lowering

Replace quantum operations with compiled decomposition rules.

-disentangle-cnot

Replace a CNOT gate with two single qubit gates whenever possible.

Options

-emit-FSM-state-remark : Whether to emit the state analysis result from the simple states propagation FSM onto the gate operations.

-disentangle-swap

Replace a SWAP gate with single qubit gates and a shorter SWAPZ gates whenever possible.

Options

-emit-FSM-state-remark : Whether to emit the state analysis result from the simple states propagation FSM onto the gate operations.

-dynamic-one-shot

Apply the dynamic one-shot transform.

-emit-catalyst-py-interface

Emit catalyst python’s default interface.

-graph-decomposition

Decompose gates using an MLIR-native graph-based framework.

Options

-gate-set       : The accepted gates to decompose to.
-fixed-decomps  : Maps an operator to a decomposition rule that will be applied.
-alt-decomps    : Maps an operator to a `|` separated list of alternative decomposition rules that will be considered alongside any built-in rules for the operator.
-bytecode-rules : A path to a bytecode file of compiled decomposition rules.

-gridsynth

Perform Ross-Selinger/Gridsynth decomposition.

Options

-epsilon   : Maximum error tolerance for per-gate discretization.
-ppr-basis : Whether to decompose into the PPR basis set instead of the standard Clifford+T basis set.

-ions-decomposition

Decompose the gates to the set {RX, RY, MS}

-loop-boundary

Perform loop boundary optimization to eliminate the redundancy of operations on loop boundary.

-merge-rotations

Perform merging of chained rotation gates about the same axis.

-split-multiple-tapes

Given a qnode containing multiple tapes, split each tape into its own function.

-split-non-commuting

Split quantum functions non-commuting observables into multiple executions.

Options

-grouping-strategy : Grouping strategy for observables. "" (default) assigns each observable its own group. "wires" groups observables on non-overlapping wires.

-split-to-single-terms

Split quantum functions into single-term observables.