Module Se.SBackend

A Symbolic backend to simulate quantum circuits

type qstate = Symbolic.Expr.t array
val iteration_indices : int -> int -> int * int
val init : int -> Symbolic.Expr.t array

Initialises a state vector given a number of qubits.

val controls_check : int -> Circuit.adr list -> bool

Check if an iteration should execute based on the controls of the gate.

val cpx_inv_sqrt_2 : Symbolic.Expr.t
val cpx_2_pi : Symbolic.Expr.t
val cpx_pow_2 : int -> Symbolic.Expr.t
val cpx_omega : int -> Symbolic.Expr.t
val matrix_for_gate : Circuit.gate_kind -> matrix

Returns the symbolic matrix corresponding to a gate kind.

val apply_gate : Circuit.gate -> qstate -> unit

Applies a gate to a state vector using symbolic QWM (2^(n-1) iterations).

val repr : 'a -> 'b