00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CVARHIST_H
00021 #define __CVARHIST_H
00022
00023 #include "chist.h"
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 enum {
00034 HIST_TR_NO_TRANSFORM=1,
00035 HIST_TR_AUTO_EPC_DBL=0,
00036 HIST_TR_AUTO_EPC_INT=2
00037 };
00038
00039
00040
00078 class SIM_API cVarHistogram : public cHistogramBase
00079 {
00080 protected:
00081 int transform_type;
00082 int max_num_cells;
00083 double *bin_bounds;
00084
00085
00086
00087
00088
00089 protected:
00095 void createEquiProbableCells();
00096
00097 public:
00100
00104 cVarHistogram(const cVarHistogram& r) : cHistogramBase(r)
00105 {setName(r.name());bin_bounds=NULL;operator=(r);}
00106
00113 explicit cVarHistogram(const char *name=NULL,
00114 int numcells=11,
00115 int transformtype=HIST_TR_AUTO_EPC_DBL);
00116
00120 virtual ~cVarHistogram();
00121
00125 cVarHistogram& operator=(const cVarHistogram& res);
00127
00130
00135 virtual cPolymorphic *dup() const {return new cVarHistogram(*this);}
00136
00142 virtual void netPack(cCommBuffer *buffer);
00143
00149 virtual void netUnpack(cCommBuffer *buffer);
00151
00154
00158 virtual void clearResult();
00159
00164 virtual void transform();
00165
00170 virtual void collectTransformed(double val);
00171
00175 virtual double random() const;
00176
00180 virtual double pdf(double x) const;
00181
00185 virtual double cdf(double x) const;
00186
00190 virtual double basepoint(int k) const;
00191
00195 virtual double cell(int k) const;
00196
00200 virtual void saveToFile(FILE *) const;
00201
00205 virtual void loadFromFile(FILE *);
00207
00210
00217 virtual void addBinBound(double x);
00219 };
00220
00221 #endif
00222
00223