#include #include /****************************************** Dette er header og classdefinition odeSolver. Se også dokumentasjonen ode.txt. --- Copyright 2000, Simen Kvaal, men for pokker, gjør hva du vil med koden! *******************************************/ #ifndef ODE_H #define ODE_H #define NO 0 #define YES 1 #define ODE_EULER 1 #define ODE_RK4 4 typedef void (*derivPtr)(double, const double *, double *); class odeSolver { private: double *k1, *k2, *k3, *k4, *y_temp, *dydt, *y, *next_y; double t, h; unsigned n_eq, algorithm; derivPtr deriv; void killAll(void); void nullAll(void); public: odeSolver(unsigned n, derivPtr func); odeSolver(); ~odeSolver(); int isInitialized(void); int setNumberOfEquations(unsigned n); unsigned getNumberOfEquations(void); int setDerivativeFunction(derivPtr func); int calculate(void); int setStepSize(double stepSize); double getStepSize(void); int setTime(double theTime); double getTime(void); double getLastCalcTime(void); int setAlgorithm(unsigned algo); unsigned getAlgorithm(void); int setValue(unsigned i, double value); double getValue(unsigned i); int setValues(const double *allValues); int getValues(double *allValues); int fdisplay(FILE *displayFile); int display(void); double *directAccess(void); }; #endif