// // EXPStackMachine.h // StackMachine // // Created by Ashley on 23/04/2007. // Copyright 2007 __MyCompanyName__. All rights reserved. // #import #import "EXPAssemblerConstants.h" #include #include #import "history_protocol.h" struct table_s { gsl_interp_accel *acc; gsl_spline *spline; double xmin; double xmax; double ymin; double ymax; }; typedef struct table_s tableStructure; @interface EXPStackMachine : NSObject { unsigned int *memory; unsigned int memorySize; double *stack; unsigned int stackSize; int nConstants; int nAuxiliaries; int nVariables; double *constants; double *auxiliaries; double *variables; double *gradients; tableStructure **tables; int nTables; // Registers. int pc; int sp; int x; double acc; id _history; double _startTime; double _stopTime; double _time; } - (id) initWithMemory:(unsigned int)memorySize stack:(unsigned int)stackSize; - (unsigned int *) memory; - (int) nConstants; - (void) setNConstants:(int) newNConstants; - (int) nAuxiliaries; - (void) setNAuxiliaries:(int) newNAuxiliaries; - (int) nVariables; - (void) setNVariables:(int) newNVariables; - (void) setConstants:(double *)newConstants; - (double *) constants; - (void) setAuxiliaries:(double *)newAuxiliaries; - (double *) auxiliaries; - (void) setVariables:(double *)newVariables; - (double *) variables; - (void) setGradients:(double *)newGradients; - (double *) gradients; - (void) setTables:(tableStructure **)newTables; - (tableStructure **)tables; - (void) setNTables:(int) newNTables; - (int) nTables; - (void) setHistory:(id )history; - (id) history; - (void) setTime:(double)time; - (void) setStartTime:(double)startTime; - (double) startTime; - (void) setStopTime:(double)stopTime; - (double) stopTime; - (void) putUInt:(unsigned int)val; - (void) putUInt:(unsigned int)val at:(unsigned int)location; - (void) putDouble:(double)val; - (void) runFromPc; - (unsigned int)pc; - (void) setPc:(unsigned int)newPc; - (unsigned int)sp; - (void) setSp:(unsigned int)newSp; - (double)acc; - (void) setAcc:(double)newAcc; - (void) dump:(unsigned int)start to:(unsigned int)stop; @end