Idris2Doc : Quantum.Types

Quantum.Types

Reexports

importpublic Control.Linear.LIO

Definitions

Q : Type->Type
  The Monad in which quantum computations are performed.

Visibility: public export
QSystem : Nat->Type
  A quantum system of size `n` where `n` represents the 
number of possible states in the system.

For a quantum system of 3 qubits, `n` would be 8.
because 2^3 = 8.

Visibility: public export
QCircuit : Nat->Type
  A quantum circuit is defined as a function that applies
a transformation to a quantum system.

NOTE: The input to the circuit is a linear argument.

Visibility: public export
runCircuitWith : QSystemn->QCircuitn->IO (QSystemn)
  Run a quantum circuit with a given initial system state.

Example: runCircuitWith (one >< zero >< zero) myCircuit
runs `myCircuit` with the initial state |100>.

Visibility: export
runCircuit : QCircuit (Sn) ->IO (QSystem (Sn))
  Run a quantum circuit with an initial state where each qubit is |0>.

Example: runCircuit myCircuit runs `myCircuit` with the initial state |000>.

Visibility: export
finish : (1_ : QSystemn) ->Q (QSystemn)
  Finish a quantum circuit by returning the given system state.

Visibility: export
zero : Matrix21Double
  Equivalent to |0>, or the column vector [1, 0].

Visibility: export
zeroT : Matrix12Double
  Equivalent to <0|, or the row vector [1, 0].

Visibility: export
one : Matrix21Double
  Equivalent to |1>, or the column vector [0, 1].

Visibility: export
oneT : Matrix12Double
  Equivalent to <1|, or the row vector [0, 1].

Visibility: export
showStateVec : NonZeron=>Matrixn1Double->String
  Convert a column state vector to a string representation.
Example: showStateVec zero =
|0> : [1.0]
|1> : [0.0]

Visibility: export
printStateVec : HasIOio=>NonZeron=>Matrixn1Double->io ()
  Prints a column state vector to the console. See `showStateVec`.

Visibility: export