pytket-qirpass

Module for optimizing QIR using pytket.


License
Apache-2.0
Install
pip install pytket-qirpass==0.7.0

Documentation

pytket-qirpass

This module provides a method to optimize QIR using pytket.

Installation

Python 3.10, 3.11 or 3.12 is required.

To install from PyPI:

pip install pytket-qirpass

Usage

This module provides a single function, apply_qirpass, which takes as input

  • some QIR bitcode
  • a pytket compilation pass
  • a target gateset

and outputs some new QIR bitcode, where the pass has been applied to the basic blocks in the input program, followed by a rebase to the target gateset.

For example:

from pytket_qirpass import apply_qirpass
from pytket.circuit import OpType
from pytket.passes import FullPeepholeOptimise

qir_out = apply_qirpass(
    qir_bitcode=qir_in,
    comp_pass=FullPeepholeOptimise(allow_swaps=False),
    target_1q_gates={OpType.Rx, OpType.Rz},
    target_2q_gates={OpType.ZZPhase},
)

Both the input and the output are Python bytes objects.

Provided the pass preserves the circuit semantics, apply_qirpass preserves the QIR semantics.