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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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