seanhalle@3: /* seanhalle@3: * Copyright 2010 OpenSourceResearchInstitute.org seanhalle@3: * Licensed under GNU General Public License version 2 seanhalle@3: * seanhalle@3: * Author: seanhalle@yahoo.com seanhalle@3: * seanhalle@3: */ seanhalle@3: seanhalle@3: seanhalle@3: #ifndef _PRHISTOGRAM_H seanhalle@3: #define _PRHISTOGRAM_H seanhalle@3: seanhalle@3: #include seanhalle@3: #include seanhalle@3: seanhalle@3: seanhalle@3: typedef struct seanhalle@3: { seanhalle@3: char *name; seanhalle@3: int32 startOfRange; seanhalle@3: int32 endOfRange; seanhalle@3: int32 numBins; seanhalle@3: int32 binWidth; seanhalle@3: int32 *bins; seanhalle@3: } seanhalle@3: Histogram; seanhalle@3: seanhalle@3: typedef struct seanhalle@3: { seanhalle@3: float32 startOfRange; seanhalle@3: float32 endOfRange; seanhalle@3: int32 numBins; seanhalle@3: float32 binWidth; seanhalle@3: int32 *bins; seanhalle@3: } seanhalle@3: FloatHist; seanhalle@3: seanhalle@3: typedef struct seanhalle@3: { seanhalle@3: float64 startOfRange; seanhalle@3: float64 endOfRange; seanhalle@3: int32 numBins; seanhalle@3: float64 binWidth; seanhalle@3: int32 *bins; seanhalle@3: } seanhalle@3: DblHist; seanhalle@3: seanhalle@3: Histogram * seanhalle@3: makeHistogram( int32 numBins, int32 startOfRange, int32 endOfRange ); seanhalle@3: seanhalle@3: Histogram * seanhalle@3: makeFixedBinHist( int32 numBins, int32 startOfRange, int32 binWidth, seanhalle@3: char *name ); seanhalle@3: seanhalle@3: Histogram * seanhalle@3: makeFixedBinHistExt( int32 numBins, int32 startOfRange, int32 binWidth, seanhalle@3: char *name ); seanhalle@3: seanhalle@3: void inline seanhalle@3: addToHist( int32 value, Histogram *hist ); seanhalle@3: seanhalle@3: void inline seanhalle@3: addIntervalToHist( uint32 startIntvl, uint32 endIntvl, Histogram *hist ); seanhalle@3: seanhalle@3: void inline seanhalle@3: subIntervalFromHist( int32 startIntvl, int32 endIntvl, Histogram *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: saveHistToFile(Histogram *hist); seanhalle@3: seanhalle@3: void seanhalle@3: printHist( Histogram *hist ); seanhalle@3: seanhalle@3: FloatHist * seanhalle@3: makeFloatHistogram( int numBins, float32 startOfRange, float32 binWidth ); seanhalle@3: seanhalle@3: void seanhalle@3: addToFloatHist( float32 value, FloatHist *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: printFloatHist( FloatHist *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: freeHistExt( Histogram *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: freeHist( Histogram *hist ); seanhalle@3: seanhalle@3: DblHist * seanhalle@3: makeDblHistogram( int numBins, float64 startOfRange, float64 binWidth ); seanhalle@3: seanhalle@3: void seanhalle@3: addToDblHist( float64 value, DblHist *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: printDblHist( DblHist *hist ); seanhalle@3: seanhalle@3: void seanhalle@3: freeDblHist( DblHist *hist ); seanhalle@3: seanhalle@3: #endif /* _HISTOGRAM_H */ seanhalle@3: