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