|
Go to the documentation of this file. 1 #ifndef NPSTAT_ABSSMOOTHGOFTEST1D_HH_
2 #define NPSTAT_ABSSMOOTHGOFTEST1D_HH_
25 const unsigned char* mask, unsigned lenMask);
28 const std::vector<int>& mask);
32 inline unsigned maxDegree() const { return maxdeg_;}
33 inline unsigned nDegreesUsed() const { return nUnmasked_;}
34 inline bool isDegreeUsed( const unsigned n) const
37 const unsigned i = n - 1U;
38 return i >= maxdeg_ ? false : !mask_[i];
41 virtual double testStatistic(
42 const double* data, unsigned long sz,
43 bool isDataSorted) const;
45 virtual double testStatistic(
46 const float* data, unsigned long sz,
47 bool isDataSorted) const;
49 inline virtual bool hasAnalyticPValue() const { return true;}
59 double statMin, double statMax) const;
69 const double* data, unsigned long sz,
71 double* deviations, unsigned lenDeviations) const=0;
74 const float* data, unsigned long sz,
76 double* deviations, unsigned lenDeviations) const=0;
86 const double* direction, unsigned lenDirection,
87 const double* data, unsigned long sz,
88 bool isDataSorted) const
90 return directedStat(direction, lenDirection, data, sz, isDataSorted);
94 const double* direction, unsigned lenDirection,
95 const float* data, unsigned long sz,
96 bool isDataSorted) const
98 return directedStat(direction, lenDirection, data, sz, isDataSorted);
102 inline void simulateDirectedStatistic(
103 const double* direction, unsigned lenDirection,
104 AbsRandomGenerator& g, unsigned long sz,
105 unsigned nPseudo, std::vector<double>* stats) const
107 simulateAltDirectedStatistic(direction, lenDirection,
108 *distro_, g, sz, nPseudo, stats);
113 virtual void simulateAltDirectedStatistic(
114 const double* direction, unsigned lenDirection,
115 const AbsDistribution1D& alternative,
116 AbsRandomGenerator& g, unsigned long sz,
117 unsigned nPseudo, std::vector<double>* stats) const;
120 std::string testNameWithMask( const char* prefix) const;
122 std::vector<unsigned char> mask_;
127 template< typename Numeric>
128 double directedStat( const double* direction, unsigned lenDirection,
129 const Numeric* data, unsigned long sz,
130 bool isDataSorted) const;
132 template< typename Numeric>
133 void initMask( const Numeric* mask, unsigned lenMask);
135 mutable std::vector<double> devBuf_;
139 inline std::vector<double> normalizedDeviations2(
140 const double* data, unsigned long sz,
141 const bool dataIsSorted) const
143 std::vector<double> tmp(nUnmasked_);
145 &tmp[0], nUnmasked_);
149 inline std::vector<double> simulateDirectedStatistic2(
150 const double* direction, unsigned lenDirection,
151 AbsRandomGenerator& g, const unsigned long sz,
152 const unsigned nPseudo) const
154 std::vector<double> tmp;
155 simulateDirectedStatistic(direction, lenDirection,
156 g, sz, nPseudo, &tmp);
160 inline std::vector<double> simulateAltDirectedStatistic2(
161 const double* direction, unsigned lenDirection,
162 const AbsDistribution1D& alternative,
163 AbsRandomGenerator& g, const unsigned long sz,
164 const unsigned nPseudo) const
166 std::vector<double> tmp;
167 simulateAltDirectedStatistic(direction, lenDirection,
168 alternative, g, sz, nPseudo, &tmp);
175 #include "npstat/stat/AbsSmoothGOFTest1D.icc"
Interface definition for goodness-of-fit tests for 1-d distributions.
Definition: AbsSmoothGOFTest1D.hh:20
virtual double inverseExceedance(double pvalue, unsigned long sz, double statMin, double statMax) const
virtual unsigned normalizedDeviations(const double *data, unsigned long sz, bool isDataSorted, double *deviations, unsigned lenDeviations) const =0
virtual double directedStatistic(const double *direction, unsigned lenDirection, const double *data, unsigned long sz, bool isDataSorted) const Definition: AbsSmoothGOFTest1D.hh:85
virtual double analyticPValue(double stat, unsigned long sz) const
Definition: AbsUnbinnedGOFTest1D.hh:24
Definition: AbsArrayProjector.hh:14
Definition: AbsDistribution1D.hh:31
|