*-- | This library provides functions for optimizing classical*
*-- circuits. It is intended to reduce the size of*
*-- automatically-generated circuits, such as those that are built*
*-- using Quipper's @build_circuit@ keyword.*
*-- *
*-- Note: the resulting circuit is not expected to be optimal in*
*-- absolute terms. In general, finding the smallest possible circuit*
*-- to represent a given boolean function is an NP-hard*
*-- problem. Rather, we transform the input circuit by applying a*
*-- number of heuristics and an algebraic optimization technique. This*
*-- results in the removal of redundant qubits and gates that are*
*-- typical for machine-generated circuits. It generally decreases the*
*-- number of gates and ancillas.*
*-- *
*-- For example, consider the circuit for a simple adder, as generated*
*-- by the @build_circuit@ mechanism:*
*-- *
*-- \[image adder-unoptimized.png]*
*-- *
*-- The optimized version, as generated by 'simplify_classical', looks*
*-- like this:*
*-- *
*-- \[image adder-optimized.png]*
*-- *
*-- The above example can be found in the file @tests/OptimTest.hs@.*
__module__ QuipperLib.ClassicalOptim (
simplify_classical,
classical_to_reversible_optim,
box_classical_to_reversible_optim
) __where__
__import__ QuipperLib.ClassicalOptim.QuipperInterface