| rev |
line source |
|
Philipe@20
|
1 /*
|
|
Philipe@20
|
2 * Copyright 2010 OpenSourceResearchInstitute.org
|
|
Philipe@20
|
3 * Licensed under GNU General Public License version 2
|
|
Philipe@20
|
4 *
|
|
Philipe@20
|
5 * Author: seanhalle@yahoo.com
|
|
Philipe@20
|
6 *
|
|
Philipe@20
|
7 */
|
|
Philipe@20
|
8
|
|
Philipe@20
|
9
|
|
Philipe@20
|
10 #ifndef _PRHISTOGRAM_H
|
|
Philipe@20
|
11 #define _PRHISTOGRAM_H
|
|
Philipe@20
|
12
|
|
Philipe@20
|
13 #include <PR__include/prmalloc.h>
|
|
Philipe@20
|
14 #include <PR__include/PR__primitive_data_types.h>
|
|
Philipe@20
|
15
|
|
Philipe@20
|
16
|
|
Philipe@20
|
17 typedef struct
|
|
Philipe@20
|
18 {
|
|
Philipe@20
|
19 char *name;
|
|
Philipe@20
|
20 int32 startOfRange;
|
|
Philipe@20
|
21 int32 endOfRange;
|
|
Philipe@20
|
22 int32 numBins;
|
|
Philipe@20
|
23 int32 binWidth;
|
|
Philipe@20
|
24 int32 *bins;
|
|
Philipe@20
|
25 }
|
|
Philipe@20
|
26 Histogram;
|
|
Philipe@20
|
27
|
|
Philipe@20
|
28 typedef struct
|
|
Philipe@20
|
29 {
|
|
Philipe@20
|
30 float32 startOfRange;
|
|
Philipe@20
|
31 float32 endOfRange;
|
|
Philipe@20
|
32 int32 numBins;
|
|
Philipe@20
|
33 float32 binWidth;
|
|
Philipe@20
|
34 int32 *bins;
|
|
Philipe@20
|
35 }
|
|
Philipe@20
|
36 FloatHist;
|
|
Philipe@20
|
37
|
|
Philipe@20
|
38 typedef struct
|
|
Philipe@20
|
39 {
|
|
Philipe@20
|
40 float64 startOfRange;
|
|
Philipe@20
|
41 float64 endOfRange;
|
|
Philipe@20
|
42 int32 numBins;
|
|
Philipe@20
|
43 float64 binWidth;
|
|
Philipe@20
|
44 int32 *bins;
|
|
Philipe@20
|
45 }
|
|
Philipe@20
|
46 DblHist;
|
|
Philipe@20
|
47
|
|
Philipe@20
|
48 Histogram *
|
|
Philipe@20
|
49 makeHistogram( int32 numBins, int32 startOfRange, int32 endOfRange );
|
|
Philipe@20
|
50
|
|
Philipe@20
|
51 Histogram *
|
|
Philipe@20
|
52 makeFixedBinHist( int32 numBins, int32 startOfRange, int32 binWidth,
|
|
Philipe@20
|
53 char *name );
|
|
Philipe@20
|
54
|
|
Philipe@20
|
55 Histogram *
|
|
Philipe@20
|
56 makeFixedBinHistExt( int32 numBins, int32 startOfRange, int32 binWidth,
|
|
Philipe@20
|
57 char *name );
|
|
Philipe@20
|
58
|
|
Philipe@20
|
59 __inline void
|
|
Philipe@20
|
60 addToHist( int32 value, Histogram *hist );
|
|
Philipe@20
|
61
|
|
Philipe@20
|
62 __inline void
|
|
Philipe@20
|
63 addIntervalToHist( uint32 startIntvl, uint32 endIntvl, Histogram *hist );
|
|
Philipe@20
|
64
|
|
Philipe@20
|
65 __inline void
|
|
Philipe@20
|
66 subIntervalFromHist( int32 startIntvl, int32 endIntvl, Histogram *hist );
|
|
Philipe@20
|
67
|
|
Philipe@20
|
68 void
|
|
Philipe@20
|
69 saveHistToFile(Histogram *hist);
|
|
Philipe@20
|
70
|
|
Philipe@20
|
71 void
|
|
Philipe@20
|
72 printHist( Histogram *hist );
|
|
Philipe@20
|
73
|
|
Philipe@20
|
74 FloatHist *
|
|
Philipe@20
|
75 makeFloatHistogram( int numBins, float32 startOfRange, float32 binWidth );
|
|
Philipe@20
|
76
|
|
Philipe@20
|
77 void
|
|
Philipe@20
|
78 addToFloatHist( float32 value, FloatHist *hist );
|
|
Philipe@20
|
79
|
|
Philipe@20
|
80 void
|
|
Philipe@20
|
81 printFloatHist( FloatHist *hist );
|
|
Philipe@20
|
82
|
|
Philipe@20
|
83 void
|
|
Philipe@20
|
84 freeHistExt( Histogram *hist );
|
|
Philipe@20
|
85
|
|
Philipe@20
|
86 void
|
|
Philipe@20
|
87 freeHist( Histogram *hist );
|
|
Philipe@20
|
88
|
|
Philipe@20
|
89 DblHist *
|
|
Philipe@20
|
90 makeDblHistogram( int numBins, float64 startOfRange, float64 binWidth );
|
|
Philipe@20
|
91
|
|
Philipe@20
|
92 void
|
|
Philipe@20
|
93 addToDblHist( float64 value, DblHist *hist );
|
|
Philipe@20
|
94
|
|
Philipe@20
|
95 void
|
|
Philipe@20
|
96 printDblHist( DblHist *hist );
|
|
Philipe@20
|
97
|
|
Philipe@20
|
98 void
|
|
Philipe@20
|
99 freeDblHist( DblHist *hist );
|
|
Philipe@20
|
100
|
|
Philipe@20
|
101 #endif /* _HISTOGRAM_H */
|
|
Philipe@20
|
102
|