1 #ifndef NPSTAT_DISCRETEDISTRIBUTIONS1D_HH_
2 #define NPSTAT_DISCRETEDISTRIBUTIONS1D_HH_
27 template <
typename Real>
29 const unsigned probLen)
31 table_(probs, probs+probLen) {initialize();}
34 const std::vector<double>& probs)
36 table_(probs) {initialize();}
43 inline const std::vector<double>& probabilities()
const {
return table_;}
46 virtual gs::ClassId
classId()
const {
return gs::ClassId(*
this);}
47 virtual bool write(std::ostream& os)
const;
49 static inline const char* classname()
50 {
return "npstat::DiscreteTabulated1D";}
51 static inline unsigned version() {
return 1;}
52 static DiscreteTabulated1D* read(
const gs::ClassId&
id, std::istream&);
62 double unshiftedProbability(
long x)
const;
63 double unshiftedCdf(
double x)
const;
64 double unshiftedExceedance(
double x)
const;
65 long unshiftedQuantile(
double x)
const;
67 std::vector<double> table_;
68 std::vector<double> cdf_;
69 std::vector<double> exceedance_;
70 unsigned firstNonZero_;
71 unsigned lastNonZero_;
88 long first,
long oneAfterLast);
112 inline virtual ~
Poisson1D() {
delete table_;}
114 inline double mean()
const {
return lambda_;}
117 double cdf(
double x)
const;
123 virtual gs::ClassId
classId()
const {
return gs::ClassId(*
this);}
124 virtual bool write(std::ostream& os)
const;
126 static inline const char* classname() {
return "npstat::Poisson1D";}
127 static inline unsigned version() {
return 1;}
128 static Poisson1D* read(
const gs::ClassId&
id, std::istream& in);
134 return lambda_ == r.lambda_;
145 long double lnlambda_;
Interface definition for 1-d discrete statistical distributions.
Definition: DiscreteDistributions1D.hh:21
virtual bool isEqual(const AbsDiscreteDistribution1D &) const
virtual DiscreteTabulated1D * clone() const
Definition: DiscreteDistributions1D.hh:40
virtual gs::ClassId classId() const
Definition: DiscreteDistributions1D.hh:46
Definition: DiscreteDistributions1D.hh:103
virtual bool isEqual(const AbsDiscreteDistribution1D &o) const
Definition: DiscreteDistributions1D.hh:131
virtual Poisson1D * clone() const
Definition: DiscreteDistributions1D.hh:110
virtual gs::ClassId classId() const
Definition: DiscreteDistributions1D.hh:123
double cdf(double x) const
unsigned random(AbsRandomGenerator &g, long *generatedRandom) const
long quantile(double x) const
double exceedance(double x) const
double probability(long x) const
Definition: AbsDiscreteDistribution1D.hh:94
Definition: AbsArrayProjector.hh:14
DiscreteTabulated1D pooledDiscreteTabulated1D(const DiscreteTabulated1D &d1, double sampleSize1, const DiscreteTabulated1D &d2, double sampleSize2, long first, long oneAfterLast)
Definition: AbsDiscreteDistribution1D.hh:19
Definition: AbsRandomGenerator.hh:27