| Prev: Class Overview diagram | Up: Contents | Next: Installation |
| Class | Derived From | Explanation |
| CQuantumApp | CWinApp | Application class. |
| CQuantumDoc | CDocument | Holds 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. |
| CQuantumView | CEditView | Exposes the view of the document. The user manipulates the view in order to change the document. |
| CMainFrame | CFrameWnd | The main window for the application. Encapsulates the toolbar and status bar. |
| Class | Explanation |
| CAboutDlg | Brings up the credits for the application. |
| CFactorisationParams | Asks for parameters for a factorisation such as the number to factorise. |
| CHaskellEvaluationDialog | Asks for the parameters to a Haskell simulation, such as Haskell function to evaluate and the input and output format. |
| CMaxSimpleTestSizeDialog | Asks the user for the maximum size of the continuous simple tests, which tests are allowed to be run and which simulation algorithms to use. |
| COptionsDlg | Asks for program options, such as where to find the Haskell interpreter. |
| CSimpleTestDialog | Asks the user which standard simple test circuit is to be loaded and the size of the circuit. |
| CSimProgress | Informs the user of the current simulation and the progress to date on that simulation. Optionally shows a graph of the current output state. |
| Class | Derived From | Explanation |
| CComplex | Models a complex number that is stored as real and imaginary components. Also provides mathematical methods to manipulate complex numbers. | |
| CBaseComplexVector | Provides default implementations for mathematical operations on complex vectors. | |
| CComplexVector | CBaseComplexVector | Models a complex vector with a static array of complex numbers. |
| CSparseVector | CBaseComplexVector | Models a complex vector with a sparse array of complex numbers. |
| CComplexMatrix | Models a complex vector, which is an array of complex numbers. Also provides mathematical methods to manipulate complex vectors. |
| Class | Derived from | Explanation |
| CCircuit | Models 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. | |
| CGate | Models 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. | |
| CSourceGate | CGate | Models 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. |
| CStaticSource | CGate | A 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. |
| CRandomisedSource | CStaticSource | A randomised source is a source gate which has a random output value set during construction. |
| CSinkGate | CGate | Sink 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. |
| CInputOutputGate | CGate | Input / 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. |
| CSquareRootNOT | CInputOutputGate | Provides the functionality of the square root of not gate. One input pin and one output pin are exposed. |
| CFlipGate | CInputOutputGate | Provides 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. |
| CMatrixGate | CInputOutputGate | This 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. |
| Class | Derived from | Explanation |
| CPin | Default pin. This is an abstract base class - a derived class must provide the direction of the pin. | |
| CInputPin | CPin | A pin with an input direction. |
| COutputPin | CPin | A pin with an output direction. |
| Class | Derived from | Explanation |
| SimParams | Holds the options which are passed to the Metaverse when a simulation is started. There are no methods in this class. | |
| CMetaverse | SimParams | Provides the methods for performing a simulation. |
| CCalculationThreads | Class for creating the threads for the calculation of data. Allows callers to queue calculations to perform. | |
| Simdata | SimParams | Holds extra options that are passed to Metaverse threads which are going to run a simulation. |
| Class | Explanation |
| 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. |
| CToken | Used in the parsing of circuit dump files. A token can be a complex number, an integer or a punctuation character. |
| CGateGroup | Hold a list of gates. CGateGroup will automatically computer the list of gates whose results they are dependent upon. |
| CQException | This 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