30 #ifndef MATH_UTIL_STAT_BUFFER_H_ 
   31 #define MATH_UTIL_STAT_BUFFER_H_ 
   34 #define PI 3.14159265358979 
  153       int NumElems = this->
size();
 
  154       if (NumElems <= 0) 
return (T)(0.0);
 
  157       NumToAvg = std::min(NumToAvg, NumElems);
 
  158       for (
int i = 0; i < NumToAvg; ++i)
 
  163       T mean = sum/((T)NumToAvg);
 
  169       int NumElems = this->
size();
 
  170       if (NumElems <= 0) 
return false;
 
  180       T CurVal = *this->
get(0);
 
  190       for (
int i = 1; i < NumElems; i++)
 
  192         CurVal = *this->
get(i);
 
  194         if (CurVal > max) max = CurVal;
 
  195         else if (CurVal < min) min = CurVal;
 
  197       mean = sum/((T)NumElems);
 
  203         T *vec1 = 
new T[NumElems];  
 
  204         for (
int i = 0; i < NumElems; i++)
 
  206           CurVal = *this->
get(i);
 
  207           sum += (CurVal-mean)*(CurVal-mean);
 
  210         std=(T)sqrt(
static_cast<double>(sum/(NumElems-1)));
 
  214         std::sort(vec1, vec1+NumElems);  
 
  215         if (NumElems % 2 == 0)
 
  217           median = (vec1[NumElems/2-1] + vec1[NumElems/2])/2;
 
  221           median = vec1[NumElems/2];
 
  238       int NumElems = this->
size();
 
  239       if (NumElems <= 1) 
return false;
 
  247       T *vec1 = 
new T[NumElems];
 
  249       T CurVal1 = *this->
get(0);
 
  250       T CurVal2 = *this->
get(1);
 
  251       T CVDiff = CurVal2-CurVal1;
 
  260       for (
int i = 1; i < NumElems-1; i++)
 
  262         CurVal1 = *this->
get(i);
 
  263         CurVal2 = *this->
get(i+1);
 
  264         CVDiff = CurVal2-CurVal1;
 
  267         if (CVDiff > max) max = CVDiff;
 
  268         else if (CVDiff < min) min = CVDiff;
 
  270       mean = sum/((T)NumElems);
 
  273       std::sort(vec1, vec1+NumElems);  
 
  274       if (NumElems % 2 == 0)
 
  276         median = (vec1[NumElems/2-1] + vec1[NumElems/2])/2;
 
  280         median = vec1[NumElems/2];
 
  291 #endif  // MATH_UTIL_STAT_BUFFER_H_