to get started in quantum computing by David
programming languages by Bettina
Heim, Mathias Soeken, Sarah
Marshall, Chris Granade, Martin
Roetteler, Alan Geller, Matthias
Troyer, and Krysta Svore.
- Loading Classical
Data into a Quantum Computer by John
A. Cortese and Timothy M. Braje.
- Toward the first
quantum simulation with quantum speedup by Andrew
M. Childs, Dmitri Maslov, Yunseong
Nam, Neil J. Ross, and Yuan Su. .
Quantum Programs Verification: From Quipper Circuits to
QPMC by Linda Anticoli, Carla
Piazza, Leonardo Taglialegne,
and Paolo Zuliani.
for the solution of the Dirac equation on digital quantum
computers, by François Fillion-Gourdeau, Steve
MacLean, and Raymond Laflamme. This paper describes a quantum
algorithm for solving a time-dependent Dirac equation. The
authors use Quipper for determining resource requirements.
reversible circuits from higher-order functional
programs by Benoîit Valiron.
resource analysis of the quantum linear-system algorithm used to
compute the electromagnetic scattering cross section of a 2D
Artur Scherer, Benoît
Valiron, Siun-Chuon Mau, Scott
Alexander, Eric van den Berg, and Thomas
E. Chapuran. A detailed resource analysis of the quantum
linear systems algorithm using Quipper.
- Concrete Resource
Estimation in Quantum Algorithms by Jonathan
M. Smith, Neil J. Ross, Peter
Selinger, and Benoît Valiron.
- Programming the
quantum future, by Benoît
Valiron, Neil J. Ross, Peter Selinger,
D. Scott Alexander, and Jonathan M. Smith.
This paper lays out general requirements for a quantum programming
language and highlights some of Quipper's features.
See the file NEWS for more details.
Dec 29, 2019: Release 0.9.0.0. This is the first version of
Quipper that is released as a set of Cabal packages. It can now be
installed with "cabal install quipper".
See README for more detailed installation
instructions. The module structure was re-designed, so that all parts
of Quipper are now contained in the "Quipper" namespace. This requires
many Quipper programs to be updated. Here is how the namespaces were
In addition, there were many compatibility updates to make Quipper
compatible with recent versions of GHC and the Haskell libraries.
July 27, 2016: Release 0.8. Compatibility with GHC
8.0. Note: GHC 7.10 is too broken and will not be
supported by Quipper.
Oct 14, 2014: Release 0.7. Compatibility with GHC
Jan 16, 2014: Release 0.6. This is mostly a maintenance release
to stay in sync with relevant Haskell libraries. Minor edits and
documentation updates. Added alternate version of synthesis algorithm
for determinant 1 generators. Synthesis and rendering libraries are
now external packages.
Sept 2, 2013: Release 0.5. Portability improvements
for GHC 7.6. Portability improvements for Windows. Added
quipperi script, analogous to ghci. New libraries for
of multi-qubit gates.
decompositions. Added decomposition into
gate set. Updated ASCII output format; improved circuit parser
efficiency. Miscellaneous bug fixes, refactoring, and documentation
June 19, 2013: Release 0.4.
This is the first public release of Quipper. It is a beta release.
Starting from Quipper 0.9, the recommended way to install Quipper is
using Cabal. In a nutshell, the commands
cabal install quipper
install all of the required components of Quipper (the Quipper
language, the Quipper standard library, and the Quipper tools). In
addition, the command "cabal install quipper-all" also installs the
Quipper algorithms and demos. For more detailed instructions,
Downloading and installing (legacy method)
The recommended way to install Quipper is using Cabal,
see "Downloading and installing
For backward compatibility, the old way of compiling Quipper also
still works. Quipper can be downloaded here:
If you would like to ensure the accuracy of the downloaded files, you
can double-check their SHA1
sums. Previous releases are available here.
Legacy installation instructions for Linux, Macintosh, and other
Legacy installation instructions for Windows:
Please note: Quipper does not work with GHC
7.10. The versions currently supported are GHC
8.0, 8.2, 8.4, 8.6, and 8.8.
Contributors are listed here, in alphabetical order by last name.
Unless otherwise noted, the copyright for his or her contributions
rests with each individual author. For contributions by authors whose
name is marked (ACS), the copyright rests with Applied Communication
Copyright (C) 2011-2019. All rights reserved.
Copyright (C) 2012-2013 Applied Communication Sciences. All rights
Alexander S. Green
Peter LeFanu Lumsdaine
Keith Kim (ACS)
Siun-Chuon Mau (ACS)
Won Ng (ACS)
Neil J. Ross
Artur Scherer (ACS)
Alexandr Virodov (ACS)
Stephan A. Zdancewic
This research was supported by the Intelligence Advanced Research
Projects Activity (IARPA) via Department of Interior National Business
Center contract numbers D11PC20168 and D12PC00527. The U.S. Government
is authorized to reproduce and distribute reprints for Governmental
purposes notwithstanding any copyright annotation thereon. Disclaimer:
The views and conclusions contained herein are those of the authors
and should not be interpreted as necessarily representing the official
policies or endorsements, either expressed or implied, of IARPA,
DoI/NBC, or the U.S. Government.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
THIS SOFTWARE IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the
- The name of the authors and copyright holders may not be used to
endorse or promote products derived from this software without
specific prior written permission.
Last modified by
Peter Selinger on Dec 29, 2019