IQuantumRegister Interface
Cove - A Practical Quantum Computer Programming Framework
IQuantumRegister Interface
NamespacesCove.BaseIQuantumRegister
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 BasicVisual 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 MembersMethods



IconMemberDescription
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.)

Assembly: Cove.Base (Module: Cove.Base) Version: 1.0.0.0 (1.0.0.0)