Quipper.Monad

The ReadWrite monad

data ReadWrite a

The Circ monad

data Circ a

Some types

data Qubit

data Bit

type Endpoint

data Signed a

type Ctrl

type Qulist

type Bitlist

type Timestep

type InverseFlag

Conversions for wires, qubits, bits, endpoints

wire_of_qubit

wire_of_bit

wire_of_endpoint

wires_with_arity_of_endpoints

qubit_of_wire

bit_of_wire

endpoint_of_wire

endpoints_of_wires_in_arity

Bindings for qubits and bits

bind_qubit

bind_bit

unbind_qubit

unbind_bit

Controls for qubits and bits

clist_add_qubit

clist_add_bit

Namespace management

provide_simple_subroutine

provide_subroutine

provide_subroutines

call_subroutine

get_namespace

set_namespace

put_subroutine_definition

Basic gates

Gates in functional style

qnot

hadamard

gate_H

gate_X

gate_Y

gate_Z

gate_S

gate_S_inv

gate_T

gate_T_inv

gate_E

gate_E_inv

gate_omega

gate_V

gate_V_inv

swap_qubit

expZt

rGate

gate_W

gate_iX

gate_iX_inv

global_phase

global_phase_anchored_list

qmultinot_list

cmultinot_list

named_gate_qulist

named_rotation_qulist

cnot

swap_bit

Gates in imperative style

qnot_at

hadamard_at

gate_H_at

gate_X_at

gate_Y_at

gate_Z_at

gate_S_at

gate_S_inv_at

gate_T_at

gate_T_inv_at

gate_E_at

gate_E_inv_at

gate_omega_at

gate_V_at

gate_V_inv_at

swap_qubit_at

expZt_at

rGate_at

gate_W_at

gate_iX_at

gate_iX_inv_at

qmultinot_list_at

cmultinot_list_at

named_gate_qulist_at

named_rotation_qulist_at

cnot_at

swap_bit_at

Bitwise initialization and termination functions

qinit_qubit

qterm_qubit

qdiscard_qubit

prepare_qubit

unprepare_qubit

measure_qubit

cinit_bit

cterm_bit

cdiscard_bit

dterm_bit

Classical gates

cgate_xor

cgate_eq

cgate_if_bit

cgate_not

cgate_and

cgate_or

cgate

cgateinv

Subroutines

subroutine

Comments

comment_label

without_comments

Dynamic lifting

dynamic_lift_bit

Other circuit-building functions

qinit_plusminus

qinit_of_char

qinit_of_string

qinit_list

qterm_list

cinit_list

Higher-order functions

with_ancilla

with_controls

controlled

without_controls

without_controls_if

Deprecated special cases

qinit_qubit_ancilla

qterm_qubit_ancilla

Circuit transformers

identity_transformer

identity_dynamic_transformer

apply_circuit_with_bindings

apply_bcircuit_with_bindings

apply_dbcircuit_with_bindings

Encapsulated circuits

extract_simple

extract_general

extract_in_context

extract_in_current_namespace

unextract_in_context

reverse_encapsulated

with_reserve