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