Files Classes Functions Hierarchy
00001 #ifndef EXPLOREQUAD_H 00002 #define EXPLOREQUAD_H 00003 00004 #include <typeop.h> 00005 00024 template < typename EXP > 00025 class explorequad : public EXP 00026 { 00027 public: 00028 00029 typedef typename typeop<EXP>::Targ::FNtype FN; 00030 typedef typename typeop<EXP>::Tbare::Ttype T; 00031 00033 explorequad 00034 ( 00035 uintc N_, 00036 T const h0step=20.0, 00037 uintc indexmax_=500 00038 ) 00039 : EXP(N_,h0step,indexmax_) {} 00040 00042 explorequad 00043 ( 00044 FN fn_, 00045 uintc N_, 00046 T const h0step=20.0, 00047 uintc indexmax_=500 00048 ) 00049 : EXP(fn_,N_,h0step,indexmax_) {} 00050 00052 void operator ++ (); 00053 00055 void move(); 00056 00057 }; 00058 00059 00060 template < typename EXP > 00061 void explorequad<EXP>::move() 00062 { 00063 //cout << "explorequad<EXP>::move()" << endl; 00064 #ifndef NDEBUG 00065 if (EXP::valid==false) 00066 cout << "error" << endl; 00067 assert(EXP::valid==true); 00068 #endif 00069 EXP::hasStateChanged=false; 00070 00071 for ( ; (EXP::hasStateChanged==false)&&EXP::valid; ) 00072 { 00073 explorequad<EXP>::operator ++ (); 00074 } 00075 } 00076 00077 00078 template < typename EXP > 00079 void explorequad<EXP>::operator ++ () 00080 { 00081 //cout << "explorequad<EXP>::operator ++" << endl; 00082 for (uint i=0; i<EXP::N; ++i) 00083 { 00084 EXP::operator++(); 00085 } 00086 } 00087 00088 #endif 00089 00090
1.5.8