@hackage quipper-core0.8.0.1

An embedded, scalable functional programming language for quantum computing.

Quipper is an embedded, scalable functional programming language for quantum computing. It provides, among other things:

  • A high-level circuit description language. This includes gate-by-gate descriptions of circuit fragments, as well as powerful operators for assembling and manipulating circuits.

  • A monadic semantics, allowing for a mixture of procedural and declarative programming styles.

  • Built-in facilities for automatic synthesis of reversible quantum circuits, including from classical code.

  • Support for hierarchical circuits.

  • Extensible quantum data types.

  • Programmable circuit transformers.

  • Support for three execution phases: compile time, circuit generation time, and circuit execution time. A dynamic lifting operation to allow circuit generation to be parametric on values generated at circuit execution time.

  • Extensive libraries of quantum functions, including: libraries for quantum integer and fixed-point arithmetic; the Quantum Fourier transform; an efficient Qram implementation; libraries for simulation of pseudo-classical circuits, Stabilizer circuits, and arbitrary circuits; libraries for exact and approximate decomposition of circuits into specific gate sets.

This package contains all of quipper, except for the rendering part, which has been separated into the quipper-rendering package to reduce dependencies.