00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __CPSQUARE_H
00023 #define __CPSQUARE_H
00024
00025 #include "iostream.h"
00026 #include "cdensity.h"
00027
00028
00029
00036 class SIM_API cPSquare : public cDensityEstBase
00037 {
00038 protected:
00039 int numcells;
00040 long numobs;
00041 int *n;
00042 double *q;
00043
00044 public:
00047
00051 cPSquare(const cPSquare& r);
00052
00056 explicit cPSquare(const char *name=NULL, int cells=10);
00057
00061 virtual ~cPSquare();
00062
00066 cPSquare& operator=(const cPSquare& res);
00068
00071
00075 virtual const char *className() const {return "cPSquare";}
00076
00081 virtual cObject *dup() const {return new cPSquare(*this);}
00082
00088 virtual int netPack();
00089
00095 virtual int netUnpack();
00096
00101 virtual void writeContents(ostream& os);
00103
00104 private:
00105
00106 void giveError();
00107
00108 protected:
00113 virtual void collectTransformed(double val);
00114
00115 public:
00118
00122 virtual void transform() {}
00123
00128 virtual void setRange(double,double) {giveError();}
00129
00134 virtual void setRangeAuto(int,double) {giveError();}
00135
00140 virtual void setRangeAutoLower(double,int,double) {giveError();}
00141
00146 virtual void setRangeAutoUpper(double,int,double) {giveError();}
00147
00152 virtual void setNumFirstVals(int) {giveError();}
00153
00157 virtual int cells() const;
00158
00164 virtual double basepoint(int k) const;
00165
00169 virtual double cell(int k) const;
00170
00174 virtual double cdf(double x) const;
00175
00179 virtual double pdf(double x) const;
00180
00184 virtual double random() const;
00185
00189 virtual void saveToFile(FILE *) const;
00190
00194 virtual void loadFromFile(FILE *);
00196 };
00197
00198 #endif
00199