Skip to main content

XIR is an intermediate representation (IR) for quantum circuits.

Project description

XIR

XIR is an intermediate representation language for quantum circuits.

Features

  • Simple. Easy to learn, write, and understand.

  • Modular. Compose observables, gates, and entire XIR programs.

  • Flexible. Declare or define your own gates and observables.

Installation

XIR requires Python version 3.7 or above. Installation of XIR, as well as all dependencies, can be done using pip:

pip install quantum-xir

Examples

A curated selection of XIR scripts can be found in the Examples page of the Sphinx documentation; however, the example below demonstrates a general overview of the syntax:

// Include additional script
use my_declarations;

// Declare custom gates
gate RX(theta) [w1];
gate RY(theta) [w1];
gate RZ(theta) [w1];
gate Toffoli [w1, w2, w3];

// Declare a function
func sin(x);

// Declare observables
obs X [w1]; obs Y [w1]; obs Z [w1];

// Declare outputs
out sample(shots) [0..8];
out expval(observable) [w1, w2];
out amplitude(state) [0..8];

// Define a composite gate.
gate R3T(theta)[a, b, c, d]:
    RX(theta: -2.3932854391951004) | [a];
    RY(theta) | [b];
    RZ(pi / sin(3 * 4 / 2 - 2)) | [c];
    Toffoli | [b, c, d];
end;

// Define an observable.
obs XYZ [w1, w2]:
    -1.6, X[w1];
    0.73, Y[w1] @ Z[w2];
end;

// Apply the gate twice.
R3T(1.23) | [0, 1, 2, 3];
R3T(theta: 3.21) | [4..8];

// Compute various outputs.
sample(shots: 1000) | [0..8];
expval(observable: XYZ) | [0, 3];
amplitude(state: [0, 1, 0, 1, 0, 0, 1, 1]) | [0..8];

Contributing to XIR

We welcome contributions - simply fork the XIR repository, and then make a pull request containing your contribution. All contributors to XIR will be listed as authors on the releases. See our changelog for more details.

We also encourage bug reports, suggestions for new features and enhancements, and even links to cool projects or applications built on XIR. Visit the contributions page to learn more about sharing your ideas with the XIR team.

Support

If you are having issues, please let us know by posting the issue on our GitHub issue tracker.

Authors

XIR is the work of many contributors.

License

XIR is free and open source, released under the Apache License, Version 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantum-xir-0.2.2.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantum_xir-0.2.2-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file quantum-xir-0.2.2.tar.gz.

File metadata

  • Download URL: quantum-xir-0.2.2.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for quantum-xir-0.2.2.tar.gz
Algorithm Hash digest
SHA256 4b6a60bd3dcddb455e33b036b320cf634c5bd772ecea031b110fc5fb2fcf8a51
MD5 53c501a983b67154033f45c421396aca
BLAKE2b-256 3f284b270b4170e7d2ca16cb63cf5d3d5f47f64cc43d2695a17c12a61a2cc832

See more details on using hashes here.

File details

Details for the file quantum_xir-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: quantum_xir-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for quantum_xir-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5acd7955d8d854e216bdeb773afbf534d6fbe2e35ded5295ff0cacc7fd84f9fc
MD5 76b652df98b9380b836cc0e097acf64f
BLAKE2b-256 988f29e6eb321df7777f7b97c818f191d8db05ecbd71d0452de5fbba4605af92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page