00001
00002
00003
00004
00005 #ifndef INCLUDED_ITSBASE_H
00006 #define INCLUDED_ITSBASE_H
00007
00008 #include "paral.h"
00009 #include "tgtencl.h"
00010
00011
00019 class ITS_BASE : public TIGHT_ENCL
00020 {
00021
00022 public:
00023
00025 virtual void CompEncl( INTERVAL_VECTOR & Ytight,
00026 INTERVAL_VECTOR & LocErr,
00027 const INTERVAL & h,
00028 int order,
00029 PtrODENumeric ODE,
00030 PtrODESolver Solver );
00031
00034 virtual void Init( const PtrODENumeric ODE );
00035
00037 ~ITS_BASE();
00038
00039 protected:
00040
00048 ITS_BASE( int order, const string & name );
00049
00063 virtual void Prepare( INTERVAL_VECTOR & LocErr,
00064 const INTERVAL & h,
00065 int order,
00066 PtrODENumeric ODE,
00067 PtrODESolver Solver );
00068
00082 virtual void Compute ( INTERVAL_VECTOR & Ytight,
00083 INTERVAL_VECTOR & LocErr,
00084 const INTERVAL & h,
00085 int order,
00086 PtrODENumeric ODE,
00087 PtrODESolver Solver ) = 0;
00088
00089
00096 void ResizeSpace ( int n );
00097
00100 PtrParall PrevSol;
00101
00103 INTERVAL_VECTOR YpointEncl;
00104
00106 INTERVAL_MATRIX Sj;
00107
00108
00109 };
00110
00111
00112 inline void ITS_BASE :: CompEncl( INTERVAL_VECTOR & Ytight,
00113 INTERVAL_VECTOR & LocErr,
00114 const INTERVAL & h,
00115 int order,
00116 PtrODENumeric ODE,
00117 PtrODESolver Solver )
00118 {
00119 Prepare( LocErr, h, order, ODE, Solver );
00120 Compute( Ytight, LocErr, h, order, ODE, Solver );
00121 }
00122
00123
00124 inline ITS_BASE:: ITS_BASE( int order, const string & name )
00125
00126 : TIGHT_ENCL( order, name ), PrevSol( NULL )
00127 {
00128 ;
00129 }
00130
00131
00132 inline ITS_BASE :: ~ITS_BASE()
00133 {
00134 DELETE(PrevSol);
00135 }
00136
00137
00138 #endif