Using the Quipper tools
=======================
The quipper-tools package contains a number of stand-alone Quipper
programs, most of which read a circuit in the Quipper ASCII format on
standard input. These tools are intended as examples; they illustrate
how other such tools can be written. Each tool also has a --help
option to display usage information.
Graphical viewing of circuits:
------------------------------
* quipper-eps: convert a circuit from ASCII to EPS format.
* quipper-pdf: convert a circuit from ASCII to PDF format.
* quipper-preview: read a circuit and launch the previewer.
Decomposing circuits into different gate sets:
----------------------------------------------
* quipper-approximate: decompose rotation and phase gates into the
Clifford+T base, using the approximate synthesis algorithm of
http://arxiv.org/abs/1403.2975.
* quipper-binary: decompose a circuit into binary gates.
* quipper-cliffordt: decompose a circuit into the Clifford+T base,
using both exact and approximate synthesis.
* quipper-exact: decompose all gates that permit exact Clifford+T
representations into the following gates: controlled-not (with
positive or negative control), and single-qubit Clifford gate, T,
and T⁻¹. Classical controls and classical gates are not subject to
the gate base, and are left untouched.
* quipper-standard: decompose a circuit into the "standard" gates {X,
Y, Z, H, S, S⁻¹, T, T⁻¹, CNOT}, using exact and approximate
synthesis.
* quipper-strict: decompose a circuit into the gates {H, S, T, CNOT},
using exact and approximate synthesis.
* quipper-trimcontrols: trim excess controls from gates, so that the
gates {NOT, X, Y, Z, iX} have at most two controls, phase gates have
no controls, and all other gates have at most one control.
* quipper-unbox: unwind a circuit by inlining all top-level boxed
subroutines. This can substantially increase the size of the circuit
representation.
Resource analysis:
------------------
* quipper-depth: read a circuit and output its depth.
* quipper-gatecount: read a circuit and output gate counts.
Simulation:
-----------
* quipper-simulate: read a circuit and simulate it by applying it to
every posssible basis vector. This is not efficient and only works
for very small circuits. Any measurements in the circuit will be
simulated probabilistically.
Miscellaneous:
--------------
* quipper-ascii: the identity function on circuits: read a circuit on
standard output and then output the same circuit to standard
output. Illustrates how to parse and output the Quipper ASCII
circuit format.
* quipper-qclparser: read an execution trace produced by Ömer's QCL,
and turn it into a Quipper circuit.