40 #ifndef __EST_SIMPLESTATS_H__ 
   41 #define __EST_SIMPLESTATS_H__ 
   43 #include "EST_String.h" 
   44 #include "EST_Token.h" 
   45 #include "EST_StringTrie.h" 
   46 #include "EST_TList.h" 
   48 #include "EST_types.h" 
   50 typedef size_t int_iter; 
 
   90     return (((i=(
int*)nametrie.
lookup(n)) != NULL) ? *i : p_def_val);
 
  106     friend ostream& operator <<(ostream& s, 
const EST_Discrete &d);
 
  110       { copy(a); 
return *
this; }
 
  123     EST_Discrete &discrete(
const int t)
 const {
return *discretes[t-10];}
 
  124     EST_Discrete &operator [] (
const int t)
 const {
return *discretes[t-10];}
 
  146     {n = in; p_sum = isum; p_sumx = isumx;}
 
  151        {n=s.n; p_sum = s.p_sum; p_sumx = s.p_sumx;}
 
  153     void reset(
void) {n = p_sum = p_sumx = 0.0;}
 
  154     void set(
double in, 
double isum, 
double isumx) 
 
  155     {n = in; p_sum = isum; p_sumx = isumx;}
 
  159     double sum() { 
return p_sum; }
 
  161     double sumx() { 
return p_sumx; }
 
  163     double mean(
void)
 const { 
return (n==0)?0.0:(p_sum / n); }
 
  166        { 
return ((n*p_sumx)-(p_sum*p_sum))/((double)n*(n-1)); }
 
  170     void cumulate(
double a,
double count=1.0)
 
  171     { n+=count; p_sum+=a*count; p_sumx+=count*(a*a); }
 
  175          { cumulate(a,1.0); 
return *
this;}
 
  178          { cumulate(a,1.0); 
return *
this;}
 
  181          { copy(a); 
return *
this;}
 
  184 enum EST_tprob_type {tprob_string, tprob_int, tprob_discrete};
 
  233                  const double n_samples, 
 
  250     double samples(
void)
 const { 
return num_samples; }
 
  255     void cumulate(
int i,
double count=1);
 
  263     double probability(
const EST_String &s) 
const; 
 
  265     double probability(
const int i) 
const; 
 
  269     double frequency(
const int i) 
const; 
 
  312 #endif              // __EST_SIMPLESTATS_H__