This interface defines the behavior for quantum registers, which are collections
of qubits. Direct implementations of this interface should be named QuantumRegister.

Declaration Syntax

C# | Visual Basic | Visual C++ |

public interface IQuantumRegister : ICoveObject, IEnumerable<IQuantumRegister>, IEnumerable

Public Interface IQuantumRegister _ Implements ICoveObject, IEnumerable(Of IQuantumRegister), _ IEnumerable

public interface class IQuantumRegister : ICoveObject, IEnumerable<IQuantumRegister^>, IEnumerable

Members

All Members | Methods | ||||

Icon | Member | Description |
---|---|---|

ApplyOperation(IQuantumOperation) |
Apply a generic operation to the register.
| |

ApplyOperation(IQuantumOperation, array<Int32>[]()[]) |
Apply a generic operation to the specified qubits.
| |

ApplyOperationAll(IQubitOperation) |
Apply the single qubit operation to all qubits in the register.
| |

ApplyOperations(IEnumerable<(Of <(IQuantumOperation>)>)) |
Apply a series of operations to the quantum register. If any of the operations
are invalid and an exception is thrown then the state of the register is not altered.
| |

EliminateDuplicateReferences()()() |
It is possible to create a register with references to the same qubit. This
goes through and eliminates duplicate references, leaving the reference at
the lowest index.
| |

GetCompleteRegister()()() |
Slices can be used to obtain subsets of a register. This method returns a register
that contains the whole set of qubits that have been included in this register. This
register will contain the qubits in their original order, regardless of slices.
| |

GetEnumerator()()() | Returns an enumerator that iterates through the collection. (Inherited from IEnumerable<(Of <(IQuantumRegister>)>).) | |

GetEnumerator()()() | Returns an enumerator that iterates through a collection. (Inherited from IEnumerable.) | |

GetIndexes(Int32, Int32) |
Get an array of indexes. This can be used when passing indexes
to methods that apply operations
| |

GetIndexes()()() |
Get an array of indexes. This can be used when passing indexes
to methods that apply operations
| |

GetLength()()() |
Get the length of the quantum register.
| |

GetLocation()()() |
Returns the location of the quantum resource.
| |

GetTotalLength()()() |
Slicing may result in a subset of the register being exposed. This gets the
total length of the register, which includes qubits that may be hidden
through slicing.
| |

InsertQubits(Int32, IQuantumRegister) |
Insert a quantum register into this one.
| |

InsertQubits(Int32, array<IQuantumRegister>[]()[]) |
Insert quantum registers into this one.
| |

InsertQubits(Int32, IQubit) |
Insert a single qubit into the register.
| |

InsertQubits(Int32, array<IQubit>[]()[]) |
Insert multiple qubits to the register.
| |

InsertQubits(Int32, Int32) |
Insert qubits into an arbitrary location in the register.
| |

InsertQubits(Int32, Int32, Boolean) |
Insert qubits into an arbitrary location in the register.
| |

InsertQubitsAtBeginning(IQuantumRegister) |
Add another register to the beginning of this one.
| |

InsertQubitsAtBeginning(array<IQuantumRegister>[]()[]) |
Append a set of registers to the beginning of this register, in the same order as
the array.
| |

InsertQubitsAtBeginning(IQubit) |
Add a single qubit to the beginning of the register.
| |

InsertQubitsAtBeginning(array<IQubit>[]()[]) |
Add a series of qubits to the beginning of the register, in the same order as specified
in the array.
| |

InsertQubitsAtBeginning(Int32) |
Insert a number of qubits at the beginning of the register. All other
qubits are shifted to higher indexes.
| |

InsertQubitsAtBeginning(Int32, Boolean) |
Insert a number of qubits at the beginning of the register. All other
qubits are shifted to higher indexes.
| |

InsertQubitsAtEnd(IQuantumRegister) |
Append another register to this one.
| |

InsertQubitsAtEnd(array<IQuantumRegister>[]()[]) |
Append a set of registers to this register, in the same order as
the array.
| |

InsertQubitsAtEnd(IQubit) |
Append a single qubit to the register.
| |

InsertQubitsAtEnd(Int32) |
Append a specific number of qubits to the register.
| |

InsertQubitsAtEnd(Int32, Boolean) |
Append a specific number of qubits to the register, initialized to the specified
value.
| |

Measure()()() |
Perform a measurement on the quantum register, collapsing to an absolute state.
| |

Measure(ClassicalResult) |
Measure the quantum register and put the results in ReturnValue. A user
can subclass ClassicalResult with their own class and pass that in if
needed.
| |

Measure(IEnumerable<(Of <(Int32>)>)) |
Measure a set of qubits in the register.
| |

Measure(IEnumerable<(Of <(Int32>)>), ClassicalResult) |
Measure a set of qubits in the register. A user
can subclass ClassicalResult with their own class and pass that in if
needed.
| |

Measure(Int32) |
Measure one qubit in the register.
| |

Measure(Int32, ClassicalResult) |
Measure one qubit in the register.. A user
can subclass ClassicalResult with their own class and pass that in if
needed.
| |

OperationCNot()()() |
Apply the CNot operation to the register. (Must be a 2 qubit register.)
The first qubit is the control and the second is the target.
| |

OperationCNot(Int32, Int32) |
Apply the CNot operation to the register.
| |

OperationCNot(array<Int32>[]()[]) |
Apply the CNot operation to the register. (Must be a 2 qubit register.)
The first qubit is the control and the second is the target.
| |

OperationControlledU(IQubitOperation, Int32) |
Perform the TargetOperation on all qubits except the qubit at ControlIndex
if the qubit at ControlIndex is |1>. Else there is no change in the register.
This arbitrary application of a single qubit operator to n qubits in a register
based on a control qubit is called ControlU.
| |

OperationControlledU(IQubitOperation, Int32, array<Int32>[]()[]) |
Perform the TargetOperation on the qubits at TargetIndexes if ControlIndex is |1>.
| |

OperationFredkin()()() |
Perform the Fredkin operation (controlled swap).
| |

OperationFredkin(Int32, Int32, Int32) |
Perform the Fredkin operation (controlled swap).
| |

OperationFredkin(array<Int32>[]()[]) |
Perform the Fredkin operation (controlled swap).
| |

OperationHadamard()()() |
Perform the Hadamard (square root of Not) operation on a qubit.
| |

OperationHadamard(Int32) |
Apply the Hadamard (square root of Not) operation to the specified qubit.
| |

OperationHadamard(array<Int32>[]()[]) |
Perform the Hadamard (square root of Not) operation to the specified qubits.
| |

OperationHadamardAll()()() |
Apply the Hadamard (square root of Not) operation to all the qubits in the
register.
| |

OperationIdentity()()() |
Apply the identity operation to a qubit.
| |

OperationIdentity(Int32) |
Apply the identity operation to the qubit at the specified index.
| |

OperationIdentity(array<Int32>[]()[]) |
Apply the identity operation to the qubits at the specified indexes.
| |

OperationIdentityAll()()() |
Apply the identity operation to all the qubits in the register.
| |

OperationInverseQuantumFourierTransform()()() |
Apply the inverse Quantum Fourier Transform (QFT) to the register.
| |

OperationNot()()() |
Apply the Not (X gate) operation to the qubit.
| |

OperationNot(Int32) |
Apply the Not (X gate) operation to the qubit at the specified index.
| |

OperationNot(array<Int32>[]()[]) |
Apply the Not (X gate) operation to the qubits at the specified indexes.
| |

OperationNotAll()()() |
Apply the Not (X gate) operation to all the qubits in the register.
| |

OperationQuantumFourierTransform()()() |
Apply the Quantum Fourier Transformation (QFT) to the register.
| |

OperationSGate()()() |
Apply the S gate (phase gate) to the qubit.
| |

OperationSGate(Int32) |
Apply the S gate (phase gate) to the qubit at the specified index.
| |

OperationSGate(array<Int32>[]()[]) |
Apply the S gate (phase gate) to the qubits at the indexes specified.
| |

OperationSGateAll()()() |
Apply the S gate (phase gate) operation to all the qubits in the register.
| |

OperationSwap()()() |
Apply the swap operation to the qubits in the register.
| |

OperationSwap(Int32, Int32) |
Perform the swap operation on the two qubits specified.
| |

OperationSwap(array<Int32>[]()[]) |
Perform the swap operation on the qubits specified.
| |

OperationTGate()()() |
Perform the T gate (pi/8 phase gate) operation on the qubit.
| |

OperationTGate(Int32) |
Perform the T gate (pi/8 phase gate) operation on the qubit at the specified
index.
| |

OperationTGate(array<Int32>[]()[]) |
Perform the T gate (pi/8 phase gate) operation on the qubits at the
specified indexes.
| |

OperationTGateAll()()() |
Apply the T gate (pi/8 phase gate) operation to all the qubits
in the register.
| |

OperationToffoli()()() |
Apply the Toffoli (controlled controlled not) operation to the register.
The lowest two indexes are the control and the highest is the target.
| |

OperationToffoli(Int32, Int32, Int32) |
Apply the Toffoli (controlled controlled not) operation to the register.
| |

OperationToffoli(array<Int32>[]()[]) |
Perform the Toffoli (controlled controlled not) operation to the register.
| |

OperationYGate()()() |
Perform the Y gate operation to the qubit.
| |

OperationYGate(Int32) |
Perform the Y gate operation to the qubit at the specified index.
| |

OperationYGate(array<Int32>[]()[]) |
Perform the Y gate operation to the qubits at the specified indexes.
| |

OperationYGateAll()()() |
Perform the Y gate operation to all the qubits in the register.
| |

OperationZGate()()() |
Perform the Z gate operation to the qubit in the register.
| |

OperationZGate(Int32) |
Perform the Z gate operation to the qubit at the specified index.
| |

OperationZGate(array<Int32>[]()[]) |
Perform the Z gate operation to the qubits at the specified indexes.
| |

OperationZGateAll()()() |
Apply the Z gate operation to all the qubits in a register.
| |

SetAllQubitsTo(Boolean) |
Set all the qubits of the register to the specified value.
| |

SetLabelOne(String) |
Change the label of 1
| |

SetLabels(String, String) |
Set both the label for |0> and label for |1> in one call
| |

SetLabelZero(String) |
Change the label of 0
| |

SetLocation(String) |
Set the location of the quantum resource. Note that this resets
the state of all of the qubits.
| |

SetQubit(Int32, Boolean) |
Set a qubit to a particular state.
| |

SetQubits(Int32, ClassicalResult) |
Set the qubits starting at StartingIndex to the classical result SetTo.
| |

SetQubits(ClassicalResult) |
Set the qubits starting at the first index to the classical result SetTo.
| |

SetQubits(array<Int32>[]()[], Boolean) |
Set the specified qubits to the value specified.
| |

SetQubits(array<Boolean>[]()[]) |
Set qubits based on the boolean values given.
| |

Slice(Int32, Int32) |
Returns a slice (subset) of the quantum register.
| |

Slice(Int32, Int32, IQuantumOperation) |
Slice (subset) a quantum register and perform an operation on the slice.
| |

Slice(Int32, Int32, IEnumerable<(Of <(IQuantumOperation>)>)) |
Slice (subset) a quantum register and perform operations on the slice.
| |

SliceFrom(Int32) |
Returns a slice (subset) of the register from StartIndex to the end.
| |

SliceFrom(Int32, IQuantumOperation) |
Returns a slice (subset) of the register from StartIndex to the end, then has
the operation applied to it.
| |

SliceFrom(Int32, IEnumerable<(Of <(IQuantumOperation>)>)) |
Returns a slice (subset) of the register from StartIndex to the end, then has
the operations applied to it.
| |

SliceReorder(IEnumerable<(Of <(Int32>)>)) |
Reorder the qubits in any arbitrary order. NewIndexes is an array of integers that must
equal the length of this register. The qubit at each index in that array will be moved
to the value in the array. Example: the register this is called on contains 3 qubits, indexed
0 - 2. If the array {2, 0, 1} is passed then: the qubit at index 0 will be moved to index 2;
the qubit at index 1 will be moved to index 0; the qubit at index 2 will be moved to index 1.
| |

SliceReverse(Int32, Int32) |
Returns a slice (subset) of the quantum register, but the ordering of the
qubits in the returned register are reversed.
| |

SliceReverse()()() |
Returns a quantum register with the qubits reversed.
| |

SliceReverse(Int32, Int32, IQuantumOperation) |
Returns a slice (subset) of the quantum register, but the ordering of the
qubits in the returned register are reversed then have the specified operation
applied.
| |

SliceReverse(IQuantumOperation) |
Returns a quantum register with the qubits reversed, then the operation applied.
| |

SliceReverse(Int32, Int32, IEnumerable<(Of <(IQuantumOperation>)>)) |
Returns a slice (subset) of the quantum register, but the ordering of the
qubits in the returned register are reversed then have the specified operations
applied.
| |

SliceReverse(IEnumerable<(Of <(IQuantumOperation>)>)) |
Returns a quantum register with the qubits reversed, then the operations applied.
| |

SliceSubset(IEnumerable<(Of <(Int32>)>)) |
Returns a slice (subset) of the quantum register containing the qubits
specified in Indexes, and in that order.
| |

SliceSubset(IEnumerable<(Of <(Int32>)>), IQuantumOperation) |
Returns a slice (subset) of the quantum register containing the qubits
specified in Indexes, and in that order. The operation is then
applied to the slice.
| |

SliceSubset(IEnumerable<(Of <(Int32>)>), IEnumerable<(Of <(IQuantumOperation>)>)) |
Returns a slice (subset) of the quantum register containing the qubits
specified in Indexes, and in that order. The specified operations are
then applied.
| |

SliceTo(Int32) |
Returns a slice (subset) of the register from the beginning to EndIndex.
| |

SliceTo(Int32, IQuantumOperation) |
Returns a slice (subset) of the register from the beginning to EndIndex, then
has the operation applied to it.
| |

SliceTo(Int32, List<(Of <(IQuantumOperation>)>)) |
Returns a slice (subset) of the register from the beginning to EndIndex, then
has the operations applied to it.
| |

ToString()()() |
Get the string representation of the object
(Inherited from ICoveObject.) |