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__