Interface for the controlled-U operation. The controlled U operation tests a
control qubit, and if true applies the single qubit operation U to all other
(target) qubits. Direct implementations of this interface should be named OperationControlledU.
Declaration Syntax
C# | Visual Basic | Visual C++ |
public interface IOperationControlledU : IQuantumOperation, ICoveObject
Public Interface IOperationControlledU _ Implements IQuantumOperation, ICoveObject
public interface class IOperationControlledU : IQuantumOperation, ICoveObject
Members
All Members | Methods | ||||
Icon | Member | Description |
---|---|---|
Clone()()() |
Return a clone (deep copy) of the current operation. This operation returned can be modified
without any impact to this object. Unlike quantum registers, quantum operations cannot be
in superposition- hence a clone of them does not violate the no-cloning theorem.
| |
Combine(IQuantumOperation) |
Combine two same sized operations into one.
(Inherited from IQuantumOperation.) | |
GetControlIndex()()() |
Get the current control index
| |
GetOperationAndTargets()()() |
Get a string that shows the operations name and target. An example might
be something like "CNOT: Control = 0, Target = 2".
(Inherited from IQuantumOperation.) | |
GetTargetIndex()()() |
Get the target index.
| |
GetTargetOperation()()() |
Get the current target operation.
| |
IsValidOperation()()() |
Is this a valid quantum operation? All quantum operations must be unitary,
so this allows for all operations to be checked before they are applied to
registers.
(Inherited from IQuantumOperation.) | |
NumberOfQubitsOperatesOn()()() |
Returns the number of qubits that the operation operates on. For example
a CNot operation would return 2 since there are two qubits, target and control.
(Inherited from IQuantumOperation.) | |
SetControlIndex(Int32) |
Set the control index
| |
SetIndexes(Int32, Int32) |
Set the control and target indexes
| |
SetTargetIndex(Int32) |
Set the target index.
| |
SetTargetOperation(IQubitOperation) |
Set the target operation. This will be applied if the control qubit is set.
| |
Tensor(IQuantumOperation) |
Tensor two operations into one combined one.
(Inherited from IQuantumOperation.) | |
ToString()()() |
Get the string representation of the object
(Inherited from ICoveObject.) |