20#ifndef _specialfunctions_pkg_h
21#define _specialfunctions_pkg_h
23#include "alglibinternal.h"
64double gammafunction(
const double x);
99double lngamma(
const double x,
double &sgngam);
127double errorfunction(
const double x);
157double errorfunctionc(
const double x);
190double normaldistribution(
const double x);
199double inverf(
const double e);
227double invnormaldistribution(
const double y0);
258double incompletegamma(
const double a,
const double x);
294double incompletegammac(
const double a,
const double x);
333double invincompletegammac(
const double a,
const double y0);
365double ellipticintegralk(
const double m);
404double ellipticintegralkhighprecision(
const double m1);
441double incompleteellipticintegralk(
const double phi,
const double m);
471double ellipticintegrale(
const double m);
504double incompleteellipticintegrale(
const double phi,
const double m);
516double hermitecalculate(
const ae_int_t n,
const double x);
532double hermitesum(
const real_1d_array &c,
const ae_int_t n,
const double x);
544void hermitecoefficients(
const ae_int_t n, real_1d_array &c);
571double dawsonintegral(
const double x);
612void sinecosineintegrals(
const double x,
double &si,
double &ci);
655void hyperbolicsinecosineintegrals(
const double x,
double &shi,
double &chi);
682double poissondistribution(
const ae_int_t k,
const double m);
711double poissoncdistribution(
const ae_int_t k,
const double m);
733double invpoissondistribution(
const ae_int_t k,
const double y);
765double besselj0(
const double x);
788double besselj1(
const double x);
818double besseljn(
const ae_int_t n,
const double x);
849double bessely0(
const double x);
873double bessely1(
const double x);
898double besselyn(
const ae_int_t n,
const double x);
922double besseli0(
const double x);
946double besseli1(
const double x);
970double besselk0(
const double x);
992double besselk1(
const double x);
1017double besselkn(
const ae_int_t nn,
const double x);
1060double incompletebeta(
const double a,
const double b,
const double x);
1091double invincompletebeta(
const double a,
const double b,
const double y);
1125double fdistribution(
const ae_int_t a,
const ae_int_t b,
const double x);
1164double fcdistribution(
const ae_int_t a,
const ae_int_t b,
const double x);
1202double invfdistribution(
const ae_int_t a,
const ae_int_t b,
const double y);
1246void fresnelintegral(
const double x,
double &c,
double &s);
1288void jacobianellipticfunctions(
const double u,
const double m,
double &sn,
double &cn,
double &dn,
double &ph);
1329double psi(
const double x);
1356double exponentialintegralei(
const double x);
1390double exponentialintegralen(
const double x,
const ae_int_t n);
1402double laguerrecalculate(
const ae_int_t n,
const double x);
1417double laguerresum(
const real_1d_array &c,
const ae_int_t n,
const double x);
1429void laguerrecoefficients(
const ae_int_t n, real_1d_array &c);
1464double chisquaredistribution(
const double v,
const double x);
1498double chisquarecdistribution(
const double v,
const double x);
1521double invchisquaredistribution(
const double v,
const double y);
1533double legendrecalculate(
const ae_int_t n,
const double x);
1549double legendresum(
const real_1d_array &c,
const ae_int_t n,
const double x);
1561void legendrecoefficients(
const ae_int_t n, real_1d_array &c);
1585double beta(
const double a,
const double b);
1599double chebyshevcalculate(
const ae_int_t r,
const ae_int_t n,
const double x);
1619double chebyshevsum(
const real_1d_array &c,
const ae_int_t r,
const ae_int_t n,
const double x);
1631void chebyshevcoefficients(
const ae_int_t n, real_1d_array &c);
1647void fromchebyshev(
const real_1d_array &a,
const ae_int_t n, real_1d_array &b);
1690double studenttdistribution(
const ae_int_t k,
const double t);
1710double invstudenttdistribution(
const ae_int_t k,
const double p);
1743double binomialdistribution(
const ae_int_t k,
const ae_int_t n,
const double p);
1779double binomialcdistribution(
const ae_int_t k,
const ae_int_t n,
const double p);
1810double invbinomialdistribution(
const ae_int_t k,
const ae_int_t n,
const double y);
1844void airy(
const double x,
double &ai,
double &aip,
double &bi,
double &bip);
1852namespace alglib_impl
1854double gammafunction(
double x, ae_state *_state);
1855double lngamma(
double x,
double* sgngam, ae_state *_state);
1856double errorfunction(
double x, ae_state *_state);
1857double errorfunctionc(
double x, ae_state *_state);
1858double normaldistribution(
double x, ae_state *_state);
1859double inverf(
double e, ae_state *_state);
1860double invnormaldistribution(
double y0, ae_state *_state);
1861double incompletegamma(
double a,
double x, ae_state *_state);
1862double incompletegammac(
double a,
double x, ae_state *_state);
1863double invincompletegammac(
double a,
double y0, ae_state *_state);
1864double ellipticintegralk(
double m, ae_state *_state);
1865double ellipticintegralkhighprecision(
double m1, ae_state *_state);
1866double incompleteellipticintegralk(
double phi,
double m, ae_state *_state);
1867double ellipticintegrale(
double m, ae_state *_state);
1868double incompleteellipticintegrale(
double phi,
double m, ae_state *_state);
1869double hermitecalculate(ae_int_t n,
double x, ae_state *_state);
1870double hermitesum( ae_vector* c,
1874void hermitecoefficients(ae_int_t n,
1877double dawsonintegral(
double x, ae_state *_state);
1878void sinecosineintegrals(
double x,
1882void hyperbolicsinecosineintegrals(
double x,
1886double poissondistribution(ae_int_t k,
double m, ae_state *_state);
1887double poissoncdistribution(ae_int_t k,
double m, ae_state *_state);
1888double invpoissondistribution(ae_int_t k,
double y, ae_state *_state);
1889double besselj0(
double x, ae_state *_state);
1890double besselj1(
double x, ae_state *_state);
1891double besseljn(ae_int_t n,
double x, ae_state *_state);
1892double bessely0(
double x, ae_state *_state);
1893double bessely1(
double x, ae_state *_state);
1894double besselyn(ae_int_t n,
double x, ae_state *_state);
1895double besseli0(
double x, ae_state *_state);
1896double besseli1(
double x, ae_state *_state);
1897double besselk0(
double x, ae_state *_state);
1898double besselk1(
double x, ae_state *_state);
1899double besselkn(ae_int_t nn,
double x, ae_state *_state);
1900double incompletebeta(
double a,
double b,
double x, ae_state *_state);
1901double invincompletebeta(
double a,
double b,
double y, ae_state *_state);
1902double fdistribution(ae_int_t a, ae_int_t b,
double x, ae_state *_state);
1903double fcdistribution(ae_int_t a, ae_int_t b,
double x, ae_state *_state);
1904double invfdistribution(ae_int_t a,
1908void fresnelintegral(
double x,
double* c,
double* s, ae_state *_state);
1909void jacobianellipticfunctions(
double u,
1916double psi(
double x, ae_state *_state);
1917double exponentialintegralei(
double x, ae_state *_state);
1918double exponentialintegralen(
double x, ae_int_t n, ae_state *_state);
1919double laguerrecalculate(ae_int_t n,
double x, ae_state *_state);
1920double laguerresum( ae_vector* c,
1924void laguerrecoefficients(ae_int_t n,
1927double chisquaredistribution(
double v,
double x, ae_state *_state);
1928double chisquarecdistribution(
double v,
double x, ae_state *_state);
1929double invchisquaredistribution(
double v,
double y, ae_state *_state);
1930double legendrecalculate(ae_int_t n,
double x, ae_state *_state);
1931double legendresum( ae_vector* c,
1935void legendrecoefficients(ae_int_t n,
1938double beta(
double a,
double b, ae_state *_state);
1939double chebyshevcalculate(ae_int_t r,
1943double chebyshevsum( ae_vector* c,
1948void chebyshevcoefficients(ae_int_t n,
1951void fromchebyshev( ae_vector* a,
1955double studenttdistribution(ae_int_t k,
double t, ae_state *_state);
1956double invstudenttdistribution(ae_int_t k,
double p, ae_state *_state);
1957double binomialdistribution(ae_int_t k,
1961double binomialcdistribution(ae_int_t k,
1965double invbinomialdistribution(ae_int_t k,