Need help with Liquid?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

416 Stars 95 Forks Other 61 Commits 3 Opened issues


The Language-Integrated Quantum Operations (LIQUi|>) Simulator

Services available


Need anything else?

Contributors list

The Language-Integrated Quantum Operations (LIQUi|〉) simulator


2017/12/11 Microsoft Quantum Development Kit (Preview) released

We are very happy to announce the availability of the Microsoft Quantum Development Kit (Preview). There is a nice blog entry for details if you'd like to read more. The release contains a new language (Q#), compiler, simulators, examples, libraries (in source form) and full documentation. There is also a video walk through showing quantum code samples as part of the Microsoft Mechanics series.

2017/11/03 Updated Binaries

The latest version of Visual Studio/.Net/FSharp (2017) is incompatible with the binaries we've previously shipped for LIQUi|〉. All the compiled examples will work, but new code or compiling from scripts will fail. The current version on the Github site has been updated to fix this. Following the Getting Started is the easiest way to re-install everything. If you already have a version of VS2017, then you can skip that piece.

2017/09/26 Announcement of Microsoft Quantum

With the Microsoft Ignite announcement of our broader quantum effort yesterday, I'd encourage members of the list to sign up for the new Microsoft quarterly Quantum Newsletter for the latest information on our complete software stack for quantum computing.

2017/07/13 Re-compiled for VS 2017

User Brandon Langenberg at FAU discovered that any compilations done with VS 2017 will not work with the shipped bits (since they were built with VS 2015). We have re-compiled all the binaries and have moved to F# 4.1 (FSharp.Core along with .Net Framework 4.6.1.

2017/06/21 Bug fixed in UserCode/DaveWecker/AltOutput.fs

User thiennm noted that classically controlled gates were dropping a qubit in the QASM output (see the Teleport example). His suggested fix has been adopted. Thanks!

2017/06/14 Fixed scripts on Linux and OSX

A recent change to FSharp on Linux and OSX made it impossible to incrementaly load scripts that were compiled with

. We have updated the kit so that the linux directory now contains private copies of
which should fix the problem.

2017/04/18 Drawing Shor Circuits

We had a request for renderings of the circuits used by the __Shor() command. There is now a zipped file of all the circuits in both HTML and LaTeX in UserCode/DaveWecker as Shor_Render.7z

2016/07/02 Sample implementation of Spin.Test and Stabilizer.ShowState released

In UserCode\DaveWecker there are two new releases of sample implementations. The first shows how to implement the Spin.Test routine that's caled by the

example in LIQUi|〉. There's also a new property on stabilizers called
which will return the current (raw) stabilizers. See the
sample in the same directory for further information. The file is a good place to start.

2016/05/20 Channels/POVMs added

We've made a major addition to the available noise models in the system by adding Channels (via Kraus operators) and Generalized Measurement (via POVMs). The Users Manual has a new section under "Advanced Noise Models" called "Channels and POVMs", the API docs have been updated and there's a new built in example called

. A sample call would be:
which would do 1000 runs with Amplitude Damping and Depolarizing noise. See the Users Manual for full details as well as the provided source code in
. You can also find an example of a simple quantum game (Peres) using POVMs in the

2016/05/16 First Quantum Challenge Winners announced!

The winners of the first Quantum Challenge have been announced in the Microsoft Research Blog. Full information about the entries may be found in our GitHub repo.

2016/05/03 QuAM source code released

In UserCode\DaveWecker there's a new release of source code for the QuAM example that's built in to LIQUi|〉. See the file in the same directory for details. We also exposed a few more APIs to help make this and other examples easier to code.

2016/04/23 QLSA source code released

In UserCode\DaveWecker there's a new release of source code for the QLSA example that's built in to LIQUi|〉. See the file in the same directory for details.

2016/03/11 New introduction videos

Seven new short videos have been posted to the LIQUi|〉 Research site

2016/03/04 Outputting circuits for other Quantum Languages

We've uploaded sample code that shows how to print out circuits for other quantum languages. This specific example shows how to parse a circuit and generate QASM code. See UserCode example from DaveWecker

As always, we encourage you to join our (low volume) mailing list (instructions below) so you will directly receive announcements like these.

What Is LIQUi|〉?

LIQUi|〉 is a simulation platform developed by the Quantum Architectures and Computation team at Microsoft Research to aid in the exploration of quantum computation. LIQUi|〉 stands for “Language Integrated Quantum Operations”.
A quantum operation is usually referred to as a unitary operator (U) applied to a column state vector (also known as a ket: |>). The “i” is just a constant scaling factor, hence the acronym.

LIQUi|〉 includes three simulators: * A full state vector simulator that tracks the detailed evolution of the quantum state * A stabilizer simulator based on CHP (Aaronson and Gottesman, * A highly-optimized full state vector simulator for fermionic Hamiltonians

LIQUi|〉 is available under a Microsoft Research license.

For More Information

See the StationQ website and the paper, LIQUi|〉: A Software Design Architecture and Domain-Specific Language for Quantum Computing.

To stay up to date on what we're doing with LIQUi|〉, please watch our repository and sign up for the LIQUi|〉 email list. To sign up, send an email to [email protected] with a one-line body reading:

SUB Liquid-news FirstName LastName
Replacing FirstName and LastName with your first and last names. If you prefer to remain anonymous, you may instead send an email containing:
SUB Liquid-news anonymous

How To Cite LIQUi|〉

If you use LIQUi|〉 in your research, please cite it as follows: * bibTex:

  author = {Dave Wecker and Krysta M.~Svore},
  title = {{LIQU}i|>: {A} {S}oftware {D}esign {A}rchitecture and {D}omain-{S}pecific 
            {L}anguage for {Q}uantum {C}omputing},
  year = {2014},
  eprint = {1402.4467},
  url = {arXiv:1402.4467v1}
* Text:
D. Wecker and K. M. Svore, “LIQUi|〉: A Software Design Architecure and Domain-Specific 
    Language for Quantum Computing,” (2014), arXiv:1402.4467v1 [quant-ph],

What Can I Do With It?

You can use LIQUi|〉 to define quantum circuits, render them into a variety of graphical formats, and execute them using an appropriate simulator.

Some of the specific algorithms you can simulate with LIQUi|〉 are: * Simple quantum teleportation * Shor's factoring algorithm * Quantum chemistry: computing the ground state energy of a molecule * Quantum error correction * Quantum associative memory (Ventura and Martinez, * Quantum linear algebra (Harrow, Hassidim, and Lloyd,

All of these algorithms, and many more, are included as samples with LIQUi|〉. A video of a recent talk at IQC on the reserach we've done with the simulator is at

How Do I Get It?

You can download the LIQUi|〉 executable, libraries, sample scripts, and documentation from this site.

See the Getting Started page for directions on how to download and start using LIQUi|〉.

If you wish to use LIQUi|〉 on a Windows virtual machine, see the Using LIQUi|〉 on Microsoft Azure page for directions.

How Do I Use It?

See the users' guide and the full help documentation. The help may also be downloaded as a single file, if desired. There is also a tutorial video available that will take you through the basics.

We've also posted seven short videos to the LIQUi|〉 Research site. These include: * Station Q Overview * LIQUi|〉 Simulator History * The Quantum Challenge * LIQUi|〉 Quantum Simulator QuickStart * LIQUi|〉 Quantum Error Correction * LIQUi|〉 Simulation Optimization * LIQUi|〉 Quantum Chemistry

Note that this version of LIQUi|〉 is limited to a maximum of 23 physical qubits for full state vector simulation.

If you run into a problem or have a question, you can post an issue. If you have other feedback, you can contact the LIQUi|〉 team at [email protected]

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.