Prev: Class Overview diagram Up: Contents Next: Installation

Class Reference

MFC DERIVED CLASSES

ClassDerived FromExplanation
CQuantumAppCWinAppApplication class.
CQuantumDocCDocumentHolds the document and performs input and output serialisation. In order to separate the Visual C components from the core simulator a document object in the simulator does not hold the circuit to simulate, as one might expect. Instead it holds a pointer to a circuit and a pointer to a Metaverse which will simulate that circuit.
CQuantumViewCEditViewExposes the view of the document. The user manipulates the view in order to change the document.
CMainFrameCFrameWndThe main window for the application. Encapsulates the toolbar and status bar.

DIALOG CLASSES

ClassExplanation
CAboutDlgBrings up the credits for the application.
CFactorisationParamsAsks for parameters for a factorisation such as the number to factorise.
CHaskellEvaluationDialogAsks for the parameters to a Haskell simulation, such as Haskell function to evaluate and the input and output format.
CMaxSimpleTestSizeDialogAsks the user for the maximum size of the continuous simple tests, which tests are allowed to be run and which simulation algorithms to use.
COptionsDlgAsks for program options, such as where to find the Haskell interpreter.
CSimpleTestDialogAsks the user which standard simple test circuit is to be loaded and the size of the circuit.
CSimProgressInforms the user of the current simulation and the progress to date on that simulation. Optionally shows a graph of the current output state.

MATHS CLASSES

ClassDerived FromExplanation
CComplexModels a complex number that is stored as real and imaginary components. Also provides mathematical methods to manipulate complex numbers.
CBaseComplexVectorProvides default implementations for mathematical operations on complex vectors.
CComplexVectorCBaseComplexVectorModels a complex vector with a static array of complex numbers.
CSparseVectorCBaseComplexVectorModels a complex vector with a sparse array of complex numbers.
CComplexMatrixModels a complex vector, which is an array of complex numbers. Also provides mathematical methods to manipulate complex vectors.

GATE AND CIRCUIT CLASSES

ClassDerived fromExplanation
CCircuitModels a circuit. A circuit is a list of gates. Each of the gates hold connections between itself and other gates. Provides methods for adding and retrieving gates, loading circuits from input streams, creating standard test circuits and ordering gates.
CGateModels a gate. A gate holds a list of input and output pins which are exposed to connect to other gates. The CGate class provides only default functionality and it expects derived classes to provides methods for retrieving input and output pins and calculating the output to the gate.
CSourceGateCGateModels a source to the circuit. A source gate is the means by which data enters the system. It has no input pins and only one output pin. CSourceGate provides a default functionality for handling the pins of source gates and expects derived gates to provide the functionality to calculate their outputs.
CStaticSourceCGateA static source is a source gate that has a static output value. It expects a value to be passed to it during construction that tells the gate whether to output a logical 0 or 1.
CRandomisedSourceCStaticSourceA randomised source is a source gate which has a random output value set during construction.
CSinkGateCGateSink gates are the means by which data leaves the system. They expose one input pin and no output pins. Sink gates do not actually perform any work - they exist only to ensure that pins in all gates in the circuit are connected to another pin.
CInputOutputGateCGateInput / Output gates are gates which expose a fixed, equal and non-zero number of input and output pins. They encapsulate a matrix that is used to calculate the output for the gate. They provide the functionality to retrieve input and output pins and to calculate the output of the gate given a certain input.
CSquareRootNOTCInputOutputGateProvides the functionality of the square root of not gate. One input pin and one output pin are exposed.
CFlipGateCInputOutputGateProvides the functionality of a gate which performs the square root of not on its second input only if its first input is a logical 1. Has two input and two output pins.
CMatrixGateCInputOutputGateThis gate accepts any matrix during its construction. It can have any non-zero and equal number of input and output pins. The gate matrix must be unitary and of the correct size for the number pins that the gate exposes.

PIN CLASSES

ClassDerived fromExplanation
CPinDefault pin. This is an abstract base class - a derived class must provide the direction of the pin.
CInputPinCPinA pin with an input direction.
COutputPinCPinA pin with an output direction.

SIMULATION CLASSES

ClassDerived fromExplanation
SimParamsHolds the options which are passed to the Metaverse when a simulation is started. There are no methods in this class.
CMetaverseSimParamsProvides the methods for performing a simulation.
CCalculationThreadsClass for creating the threads for the calculation of data. Allows callers to queue calculations to perform.
SimdataSimParamsHolds extra options that are passed to Metaverse threads which are going to run a simulation.

MISCELLANEOUS CLASSES

ClassExplanation
CQList< class T >Provides a template list. Entries in the list are stored in arrays for quick access. It has methods for sorting and searching the list.
CTokenUsed in the parsing of circuit dump files. A token can be a complex number, an integer or a punctuation character.
CGateGroupHold a list of gates. CGateGroup will automatically computer the list of gates whose results they are dependent upon.
CQExceptionThis provides an exception object that carries a string explaining the cause of the exception. The object can be created from an output string stream that means that any object that has the C++ insertion operator defined can be included in the text.

Prev: Class Overview diagram Up: Contents Next: Installation

This web page (c) 2000 Jon Marshall. Last updated 3rd June 2000