00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined (octave_DASSL_h)
00024 #define octave_DASSL_h 1
00025
00026 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)
00027 #pragma interface
00028 #endif
00029
00030 #include <cfloat>
00031 #include <cmath>
00032
00033 #include "DASSL-opts.h"
00034
00035 class
00036 DASSL : public DAE, public DASSL_options
00037 {
00038 public:
00039
00040 DASSL (void) : DAE (), DASSL_options (), initialized (false) { }
00041
00042 DASSL (const ColumnVector& s, double tm, DAEFunc& f)
00043 : DAE (s, tm, f), DASSL_options (), initialized (false) { }
00044
00045 DASSL (const ColumnVector& s, const ColumnVector& deriv,
00046 double tm, DAEFunc& f)
00047 : DAE (s, deriv, tm, f), DASSL_options (), initialized (false) { }
00048
00049 ~DASSL (void) { }
00050
00051 ColumnVector do_integrate (double t);
00052
00053 Matrix do_integrate (const ColumnVector& tout);
00054
00055 Matrix do_integrate (const ColumnVector& tout, const ColumnVector& tcrit);
00056
00057 Matrix integrate (const ColumnVector& tout, Matrix& xdot_out);
00058
00059 Matrix integrate (const ColumnVector& tout, Matrix& xdot_out,
00060 const ColumnVector& tcrit);
00061
00062 std::string error_message (void) const;
00063
00064 private:
00065
00066 bool initialized;
00067
00068 int liw;
00069 int lrw;
00070
00071 Array<int> info;
00072 Array<int> iwork;
00073
00074 Array<double> rwork;
00075
00076 Array<double> abs_tol;
00077 Array<double> rel_tol;
00078
00079 double *px;
00080 double *pxdot;
00081 double *pabs_tol;
00082 double *prel_tol;
00083 int *pinfo;
00084 int *piwork;
00085 double *prwork;
00086 };
00087
00088 #endif
00089
00090
00091
00092
00093
00094