wordrec/measure.h

Go to the documentation of this file.
00001 
00021 #ifndef MEASURE_H
00022 #define MEASURE_H
00023 
00024 /*
00025 ----------------------------------------------------------------------
00026               I n c l u d e s
00027 ----------------------------------------------------------------------
00028 */
00029 
00030 #include <math.h>
00031 
00032 /*
00033 ----------------------------------------------------------------------
00034               T y p e s
00035 ----------------------------------------------------------------------
00036 */
00037 
00042 typedef struct
00043 {
00044   long num_samples;
00045   float sum_of_samples;
00046   float sum_of_squares;
00047 } MEASUREMENT;
00048 
00049 /*
00050 ----------------------------------------------------------------------
00051               M a c r o s
00052 ----------------------------------------------------------------------
00053 */
00054 
00055 /* ================== */
00059 #define ADD_SAMPLE(m,s)                           \
00060 (m.sum_of_samples += (float) (s),               \
00061    m.sum_of_squares += (float) (s) * (float) (s), \
00062    ++m.num_samples)
00063 
00067 #define MEAN(m)  \
00068 ((m).num_samples ? ((float) ((m).sum_of_samples / (m).num_samples)) : 0)
00069 
00073 #define new_measurement(m)   \
00074 ((m).num_samples    = 0, \
00075    (m).sum_of_samples = 0, \
00076    (m).sum_of_squares = 0)
00077 
00081 #define number_of_samples(m)  ((m).num_samples)
00082 
00086 #define standard_deviation(m) ((float) sqrt (VARIANCE (m)))
00087 
00091 #define VARIANCE(m)                                 \
00092 (((m).num_samples > 1) ?                            \
00093    ((float)                                        \
00094    (((m).num_samples * (m).sum_of_squares -        \
00095       (m).sum_of_samples * (m).sum_of_samples) /  \
00096    (((m).num_samples - 1) * (m).num_samples)))   :  0)
00097 
00101 #define print_summary(string,measure)                       \
00102 cprintf ("\t%-20s \tn = %d, \tm = %4.2f, \ts = %4.2f\n ",  \
00103          string,                                          \
00104          number_of_samples  (measure),                    \
00105          MEAN           (measure),                    \
00106          standard_deviation (measure))
00107 #endif

Generated on Wed Feb 28 19:49:13 2007 for Tesseract by  doxygen 1.5.1