Module for optimizing QIR using pytket.
Project description
pytket-qirpass
This module provides a method to optimize QIR using pytket, and a method to convert QIR to pytket for simple circuits.
Installation
Python 3.10, 3.11, 3.12 or 3.13 is required.
To install from PyPI:
pip install pytket-qirpass
Usage
Optimizing QIR with apply_qirpass
The function apply_qirpass 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.
Converting QIR to pytket with qir_to_pytket
The function qir_to_pytket takes as input some QIR bitcode and outputs a
pytket circuit.
For example:
from pytket_qirpass import qir_to_pytket
circ = qir_to_pytket(qir_bitcode=qir_in)
The program represented by the bitcode must consist of a single basic block
comprised of quantum operations, i.e. __quantum__qis__* instructions; any
__quantum__rt__* instructions are accepted but ignored.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytket_qirpass-0.10.0.tar.gz.
File metadata
- Download URL: pytket_qirpass-0.10.0.tar.gz
- Upload date:
- Size: 282.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d66164d628a84a6346de2ae1b2c67aea877eabe8f4fa0237b55797b9580e664
|
|
| MD5 |
186bfc2bf148ce88c866f1c3166883d8
|
|
| BLAKE2b-256 |
a73496c5306b5f709f9968b21299747522865154ad24b927b8582844be703b3f
|
File details
Details for the file pytket_qirpass-0.10.0-py2.py3-none-any.whl.
File metadata
- Download URL: pytket_qirpass-0.10.0-py2.py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
607a14d889d38c3941d130e7a669096c5760af7fc666888480cabe47dc4b16d0
|
|
| MD5 |
2811239b473b126f30f296ac8517b86e
|
|
| BLAKE2b-256 |
8c4f35fd467a557627622ebe33fa2639684328add6a5ce7c38cd283e9ee1aa6f
|