view Histogram.h @ 20:cd8275f62ee1

added pure C brch
author Me@portablequad
date Mon, 13 Feb 2012 12:57:42 -0800
parents 32489b8b763c
children
line source
1 /*
2 * Copyright 2010 OpenSourceStewardshipFoundation.org
3 * Licensed under GNU General Public License version 2
4 *
5 * Author: seanhalle@yahoo.com
6 *
7 */
9 #ifndef _HISTOGRAM_H
10 #define _HISTOGRAM_H
12 typedef struct
13 {
14 char *name;
15 int32 startOfRange;
16 int32 endOfRange;
17 int32 numBins;
18 int32 binWidth;
19 int32 *bins;
20 }
21 Histogram;
23 typedef struct
24 {
25 float32 startOfRange;
26 float32 endOfRange;
27 int32 numBins;
28 float32 binWidth;
29 int32 *bins;
30 }
31 FloatHist;
33 typedef struct
34 {
35 float64 startOfRange;
36 float64 endOfRange;
37 int32 numBins;
38 float64 binWidth;
39 int32 *bins;
40 }
41 DblHist;
43 Histogram *
44 makeHistogram( int32 numBins, int32 startOfRange, int32 endOfRange );
46 Histogram *
47 makeFixedBinHist( int32 numBins, int32 startOfRange, int32 binWidth,
48 char *name );
50 Histogram *
51 makeFixedBinHistExt( int32 numBins, int32 startOfRange, int32 binWidth,
52 char *name );
54 void inline
55 addToHist( int32 value, Histogram *hist );
57 void inline
58 addIntervalToHist( uint32 startIntvl, uint32 endIntvl, Histogram *hist );
60 void inline
61 subIntervalFromHist( int32 startIntvl, int32 endIntvl, Histogram *hist );
63 void
64 saveHistToFile(Histogram *hist);
66 void
67 printHist( Histogram *hist );
69 FloatHist *
70 makeFloatHistogram( int numBins, float32 startOfRange, float32 binWidth );
72 void
73 addToFloatHist( float32 value, FloatHist *hist );
75 void
76 printFloatHist( FloatHist *hist );
78 void
79 freeHistExt( Histogram *hist );
81 void
82 freeHist( Histogram *hist );
84 DblHist *
85 makeDblHistogram( int numBins, float64 startOfRange, float64 binWidth );
87 void
88 addToDblHist( float64 value, DblHist *hist );
90 void
91 printDblHist( DblHist *hist );
93 void
94 freeDblHist( DblHist *hist );
96 #endif /* _HISTOGRAM_H */