Click or drag to resize
Operations Class
The Operations module provides definitions of basic gates. It also includes some handy operators for manipulating qubit lists, and some operations for building gates from existing gates.
Inheritance Hierarchy
SystemObject
  Microsoft.Research.LiquidOperations

Namespace: Microsoft.Research.Liquid
Assembly: Liquid1 (in Liquid1.dll) Version: 1.0.5981.24943 (1.0.*)
Syntax
F#
[<AbstractClassAttribute>]
[<SealedAttribute>]
type Operations =  class end

The Operations type exposes the following members.

Methods
  NameDescription
Public methodStatic memberAD
Amplitude Damping Channel using two Kraus operators (always put the most probable one first)
Public methodStatic memberAdj
Performs the adjoint of the parent gate. This only works if the parent gate is a unitary gate.
Public methodStatic memberBC
Performs a gate under classical control. The parent gate will be executed if the control qubit has a measured value of One.
Public methodStatic memberBCany
Performs a gate under classical control. This gate allows an arbitrary condition to be specified. The parent gate will be executed if the condition function evaluates to true.
Public methodStatic memberCCgate
Performs a parent gate under two-qubit quantum control. The parent must be a unitary gate.
Public methodStatic memberCCNOT
Performs a Toffoli or Controlled-Controlled-NOT gate
Public methodStatic memberCgate
Performs a parent gate under quantum control. The parent must be a unitary gate.
Public methodStatic memberCgateNC
Performs a parent gate under quantum control. The parent must be a unitary gate. The resulting gate is not cached.
Public methodStatic memberCNOT
Performs a quantum-controlled NOT gate
Public methodStatic memberCZ
Performs a quantum-controlled Pauli Z gate.
Public methodStatic memberDP
Depolarizing channel using four Kraus operators (always put the most probable one first)
Public methodStatic memberH
Performs a Hadamard gate.
Public methodStatic memberI
Performs a Pauli I (identify) gate.
Public methodStatic memberJM
Performs a joint parity measurement in the given basis on a list of qubits. The result of the measurement is stored in the Ket's symbol table. The state vector is collapsed according to the result of the measurement.
Public methodStatic memberJMx
Performs a joint parity measurement in the X basis on a list of qubits. The result of the measurement is stored in the Ket's symbol table. The state vector is collapsed according to the result of the measurement.
Public methodStatic memberJMz
Performs a joint parity measurement in the computational basis on a list of qubits. The result of the measurement is stored in the Ket's symbol table. The state vector is collapsed according to the result of the measurement.
Public methodStatic memberLabel
Adds a label to a circuit drawing. The label will appear above the line representing the qubit, in the center of the current column. The label will take up no logical space; it will not fill the current cell.
Public methodStatic memberLabelC
Adds a label to a circuit drawing. The label be centered in and will fill the current cell.
Public methodStatic memberLabelCD
Adds a framed label to a circuit drawing. The label be centered in and will fill the current cell. The label will have a box drawn tightly around it.
Public methodStatic memberLabelD
Adds a label to a circuit drawing. The label will appear below the line representing the qubit, in the center of the current column. The label will take up no logical space; it will not fill the current cell.
Public methodStatic memberLabelL
Adds a label to a circuit drawing. The label will appear centered on the line representing the qubit, on the left side of the current column. The label will take up no logical space; it will not fill the current cell.
Public methodStatic memberLabelR
Adds a label to a circuit drawing. The label will appear centered on the line representing the qubit, on the right side of the current column. The label will take up no logical space; it will not fill the current cell.
Public methodStatic memberLabelRaw
Adds a raw label to a circuit drawing. The provided string should contain the Q-Circuit commands used to draw the label. Note that labels drawn using this gate will only appear when rendered to "qc" format.
Public methodStatic memberLabelU
Adds a label to a circuit drawing. The label will appear above the line representing the qubit, in the center of the current column. The label will take up no logical space; it will not fill the current cell.
Public methodStatic memberLoadCache
Preload the cache with basic gates: Paulis, measurement, Hadamard, phase, CNOT, Toffoli, swap, and T.
Public methodStatic memberM
Performs a measurement of a single qubit in the computational basis. The result of the measurement is stored in the measured qubit; see Qubit.Bit. The state vector is collapsed according to the result of the measurement. The measured qubit becomes "classical" and must be reset before any further quantum gates are performed on it.
Public methodStatic memberNative
Performs any desired native operations at this point in the circuit.
Public methodStatic memberNativeDbg
Performs any desired native operations at this point in the circuit. This version doesn't appear in a circuit drawing.
Public methodStatic memberPC
Performs a gate based on a classical condition. The parent gate is executed if the test function returns true. Typically this condition is based on the results of one or more joint parity measurements.
Public methodStatic memberR
Performs a 2pi/2^K rotation gate gate.
Public methodStatic memberReset
Resets a qubit to a specified initial state after it has been measured. This allows quantum gates to be performed against the collapsed qubit. See the M gate.
Public methodStatic memberRestore
Resets a qubit after it has been measured. This allows quantum gates to be performed against the collapsed qubit. The initial state of the qubit will be its last measured state. See the M gate.
Public methodStatic memberS
Performs a phase gate.
Public methodStatic memberSWAP
Performs a swap gate, exchanging the quantum states of two qubits.
Public methodStatic memberT
Performs a pi/8 gate.
Public methodStatic memberT_BC
Performs a transverse classically-controlled gate.
Public methodStatic memberTransverse
Expands a parent gate to a transverse version.
Public methodStatic memberX
Performs a Pauli X gate.
Public methodStatic memberY
Performs a Pauli Y gate.
Public methodStatic memberZ
Performs a Pauli Z gate.
Top
Operators
  NameDescription
Public operatorStatic memberBangBang
In F# code, this operator is named !!. Builds a list of Qubits from a wide variety of possible inputs.
Public operatorStatic memberBangLess
In F# code, this operator is named !<. Gets the gate definition from a gate function. This is usually used to discover the "parent" gate.
Public operatorStatic memberGreaterBangLessa
In F# code, this operator is named >!<. Applies a function to each qubit in a list, passing a parameter to the function as well as each Qubit. The parameter values may be a list of a single value which is then passed to each invocation.
Public operatorStatic memberGreaterLess
In F# code, this operator is named ><. Applies a function to each qubit in a list of Qubits.
Top
See Also