Important extensions for performing any operation referencing more than one register, e.g. C-NOT where the control bit is in different register than the target bit.

This class contains every quantum gate operation implemented in Register class, which enables performing them on qubits in different registers.

Quantum.Operations GatesExtension

**Namespace:**Quantum.Operations

**Assembly:**Quantum (in Quantum.dll) Version: 1.0.0.0 (1.0.0.0)

The GatesExtension type exposes the following members.

Name | Description | |
---|---|---|

CNot | Performs a controlled not operation (C-NOT Gate). The target bit gets inverted if the control bit is enabled. The operation can be written as the unitary operation matrix: | |

CPhaseShift | Performs a conditional phase kick (or phase shift) on the registers' state by the angle PI / 2 ^ dist. The operation is represented by the unitary matrix: | |

Gate1 | Performs any arbitrary unitary operation on target qubit. The operation is described by unitary matrix of complex numbers, as follows: | |

Hadamard | Applies the Hadamard gate to the target qubit. The unitary matrix for this operation is: | |

InverseCPhaseShift | Performs a inversed conditional phase kick (or phase shift) on the registers' state by the angle PI / 2 ^ dist. The operation is represented by the unitary matrix: | |

PhaseKick | Performs a phase kick (or phase shift) on the the registers' state. The operation is represented by the unitary matrix: The controlled version of this operation can be written as an other unitary matrix: | |

PhaseScale | Adds a global phase on the registers' state. The operation is represented by the unitary matrix: | |

Reset | ||

RotateX | Performs a rotation of the target qubit about the x-axis of the Bloch sphere. The angle of rotation is given in first argument (double gamma). The unitary matrix of this operation is: | |

RotateY | Performs a rotation of the target qubit about the y-axis of the Bloch sphere. The angle of rotation is given in first argument (double gamma). The operation is represented by the unitary matrix: | |

RotateZ | Performs a rotation of the target qubit about the z-axis of the Bloch sphere. The angle of rotation is given in first argument (double gamma). The operation is represented by the unitary matrix: | |

SigmaX | Performs a Sigma X Pauli's Gate on target qubit. Actually, it is a simple Not. The unitary operation matrix is: | |

SigmaY | Performs a Sigma Y Pauli's Gate on target qubit. The operation is represented by unitary matrix: | |

SigmaZ | Performs a Sigma Z Pauli's Gate on target qubit. The operation is represented by unitary matrix: | |

SqrtX | Performs the Square Root of Not on the target qubit. The Square Root of Not Gate is such a gate, that applied twice, performs Not operation. The operation can be represented as the unitary matrix: | |

Toffoli | Applies Toffoli gate. If all of the control bits are enabled, the target bit gets inverted. This gate with more than two control bits is not considered elementary and is not available on all physical realizations of a quantum computer. Toffoli gate with two control bits can be represented by unitary matrix: |