|
Go to the documentation of this file. 1 #ifndef NPSTAT_DELTAMIXTURE1D_HH_
2 #define NPSTAT_DELTAMIXTURE1D_HH_
28 template < typename Real1, typename Real2>
30 const Real1* unscaledCoords,
31 const Real2* unscaledWeights,
32 const unsigned arrayLength)
34 {initialize(unscaledCoords, unscaledWeights, arrayLength);}
41 inline unsigned nComponents() const { return locations_.size();}
42 inline double getLocation( const unsigned i) const { return locations_.at(i);}
43 inline double getWeight( const unsigned i) const { return weights_.at(i);}
46 double integral( double a, bool includePointAtA,
47 double b, bool includePointAtB) const;
50 long double moment( long double center, unsigned order) const;
56 void moments( long double center, unsigned maxOrder,
67 virtual gs::ClassId classId() const { return gs::ClassId(* this);}
68 virtual bool write(std::ostream&) const;
70 static inline const char* classname() { return "npstat::DeltaMixture1D";}
71 static inline unsigned version() { return 1;}
72 static DeltaMixture1D* read( const gs::ClassId& id, std::istream& in);
81 const std::vector<double>& params);
82 inline static int nParameters() { return -1;}
84 template < typename Real1, typename Real2>
85 void initialize( const Real1* unscaledCoords,
86 const Real2* unscaledWeights,
87 const unsigned arrayLength);
90 inline double unscaledDensity( double ) const { return 0.0;}
91 double unscaledCdf( double x) const;
92 double unscaledExceedance( double x) const;
93 double unscaledQuantile( double x) const;
95 double weightSum( unsigned imin, unsigned imax) const;
98 void determineRange( double a, bool includeLeftBoundary,
99 double b, bool includeRightBoundary,
100 unsigned* imin, unsigned* imax) const;
102 std::vector<double> locations_;
103 std::vector<double> weights_;
104 std::vector<double> cdf_;
105 std::vector<double> exceedance_;
110 const double* coords, unsigned lenCoords,
111 const double* weights, unsigned lenWeights)
114 if (lenCoords != lenWeights) throw std::invalid_argument(
115 "In npstat::DeltaMixture1D constructor: "
116 "lengths of arrays of coordinates and weights are incompatible");
117 initialize(coords, weights, lenCoords);
121 const double* coords, unsigned lenCoords)
124 if (!lenCoords) throw std::invalid_argument(
125 "In npstat::DeltaMixture1D constructor: "
126 "empty array of coordinates");
127 std::vector<double> weights(lenCoords, 1.0);
128 initialize(coords, &weights[0], lenCoords);
131 inline double moment_2( const double center, const unsigned order) const
133 return moment(center, order);
136 inline std::vector<double> moments_2( const double center, const unsigned maxOrder) const
138 std::vector<long double> tmp(maxOrder+1U);
139 moments(center, maxOrder, &tmp[0]);
140 return std::vector<double>(tmp.begin(), tmp.end());
143 inline std::vector<double> centralMoments_2( const unsigned maxOrder) const
145 std::vector<long double> tmp(maxOrder+1U);
147 return std::vector<double>(tmp.begin(), tmp.end());
153 #include "npstat/stat/DeltaMixture1D.icc"
Interface definition for 1-d continuous statistical distributions.
Factories for 1-d distributions for use in interpretive language environments.
Definition: AbsDistribution1D.hh:165
double scale() const Definition: AbsDistribution1D.hh:183
AbsScalableDistribution1D(const double location, const double scale) Definition: AbsDistribution1D.hh:168
double location() const Definition: AbsDistribution1D.hh:180
Definition: DeltaMixture1D.hh:22
virtual DeltaMixture1D * clone() const Definition: DeltaMixture1D.hh:36
virtual gs::ClassId classId() const Definition: DeltaMixture1D.hh:67
long double moment(long double center, unsigned order) const
double integral(double a, bool includePointAtA, double b, bool includePointAtB) const
void centralMoments(unsigned maxOrder, long double *moments) const
void moments(long double center, unsigned maxOrder, long double *moments) const
virtual bool isEqual(const AbsDistribution1D &) const
DeltaMixture1D(const double location, const double scale, const Real1 *unscaledCoords, const Real2 *unscaledWeights, const unsigned arrayLength) Definition: DeltaMixture1D.hh:29
Definition: Distribution1DFactory.hh:35
Definition: AbsArrayProjector.hh:14
Definition: AbsDistribution1D.hh:31
|