|
Go to the documentation of this file. 1 #ifndef NPSTAT_ELLIPTICALDISTRIBUTIONS_HH_
2 #define NPSTAT_ELLIPTICALDISTRIBUTIONS_HH_
43 inline virtual gs::ClassId classId() const { return gs::ClassId(* this);}
44 inline virtual bool write(std::ostream& os) const
47 EllipticalDistribution::write(os);
50 static inline const char* classname()
51 { return "npstat::EllipticalNormal";}
52 static inline unsigned version() { return 1;}
53 static inline EllipticalNormal* read(
54 const gs::ClassId& id, std::istream& in)
56 static const gs::ClassId current(
57 gs::ClassId::makeId<EllipticalNormal>());
58 current.ensureSameId( id);
59 CPP11_auto_ptr<EllipticalDistribution> pb =
60 gs::read_obj<EllipticalDistribution>(in);
61 return new EllipticalNormal(*pb);
65 inline EllipticalNormal( const EllipticalDistribution& b)
70 inline EllipticalNormal( const double* location1, unsigned dim1,
71 const double* transform, unsigned nrows, unsigned ncols)
73 transform, nrows, ncols,
74 Exponential1D(0.0, 2.0),
75 Gamma1D(0.0, 2.0, dim1/2.0)) {}
85 const unsigned N, const double r, const double s)
87 location1, dim1, transformationMatrix,
90 N_(N), r_(r), s_(s) {calcNorm();}
94 virtual double density( const double* location1, unsigned dim1) const;
97 inline virtual gs::ClassId classId() const { return gs::ClassId(* this);}
98 virtual bool write(std::ostream& os) const;
100 static inline const char* classname()
101 { return "npstat::EllipticalKotz";}
102 static inline unsigned version() { return 1;}
103 static EllipticalKotz* read( const gs::ClassId& id, std::istream& in);
106 inline virtual bool isEqual( const AbsDistributionND& other) const
109 return EllipticalDistribution::isEqual(r) &&
110 N_ == r.N_ && r_ == r.r_ && s_ == r.s_;
117 const unsigned N, const double r, const double s)
119 N_(N), r_(r), s_(s) {calcNorm();}
129 const double* transform, unsigned nrows, unsigned ncols,
130 const unsigned N, const double r, const double s)
132 location1, dim1, transform, nrows, ncols,
133 TransformedDistribution1D(PowerTransform1D(r, s), Gamma1D(0.0, 1.0, N/s)),
134 TransformedDistribution1D(PowerTransform1D(r, s), Gamma1D(0.0, 1.0, (N+dim1/2.0-1)/s))),
135 N_(N), r_(r), s_(s) {calcNorm();}
148 const unsigned N, const double s)
150 location1, dim1, transformationMatrix,
157 inline virtual gs::ClassId classId() const { return gs::ClassId(* this);}
158 inline virtual bool write(std::ostream& os) const
161 EllipticalDistribution::write(os);
164 static inline const char* classname()
165 { return "npstat::EllipticalPearsonTypeVII";}
166 static inline unsigned version() { return 1;}
168 const gs::ClassId& id, std::istream& in)
170 static const gs::ClassId current(
171 gs::ClassId::makeId<EllipticalPearsonTypeVII>());
172 current.ensureSameId( id);
173 CPP11_auto_ptr<EllipticalDistribution> pb =
174 gs::read_obj<EllipticalDistribution>(in);
185 const double* transform, unsigned nrows, unsigned ncols,
186 const unsigned N, const double s)
188 location1, dim1, transform, nrows, ncols,
189 PowerRatio1D(0.0, s, 0, N),
190 PowerRatio1D(0.0, s, static_cast<int>(dim1)-2, N)) {}
204 const unsigned m, const double s)
206 transformationMatrix,
207 Beta1D(0.0, s, 1.0, m+1U),
208 Beta1D(0.0, s, dim1/2.0, m+1U)) {}
213 inline virtual gs::ClassId classId() const { return gs::ClassId(* this);}
214 inline virtual bool write(std::ostream& os) const
217 EllipticalDistribution::write(os);
220 static inline const char* classname()
221 { return "npstat::EllipticalPearsonTypeII";}
222 static inline unsigned version() { return 1;}
224 const gs::ClassId& id, std::istream& in)
226 static const gs::ClassId current(
227 gs::ClassId::makeId<EllipticalPearsonTypeII>());
228 current.ensureSameId( id);
229 CPP11_auto_ptr<EllipticalDistribution> pb =
230 gs::read_obj<EllipticalDistribution>(in);
241 const double* transform, unsigned nrows, unsigned ncols,
242 const unsigned m, const double s)
244 transform, nrows, ncols,
245 Beta1D(0.0, s, 1.0, m+1U),
246 Beta1D(0.0, s, dim1/2.0, m+1U)) {}
A number of useful 1-d continuous statistical distributions.
Multivariate elliptical ditributions.
Distribution with unscaled density proportional to x^m/(1 + x)^n for x >= 0 (and 0 for x < 0)....
Definition: Distributions1D.hh:554
Definition: EllipticalDistribution.hh:23
EllipticalDistribution(const double *location, unsigned dim, const Matrix< double > &transformationMatrix, const AbsDistribution1D &gDistro, const AbsDistribution1D &hDistro)
virtual gs::ClassId classId() const Definition: EllipticalDistribution.hh:79
Definition: EllipticalDistributions.hh:80
virtual double density(const double *location1, unsigned dim1) const
virtual gs::ClassId classId() const Definition: EllipticalDistributions.hh:97
EllipticalKotz(const double *location1, unsigned dim1, const Matrix< double > &transformationMatrix, const unsigned N, const double r, const double s) Definition: EllipticalDistributions.hh:83
Definition: EllipticalDistributions.hh:31
virtual gs::ClassId classId() const Definition: EllipticalDistributions.hh:43
Definition: EllipticalDistributions.hh:195
EllipticalPearsonTypeII(const double *location1, unsigned dim1, const Matrix< double > &transformationMatrix, const unsigned m, const double s) Definition: EllipticalDistributions.hh:202
virtual gs::ClassId classId() const Definition: EllipticalDistributions.hh:213
Definition: EllipticalDistributions.hh:140
virtual gs::ClassId classId() const Definition: EllipticalDistributions.hh:157
EllipticalPearsonTypeVII(const double *location1, unsigned dim1, const Matrix< double > &transformationMatrix, const unsigned N, const double s) Definition: EllipticalDistributions.hh:146
Definition: Distributions1D.hh:100
Definition: Distributions1D.hh:597
Definition: PowerRatio1D.hh:20
Definition: AbsArrayProjector.hh:14
|