00001 00046 #ifndef ABA_TAILOFF_H 00047 #define ABA_TAILOFF_H 00048 00049 #include "abacus/ring.h" 00050 00051 class ABA_MASTER; 00052 class ABA_SUB; 00053 class ABA_TAILOFF : public ABA_ABACUSROOT { 00054 friend class ABA_SUB; 00055 public: 00056 00062 ABA_TAILOFF(ABA_MASTER *master); 00063 00070 ABA_TAILOFF(ABA_MASTER *master, int NLp); 00071 00073 ~ABA_TAILOFF(); 00074 00083 friend ostream &operator<<(ostream &out, const ABA_TAILOFF &rhs); 00084 00085 00095 bool tailOff() const; 00096 00112 int diff(int nLps, double &d) const; 00113 00114 private: 00115 00124 void update(double value); 00125 00135 void reset(); 00136 00139 ABA_MASTER *master_; 00140 00143 ABA_RING<double> *lpHistory_; 00144 }; 00145 #endif // ABA_TAILOFF_H 00146 00147 00148