1 #ifndef __JMATHSUPPORTKIT__
2 #define __JMATHSUPPORTKIT__
19 namespace JPP {
using namespace JMATH; }
52 inline double gauss(
const double x,
const double x0,
const double sigma)
79 inline double Gauss(
const double x,
const double x0,
const double sigma)
96 inline double Gamma(
const double a,
const double x)
100 const int max = 1000000;
105 const double gln = lgamma(
a);
118 double sum = 1.0 /
a;
121 for (
int i = 0; i != max; ++i) {
128 return sum*exp(-
x +
a*log(
x) - gln);
138 double b =
x + 1.0 -
a;
139 double c = 1.0 / FPMIN;
143 for (
int i = 1; i != max; ++i) {
145 const double an = -i * (i-
a);
150 if (fabs(d) < FPMIN) {
156 if (fabs(c) < FPMIN) {
162 const double del = d*c;
167 return 1.0 - exp(-
x +
a*log(
x) - gln) * h;
199 for (
size_t i = 2; i <=
n; ++i) {
202 p2 = ((2*i-1) *
x*
p1 - (i-1) * p0) / i;
220 if (
n == 0 ||
n < k) {
224 if (k == 0 ||
n == k) {
228 const int k1 = std::min(k,
n - k);
229 const int k2 =
n - k1;
231 double value = k2 + 1;
233 for (
int i = k1; i != 1; --i) {
234 value *= (double) (k2 + i) / (double) i;
248 inline double poisson(
const size_t n,
const double mu)
255 return exp(
n*log(mu) - lgamma(
n+1) - mu);
258 }
else if (mu == 0.0) {
260 return (
n == 0 ? 1.0 : 0.0);
274 inline double Poisson(
const size_t n,
const double mu)
276 return 1.0 -
Gamma(
n + 1, mu);
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for accessing a value in a collection that is outside of its range.
Auxiliary classes and methods for mathematical operations.
double Gamma(const double a, const double x)
Incomplete gamma function.
double poisson(const size_t n, const double mu)
Poisson probability density distribition.
static const double PI
Mathematical constants.
double Poisson(const size_t n, const double mu)
Poisson cumulative density distribition.
double Gauss(const double x, const double x0, const double sigma)
Normalised Gauss function.
double legendre(const size_t n, const double x)
Legendre polynome.
double binomial(const size_t n, const size_t k)
Binomial function.
double gauss(const double x, const double x0, const double sigma)
Gauss function (normalised to 1 at x = x0).
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).