00001 #ifndef _AbsFvFxn_H
00002 #define _AbsFvFxn_H
00003
00004
00005
00026 #include <math.h>
00027
00028 #include "FloatVector.hpp"
00029 #include "FloatSMatrix.hpp"
00030
00031 class AbsFvFxn
00032 {
00033 protected:
00034
00035 int nVar;
00036 int nOut;
00037
00038 float dx;
00039
00040 public:
00041 AbsFvFxn(int numVars=2, int nOutputs=2){ nVars= numberOfVars; nOut= nOutputs; dx=1.0e-3;}
00042 virtual ~AbsFvFxn(){}
00043
00044 virtual int numberOfVars(){return nVars;}
00045 virtual int numberOfOutputs(){return nOut;}
00046
00047 virtual FloatVector* eval(FloatVector* x, FloatVector* dest=0)=0;
00048
00049
00050 virtual FloatSMatrix* jacobian(FloatVector* x, FloatSMatrix* dest=0);
00051
00052
00053 virtual FloatSMatrix* hessian(FloatVector* x, FloatSMatrix* dest=0);
00054 };
00055
00056 #endif