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:
00093 void createEquiProbableCells();
00094
00095 public:
00098
00102 cVarHistogram(const cVarHistogram& r) : cHistogramBase(r)
00103 {setName(r.name());bin_bounds=NULL;operator=(r);}
00104
00109 explicit cVarHistogram(const char *name=NULL,
00110 int numcells=11,
00111 int transformtype=HIST_TR_AUTO_EPC_DBL);
00112
00116 virtual ~cVarHistogram();
00117
00121 cVarHistogram& operator=(const cVarHistogram& res);
00123
00126
00131 virtual cObject *dup() const {return new cVarHistogram(*this);}
00132
00138 virtual int netPack();
00139
00145 virtual int netUnpack();
00147
00150
00154 virtual void clearResult();
00155
00160 virtual void transform();
00161
00166 virtual void collectTransformed(double val);
00167
00171 virtual double random() const;
00172
00176 virtual double pdf(double x) const;
00177
00181 virtual double cdf(double x) const;
00182
00186 virtual double basepoint(int k) const;
00187
00191 virtual double cell(int k) const;
00192
00196 virtual void saveToFile(FILE *) const;
00197
00201 virtual void loadFromFile(FILE *);
00203
00206
00213 virtual void addBinBound(double x);
00215 };
00216
00217 #endif
00218
00219