# Microsoft.Quantum.Canon

## Operations

 AdiabaticStateEnergyUnitary Warning Deprecated Please use @"microsoft.quantum.simuilation.pnormalized". AndLadder Performs a controlled 'AND ladder' on the target qubits. This applies a unitary given by the following map on computational basis vectors: \begin{align} \ket{x_1, \dots, x_n} \ket{y_1, \dots, y_{n - 1}} \mapsto \ket{x_1, \dots, x_n} \ket{ y_1 \oplus (x_1 \land x_2), \dots, y_{n - 1} \oplus (x_1 \land x_2 \land \cdots \land x_{n - 1} }, \end{align} where $\ket{x_1, \dots, x_n}$ refers to the computational basis states of controls, and where $\ket{y_1, \dots, y_{n - 1}}$ refers to the computational basis states of targets. ApplyDiagonalUnitary Applies an array of complex phases to numeric basis states of a register of qubits. That is, this implements the diagonal unitary operation $U$ that applies a complex phase $e^{i \theta_j}$ on the $n$-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}e^{i\theta_j}\ket{j}\bra{j}$. ApplyFermionicSWAP Applies the Fermionic SWAP. ApplyIf Applies an operation conditioned on a classical bit. ApplyIfA Applies a adjointable operation conditioned on a classical bit. ApplyIfC Applies a controllable operation conditioned on a classical bit. ApplyIfCA Applies a unitary operation conditioned on a classical bit. ApplyIfElseB Applies one of two operations, depending on the value of a classical bit. ApplyIfElseBA Applies one of two adjointable operations, depending on the value of a classical bit. ApplyIfElseBC Applies one of two controllable operations, depending on the value of a classical bit. ApplyIfElseBCA Applies one of two unitary operations, depending on the value of a classical bit. ApplyIfElseR Applies one of two operations, depending on the value of a classical result. ApplyIfElseRA Applies one of two adjointable operations, depending on the value of a classical result. ApplyIfElseRC Applies one of two controllable operations, depending on the value of a classical result. ApplyIfElseRCA Applies one of two unitary operations, depending on the value of a classical result. ApplyIfOne Applies an operation conditioned on a classical result value being one. ApplyIfOneA Applies an adjointable operation conditioned on a classical result value being one. ApplyIfOneC Applies a controllable operation conditioned on a classical result value being one. ApplyIfOneCA Applies a unitary operation conditioned on a classical result value being one. ApplyIfZero Applies an operation conditioned on a classical result value being zero. ApplyIfZeroA Applies an adjointable operation conditioned on a classical result value being zero. ApplyIfZeroC Applies a controllable operation conditioned on a classical result value being zero. ApplyIfZeroCA Applies a unitary operation conditioned on a classical result value being zero. ApplyMultiControlledC Applies a multiply controlled version of a singly controlled operation. The modifier C indicates that the single-qubit operation is controllable. ApplyMultiControlledCA Applies a multiply controlled version of a singly controlled operation. The modifier CA indicates that the single-qubit operation is controllable and adjointable. ApplyPauli Given a multi-qubit Pauli operator, applies the corresponding operation to a register. ApplyPauliFromBitString Applies a Pauli operator on each qubit in an array if the corresponding bit of a Boolean array matches a given input. ApplyQuantumFourierTransform Performs the Quantum Fourier Transform on a quantum register containing an integer in the little-endian representation. ApplyQuantumFourierTransformBE Warning Deprecated This operation has been removed. ApplyQuantumFourierTransformLE ApplyReversedOpBigEndian Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpBE". ApplyReversedOpBigEndianA Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpBEA". ApplyReversedOpBigEndianC Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpBEC". ApplyReversedOpBigEndianCA Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpBEC". ApplyReversedOpLittleEndian Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpLE". ApplyReversedOpLittleEndianA Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpLEA". ApplyReversedOpLittleEndianC Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpLEC". ApplyReversedOpLittleEndianCA Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ApplyReversedOpLEC". ApplyRippleCarryComparatorBE Warning Deprecated This operation has been removed. ApplyRippleCarryComparatorLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.CompareUsingRippleCarry". ApplyToEach Applies a single-qubit operation to each element in a register. ApplyToEachA Applies a single-qubit operation to each element in a register. The modifier A indicates that the single-qubit operation is adjointable. ApplyToEachC Applies a single-qubit operation to each element in a register. The modifier C indicates that the single-qubit operation is controllable. ApplyToEachCA Applies a single-qubit operation to each element in a register. The modifier CA indicates that the single-qubit operation is controllable and adjointable. ApplyToEachIndex Applies a single-qubit operation to each indexed element in a register. ApplyToEachIndexA Applies a single-qubit operation to each indexed element in a register. The modifier A indicates that the single-qubit operation is adjointable. ApplyToEachIndexC Applies a single-qubit operation to each indexed element in a register. The modifier C indicates that the single-qubit operation is controllable. ApplyToEachIndexCA Applies a single-qubit operation to each indexed element in a register. The modifier CA indicates that the single-qubit operation is adjointable and controllable. ApplyToFirstQubit Applies an operation to the first qubit in the register. ApplyToFirstQubitA Applies an operation to the first qubit in the register. The modifier A indicates that the operation is adjointable. ApplyToFirstQubitC Applies operation op to the first qubit in the register. The modifier C indicates that the operation is controllable. ApplyToFirstQubitCA Applies operation op to the first qubit in the register. The modifier CA indicates that the operation is controllable and adjointable. ApplyToFirstThreeQubits Applies an operation to the first three qubits in the register. ApplyToFirstThreeQubitsA Applies an operation to the first three qubits in the register. The modifier A indicates that the operation is adjointable. ApplyToFirstThreeQubitsC Applies an operation to the first three qubits in the register. The modifier C indicates that the operation is controllable. ApplyToFirstThreeQubitsCA Applies an operation to the first three qubits in the register. The modifier CA indicates that the operation is controllable and adjointable. ApplyToFirstTwoQubits Applies an operation to the first two qubits in the register. ApplyToFirstTwoQubitsA Applies an operation to the first two qubits in the register. The modifier A indicates that the operation is adjointable. ApplyToFirstTwoQubitsC Applies an operation to the first two qubits in the register. The modifier C indicates that the operation is controllable. ApplyToFirstTwoQubitsCA Applies an operation to the first two qubits in the register. The modifier CA indicates that the operation is controllable and adjointable. ApplyToPartition Applies a pair of operations to a given partition of a register into two parts. ApplyToPartitionA Applies a pair of operations to a given partition of a register into two parts. The modifier A indicates that the operation is adjointable. ApplyToPartitionC Applies a pair of operations to a given partition of a register into two parts. The modifier C indicates that the operation is controllable. ApplyToPartitionCA Applies a pair of operations to a given partition of a register into two parts. The modifier CA indicates that the operation is controllable and adjointable. ApplyToSubregister Applies an operation to a subregister of a register, with qubits specified by an array of their indices. ApplyToSubregisterA Applies an operation to a subregister of a register, with qubits specified by an array of their indices. The modifier A indicates that the operation is adjointable. ApplyToSubregisterC Applies an operation to a subregister of a register, with qubits specified by an array of their indices. The modifier C indicates that the operation is controllable. ApplyToSubregisterCA Applies an operation to a subregister of a register, with qubits specified by an array of their indices. The modifier CA indicates that the operation is controllable and adjointable. ApplyWith Given two operations, applies one as conjugated with the other. ApplyWithA Given two operations, applies one as conjugated with the other. ApplyWithC ApplyWithCA Given two operations, applies one as conjugated with the other. ApplyWithInputTransformation Given an operation that accepts some input, a function that returns an output compatible with that operation, and an input to that function, applies the operation using the function to transform the input to a form expected by the operation. ApplyWithInputTransformationA Given an operation that accepts some input, a function that returns an output compatible with that operation, and an input to that function, applies the operation using the function to transform the input to a form expected by the operation. ApplyWithInputTransformationC Given an operation that accepts some input, a function that returns an output compatible with that operation, and an input to that function, applies the operation using the function to transform the input to a form expected by the operation. ApplyWithInputTransformationCA Given an operation that accepts some input, a function that returns an output compatible with that operation, and an input to that function, applies the operation using the function to transform the input to a form expected by the operation. ApproximateQFT Apply the Approximate Quantum Fourier Transform (AQFT) to a quantum register. AssertHighestBit Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.AssertMostSignificantBit". AssertLessThanPhaseLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.AssertPhaseLessThan". AssertPhase Asserts that the phase of an equal superposition state has the expected value. Specifically, asserts that the phase $\phi$ of a quantum state that may be expressed as $\frac{e^{i t}}{\sqrt{2}}(e^{i\phi}\ket{0} + e^{-i\phi}\ket{1})$ for some arbitrary real t has the expected value. AssertProbIntBE Warning Deprecated This operation has been removed. CNOTChain Computes the parity of an array of qubits in-place. It follows the pattern $\ket{q_0} \ket{q_0 \oplus q_1} \ket{q_0 \oplus q_1 \oplus q_2} \cdots$. CNOTChainTarget Computes the parity of an array of qubits into a target qubit. If the array is initially in the state $\ket{q_0} \ket{q_1} \cdots \ket{q_{\text{target}}}$, the final state is given by $\ket{q_0} \ket{q_1 \oplus q_0} \cdots \ket{q_{n - 1} \oplus \cdots \oplus q_0 \oplus q_{\text{target}}}$. CopyMostSignificantBitLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.CopyMostSignificantBit". CX Applies the controlled-X (CX) gate to a pair of qubits. \begin{align} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{align}, where rows and columns are organized as in the quantum concepts guide. CY Applies the controlled-Y (CY) gate to a pair of qubits. \begin{align} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & -i \\ 0 & 0 & i & 0 \end{align}, where rows and columns are organized as in the quantum concepts guide. CZ Applies the controlled-Z (CZ) gate to a pair of qubits. \begin{align} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{align}, where rows and columns are organized as in the quantum concepts guide. Delay Applies a given operation with a delay. DelayA Applies a given operation with a delay. DelayC Applies a given operation with a delay. DelayCA Applies a given operation with a delay. HY Applies the Y-basis analog to the Hadamard transformation that interchanges the Z and Y axes. The Y Hadamard transformation $H_Y = S H$ on a single qubit is: \begin{align} H_Y \mathrel{:=} \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ i & -i \end{bmatrix}. \end{align} InPlaceXorBE Warning Deprecated This operation has been removed. InPlaceXorLE Warning Deprecated Please use @"Microsoft.Quantum.Measurement.ApplyXorInPlace". IntegerIncrementLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.IncrementByInteger". IntegerIncrementPhaseLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.IncrementPhaseByInteger". IterateThroughCartesianPower Iterates a variable, say arr, through Cartesian product [ 0, bound - 1 ] × [ 0, bound - 1 ] × [ 0, bound - 1 ] and calls op(arr) for every element of the Cartesian product IterateThroughCartesianProduct Iterates a variable, say arr, through a Cartesian product [ 0, bounds[0]-1 ] × [ 0, bounds[1]-1 ] × [ 0, bounds[Length(bounds)-1]-1 ] and calls op(arr) for every element of the Cartesian product MeasureIntegerBE Warning Deprecated This operation has been removed. ModularAddProductLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.MultiplyAndAddByModularInteger". ModularAddProductPhaseLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.MultiplyAndAddPhaseByModularInteger". ModularIncrementLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.ModularIncrementByInteger". ModularIncrementPhaseLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.IncrementPhaseByModularInteger". ModularMultiplyByConstantLE Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.MultiplyByModularInteger". MultiplexOperations Applies an array of operations controlled by an array of number states. That is, applies Multiply-controlled unitary operation $U$ that applies a unitary $V_j$ when controlled by $n$-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}\ket{j}\bra{j}\otimes V_j$. MultiplexOperationsBruteForceFromGenerator Applies multiply-controlled unitary operation $U$ that applies a unitary $V_j$ when controlled by n-qubit number state $\ket{j}$. $U = \sum^{N-1}_{j=0}\ket{j}\bra{j}\otimes V_j$. MultiplexOperationsFromGenerator Applies a multiply-controlled unitary operation $U$ that applies a unitary $V_j$ when controlled by n-qubit number state $\ket{j}$. $U = \sum^{N-1}_{j=0}\ket{j}\bra{j}\otimes V_j$. MultiplexPauli Applies a Pauli rotation conditioned on an array of qubits. This applies the multiply-controlled unitary operation $U$ that performs rotations by angle $\theta_j$ about single-qubit Pauli operator $P$ when controlled by the $n$-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}\ket{j}\bra{j}\otimes e^{i P \theta_j}$. MultiplexZ Applies a Pauli Z rotation conditioned on an array of qubits. This applies the multiply-controlled unitary operation $U$ that performs rotations by angle $\theta_j$ about single-qubit Pauli operator $Z$ when controlled by the $n$-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}\ket{j}\bra{j}\otimes e^{i Z \theta_j}$. NoOp Performs the identity operation (no-op) on an argument. QFT Performs the Quantum Fourier Transform on a quantum register containing an integer in the big-endian representation. QFTLE Performs the Quantum Fourier Transform on a quantum register containing an integer in the little-endian representation. RAll0 Performs a phase shift operation. $R=\boldone-(1-e^{i \phi})\ket{0\cdots 0}\bra{0\cdots 0}$. RAll1 Performs a phase shift operation. $R=\boldone-(1-e^{i \phi})\ket{1\cdots 1}\bra{1\cdots 1}$. SwapReverseRegister Uses SWAP gates to Reversed the order of the qubits in a register. With Warning Deprecated Please use @"Microsoft.Quantum.Canon.ApplyWith". WithA Warning Deprecated Please use @"Microsoft.Quantum.Canon.ApplyWithA". WithC Warning Deprecated Please use @"Microsoft.Quantum.Canon.ApplyWithC". WithCA Warning Deprecated Please use @"Microsoft.Quantum.Canon.ApplyWithCA".

## Functions

 AsQubitArray Warning Deprecated This function has been removed. AssertAlmostEqual Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.NearEqualityFactD" instead. AssertAlmostEqualTol Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.EqualityWithinToleranceFact" instead. AssertBoolArrayEqual Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.AllEqualityFactB" instead. AssertBoolEqual Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.EqualityFactB" instead. AssertIntEqual Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.EqualityFactI" instead. AssertResultEqual Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.EqualityFactR" instead. BigEndianToLittleEndian Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.BigEndianAsLittleEndian". Bind Warning Deprecated Please use Bound. BindA Warning Deprecated Please use BoundA. BindC Warning Deprecated Please use BoundC. BindCA Warning Deprecated Please use BoundCA. BitSize Warning Deprecated Please use BitSizeI. BoolArrFromPositiveInt Warning Deprecated Please use IntAsBoolArray. BoolArrFromResultArr Warning Deprecated Please use ResultArrayAsBoolArray. BoolFromResult Warning Deprecated Please use ResultAsBool. Bound Given an array of operations acting on a single input, produces a new operation that performs each given operation in sequence. BoundA Given an array of operations acting on a single input, produces a new operation that performs each given operation in sequence. The modifier A indicates that all operations in the array are adjointable. BoundC Given an array of operations acting on a single input, produces a new operation that performs each given operation in sequence. The modifier C indicates that all operations in the array are controllable. BoundCA Given an array of operations acting on a single input, produces a new operation that performs each given operation in sequence. The modifier CA indicates that all operations in the array are adjointable and controllable. CControlled Given an operation op, returns a new operation which applies the op if a classical control bit is true. If false, nothing happens. CControlledA Given an operation op, returns a new operation which applies the op if a classical control bit is true. If false, nothing happens. The modifier A indicates that the operation is adjointable. CControlledC Given an operation op, returns a new operation which applies the op if a classical control bit is true. If false, nothing happens. The modifier C indicates that the operation is controllable. CControlledCA Given an operation op, returns a new operation which applies the op if a classical control bit is true. If false, nothing happens. The modifier CA indicates that the operation is controllable and adjointable. Compose Generates the composition of two functions. That is, given two functions $f$ and $g$, returns a new function representing $f \circ g$. ConjugatedBy Given outer and inner operations, returns a new operation that conjugates the inner operation by the outer operation. ConjugatedByA Given outer and inner operations, returns a new operation that conjugates the inner operation by the outer operation. ConjugatedByC Given outer and inner operations, returns a new operation that conjugates the inner operation by the outer operation. ConjugatedByCA Given outer and inner operations, returns a new operation that conjugates the inner operation by the outer operation. ContinuedFractionConvergent Warning Deprecated Please use ContinuedFractionConvergentI. ControlledOnBitString Returns a unitary operator that applies an oracle on the target register if the control register state corresponds to a specified bit mask. ControlledOnInt Returns a unitary operator that applies an oracle on the target register if the control register state corresponds to a specified positive integer. CurriedOp Returns a curried version of an operation on two inputs. That is, given an operation with two inputs, this function applies Curry's isomorphism $f(x, y) \equiv f(x)(y)$ to return an operation of one input which returns an operation of one input. CurryOp Warning Deprecated Please use CurriedOp. DecomposeIntoTimeStepsCA Returns an operation implementing the Trotter–Suzuki integrator for a given operation. Delayed Returns an operation that applies given operation with given argument. DelayedA Returns an operation that applies given operation with given argument. DelayedC Returns an operation that applies given operation with given argument. DelayedCA Returns an operation that applies given operation with given argument. EmbedPauli Given a single-qubit Pauli operator and the index of a qubit, returns a multi-qubit Pauli operator with the given single-qubit operator at that index and PauliI at every other index. ExpMod Warning Deprecated Please use ExpModI. ExtendedGCD Warning Deprecated Please use ExtendedGreatestCommonDivisorI. Filter Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Filtered" instead. ForAll Warning Deprecated Please use @"Microsoft.Quantum.Arrays.All" instead. ForAny Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Any" instead. Fst Given a pair, returns its first element. GCD Warning Deprecated Please use GreatestCommonDivisorI. Ignore Ignores the output of an operation or function. IntAbs Warning Deprecated This function has been removed. IntArrayFromRange Warning Deprecated Please use RangeAsIntArray. IntMax Warning Deprecated This function has been removed. InverseMod Warning Deprecated Please use InverseModI. IsCoprime Warning Deprecated Please use GreatestCommonDivisorI. IsResultOne Tests if a given Result value is equal to One. IsResultZero Tests if a given Result value is equal to Zero. LittleEndianToBigEndian Warning Deprecated Please use @"Microsoft.Quantum.Arithmetic.LittleEndianAsBigEndian". Map Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Mapped" instead. MapIndex Warning Deprecated Please use @"Microsoft.Quantum.Arrays.MappedByIndex" instead. Modulus Warning Deprecated Please use ModulusI. MultiplexerBruteForceFromGenerator Returns a multiply-controlled unitary operation $U$ that applies a unitary $V_j$ when controlled by n-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}\ket{j}\bra{j}\otimes V_j$. MultiplexerFromGenerator Returns a multiply-controlled unitary operation $U$ that applies a unitary $V_j$ when controlled by n-qubit number state $\ket{j}$. $U = \sum^{2^n-1}_{j=0}\ket{j}\bra{j}\otimes V_j$. NearEqualityFact Warning Deprecated Please use @"Microsoft.Quantum.Diagnostics.NearEqualityFactD" instead. OperationPow Raises an operation to a power. That is, given an operation representing a gate $U$, returns a new operation $U^m$ for a power $m$. OperationPowA Raises an operation to a power. The modifier A indicates that the operation is adjointable. That is, given an operation representing a gate $U$, returns a new operation $U^m$ for a power $m$. OperationPowC Raises an operation to a power. The modifier C indicates that the operation is controllable. That is, given an operation representing a gate $U$, returns a new operation $U^m$ for a power $m$. OperationPowCA Raises an operation to a power. The modifier A indicates that the operation is controllable and adjointable. That is, given an operation representing a gate $U$, returns a new operation $U^m$ for a power $m$. Pad Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Padded" instead. PauliFromBitString Warning Deprecated Please use BoolArrayAsPauli. PNormalize Warning Deprecated Please use PNormalized. PositiveIntFromBoolArr Warning Deprecated Please use BoolArrayAsInt. PositiveIntFromResultArr Warning Deprecated Please use @"microsoft.quantum.canon.resultarrayasint". RestrictedToSubregister Restricts an operation to an array of indices of a register, i.e., a subregister. RestrictedToSubregisterA Restricts an operation to an array of indices of a register, i.e., a subregister. The modifier A indicates that the operation is adjointable. RestrictedToSubregisterC Restricts an operation to an array of indices of a register, i.e., a subregister. The modifier C indicates that the operation is controllable. RestrictedToSubregisterCA Restricts an operation to an array of indices of a register, i.e., a subregister. The modifier CA indicates that the operation is controllable and adjointable. RestrictToSubregister Warning Deprecated Please use RestrictedToSubregister. RestrictToSubregisterA Warning Deprecated Please use RestrictedToSubregisterA. RestrictToSubregisterC Warning Deprecated Please use RestrictedToSubregisterC. RestrictToSubregisterCA Warning Deprecated Please use RestrictedToSubregisterCA. ResultArrFromBoolArr Warning Deprecated Please use ResultArrayAsBoolArray. ResultAsInt Warning Deprecated Please use ResultArrayAsInt. ResultFromBool Warning Deprecated Please use BoolAsResult. Reverse Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Reversed" instead. Snd Given a pair, returns its second element. SplitArray Warning Deprecated Please use @"Microsoft.Quantum.Arrays.Partitioned" instead. StackCapacity Retrieves the capacity of a ResultStack. StackLength Retrieves the number of elements stored in a ResultStack. StackNew Creates a new empty ResultStack with given capacity. StackPeek Retrieves the topmost element of a ResultStack. StackPop Removes the topmost element from a ResultStack. StackPush Pushes a new element onto a ResultStack. ToOperation Warning Deprecated Please use FunctionAsOperation. TransformedOperation Given a function and an operation, returns a new operation whose input is transformed by the given function. TransformedOperationA Given a function and an operation, returns a new operation whose input is transformed by the given function. TransformedOperationC Given a function and an operation, returns a new operation whose input is transformed by the given function. TransformedOperationCA Given a function and an operation, returns a new operation whose input is transformed by the given function. UncurriedOp Given a function which returns operations, returns a new operation which takes both inputs as a tuple. UncurriedOpA Given a function which returns operations, returns a new operation which takes both inputs as a tuple. The modifier A indicates that the operations are adjointable. UncurriedOpC Given a function which returns operations, returns a new operation which takes both inputs as a tuple. The modifier C indicates that the operations are controllable. UncurriedOpCA Given a function which returns operations, returns a new operation which takes both inputs as a tuple. The modifier CA indicates that the operations are controllable and adjointable. UncurryOp Warning Deprecated Please use UncurriedOp. UncurryOpA Warning Deprecated Please use UncurriedOpA. UncurryOpC Warning Deprecated Please use UncurriedOpC. UncurryOpCA Warning Deprecated Please use UncurriedOpCA. WeightOnePaulis Returns an array of all weight-1 Pauli operators on a given number of qubits. XOR This computes the exclusive-OR of two bits.

## User Defined Types

 CCNOTop The signature type of CCNOT gate. ResultStack A last-in-first-out stack of Result variables. The stack consists of an integer capacity, a stack pointer and a Result array.