Cove.Base Namespace
Cove - A Practical Quantum Computer Programming Framework
Cove.Base Namespace
NamespacesCove.Base
Cove.Base defines all of the interfaces that implementations need to provide. Users of code should "code to" these interfaces after instances of objects have been created.
Declaration Syntax
C#Visual BasicVisual C++
namespace Cove.Base
Namespace Cove.Base
namespace Cove.Base
Types
All TypesClassesInterfacesEnumerations
IconTypeDescription
BoolConversionOptions
Defines various conversion options for converting classical results to a boolean.

ClassicalResult
The result of a measurement from quantum computation.

CoveException
The base class for all exceptions in Cove

DuplicateIndexesException
Thrown if duplicate indexes are specified as a parameter.

ICoveObject
Base class for all classes in Cove

ImplementationException
This exception is thrown when the implementation is incomplete or reaches an unexpected state. Ideally this exception should never occur. This is different than QuantumHardwareException, which is the base class for any hardware problems. This class is for problems with the implementation.

IOperationCNot
Interface for the CNot (controlled Not) operation. Direct implementations of this interface should be named OperationCNot.

IOperationControlledU
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.

IOperationFredkin
Interface for the Fredkin operation, which is a controlled swap. Direct implementations of this interface should be named OperationFredkin.

IOperationHadamard
Interface for all classes that perform the Hadamard operation. Direct implementations of this interface should be named OperationHadamard.

IOperationIdentity
Interface for performing the identity operation. Direct implementations of this interface should be named OperationIdentity.

IOperationIdentityN
The identity operation for n qubits. The identity operation is essentially a no operation (noop) since it does not change the state of the qubit(s). Direct implementations of this interface should be named OperationIdentityN.

IOperationNot
Interface for performing the Not operation (X gate). Direct implementations of this interface should be named OperationNot.

IOperationPhaseShift
Interface for all operations to perform arbitrary phase shifts. Direct implementations of this interface should be named OperationPhaseShift.

IOperationQuantumFourierTransform
Interface for the

IOperationReset
This operation collapses a qubit to 0. This is not a reversible operation.

IOperationRotateK
Interface for the Rotation by K, a more general S or T gate. Used in the quantum Fourier transform as the target of a control operation

IOperationRotateX
Interface for all operations that perform arbitrary rotations about the X axis. Direct implementations of this interface should be named OperationRotateX.

IOperationRotateY
Interface for all operations that perform arbitrary rotations about the Y axis. Direct implementations of this interface should be named OperationRotateY.

IOperationRotateZ
Interface for all operations that perform arbitrary rotations about the Z axis. Direct implementations of this interface should be named OperationRotateZ.

IOperationSGate
Interface for performing the S Gate (phase gate). Direct implementations of this interface should be named OperationSGate.

IOperationSwap
Interface for the swap operation. Direct implementations of this interface should be named OperationSwap.

IOperationTGate
Interface for performing the T gate operation (pi / 8 phase gate). Direct implementations of this interface should be named OperationTGate.

IOperationToffoli
Interface for the Toffoli operation, which is a double controlled not or controlled controlled not. Direct implementations of this interface should be named OperationToffoli.

IOperationYGate
Interface for performing the Y gate operation. Direct implementations of this interface should be named OperationYGate.

IOperationZGate
Interface for performing the Z gate operation. Direct implementations of this interface should be named OperationZGate.

IQuantumAlgorithms
This interface provides common quantum algorithms that should be implemented. These common algorithms let users utilize the framework for specific quantum tasks without being concerned with the details of how the algorithms work. Direct implementations of this interface should be named QuantumAlgorithms.

IQuantumOperation
The interface for operations applied to qubits. This is meant to serve as a base interface, and there are no direct implementations.

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

IQubit
Interface definition of a qubit. Direct implementations of this interface should be named Qubit.

IQubitOperation
The interface that all operations on qubits must implement. This is a base interface and there should not be direct implementations.

NotUnitaryOperationException
If a user creates an operation that is not unitary, then throw this exception since all quantum operators must be unitary.

QuantumHardwareException
This is the base class for any exception caused by the quantum hardware. This exception is different from ImplementationException, which is the base class for exceptions due to incorrect or incomplete implementations and not hardware problems.

SizeMismatchException
This exception occurs when there is a size mismatch between a quantum operation and register it is being applied to.

Utilities
Contains various utility functions for Cove that are not specific to a particular implementation.