#ifndef DHYPER_H_
#define DHYPER_H_
#include <distributions/DistDiscrete.h>
/**
* @short Hypergeometric distribution
* <pre>
* R ~ dhyper(n1,n2,m1,psi)
* </pre>
*/
class DHyper : public DistDiscrete {
public:
DHyper();
~DHyper();
double d(double x, std::vector<SArray const *> const ¶meters,
bool give_log) const;
double p(double x, std::vector<SArray const *> const ¶meters, bool lower,
bool give_log) const;
double q(double p, std::vector<SArray const *> const ¶meters, bool lower,
bool log_p) const;
double r(std::vector<SArray const *> const ¶meters) const;
double l(std::vector<SArray const *> const ¶meters) const;
double u(std::vector<SArray const *> const ¶meters) const;
double mean(std::vector<SArray const *> const ¶meters) const;
double var(std::vector<SArray const *> const ¶meters) const;
/**
* Checks that R, p and n are scalar
*/
bool checkParameterDim (std::vector<SArray const *> const ¶meters) const;
/**
* Checks that p lies in (0,1) and n > 1
*/
bool checkParameterValue(std::vector<SArray const *> const ¶meters) const;
};
#endif /* DHYPER_H_ */
syntax highlighted by Code2HTML, v. 0.9.1