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