1 #ifndef NPSTAT_ELLIPTICALDISTRIBUTION_HH_
2 #define NPSTAT_ELLIPTICALDISTRIBUTION_HH_
63 virtual double density(
const double* x,
unsigned dim)
const;
64 virtual void unitMap(
const double* rnd,
unsigned bufLen,
double* x)
const;
67 double* x,
unsigned lenX)
const;
74 inline const Matrix<double>& getTransformationMatrix()
const
76 inline const std::vector<double>& getShift()
const {
return mu_;}
79 inline virtual gs::ClassId
classId()
const {
return gs::ClassId(*
this);}
80 virtual bool write(std::ostream& os)
const;
82 static inline const char* classname()
83 {
return "npstat::EllipticalDistribution";}
84 static inline unsigned version() {
return 1;}
88 virtual bool isEqual(
const AbsDistributionND&)
const;
90 std::vector<double> mu_;
92 Matrix<double> InvCovmat_;
93 AbsDistribution1D* g_;
94 AbsDistribution1D* h_;
100 void initialize(
const AbsDistribution1D& g,
const AbsDistribution1D& h);
103 mutable std::vector<double> buf_;
108 const double* transform,
unsigned nrows,
unsigned ncols,
109 const AbsDistribution1D& gDistro,
110 const AbsDistribution1D& hDistro)
111 : AbsDistributionND(dim1),
112 mu_(location1, location1+dim1),
113 A_(nrows, ncols, transform),
123 initialize(gDistro, hDistro);
126 inline AbsDistribution1D* getGDistro2()
const {
return g_->clone();}
127 inline AbsDistribution1D* getHDistro2()
const {
return h_->clone();}
128 inline Matrix<double> getTransformationMatrix2()
const
130 inline std::vector<double> getShift2()
const {
return mu_;}
Interface definition for 1-d continuous statistical distributions.
Interface definition for multivariate continuous statistical distributions.
Definition: AbsDistributionND.hh:26
unsigned dim() const
Definition: AbsDistributionND.hh:51
Definition: EllipticalDistribution.hh:23
virtual bool mappedByQuantiles() const
Definition: EllipticalDistribution.hh:65
EllipticalDistribution(const double *location, unsigned dim, const Matrix< double > &transformationMatrix, const AbsDistribution1D &gDistro, const AbsDistribution1D &hDistro)
double chiSquare(const double *x, unsigned dim) const
virtual gs::ClassId classId() const
Definition: EllipticalDistribution.hh:79
virtual EllipticalDistribution * clone() const
Definition: EllipticalDistribution.hh:58
virtual unsigned random(AbsRandomGenerator &g, double *x, unsigned lenX) const
virtual double density(const double *x, unsigned dim) const
virtual void unitMap(const double *rnd, unsigned bufLen, double *x) const
Definition: AbsArrayProjector.hh:14
Definition: AbsDistribution1D.hh:31
Definition: AbsRandomGenerator.hh:27