29 Numerics library [numerics]

29.9 Mathematical functions for floating-point types [c.math]

29.9.5 Mathematical special functions [sf.cmath]

Если какое-либо значение аргумента для любой из функций, указанных в этом подпункте, является NaN (не числом), функция должна возвращать NaN, но не должна сообщать об ошибке домена. В противном случае функция должна сообщать об ошибке домена только для тех значений аргументов, для которых:

  • предложение описания функции Returns: явно указывает домен, и значения этих аргументов выходят за пределы указанного домена, или

  • соответствующее значение математической функции имеет ненулевую мнимую составляющую, или

  • соответствующая математическая функция математически не определена.286

Если не указано иное, каждая функция определена для всех конечных значений, для отрицательной бесконечности и для положительной бесконечности.

Математическая функция определяется математически для данного набора значений аргумента (a), если она явно определена для этого набора значений аргумента, или (b), если ее предельное значение существует и не зависит от направления подхода.

29.9.5.1 Associated Laguerre polynomials [sf.cmath.assoc_laguerre]

double assoc_laguerre(unsigned n, unsigned m, double x); float assoc_laguerref(unsigned n, unsigned m, float x); long double assoc_laguerrel(unsigned n, unsigned m, long double x);

Effects: Эти функции вычисления , связанные Лагерра многочлены своих аргументов n, mи x.

Returns:

Lmn(x)=(1)mdmdxmLn+m(x),for x0

где n есть n, m есть mи x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if n >= 128 или if m >= 128.

29.9.5.2 Associated Legendre functions [sf.cmath.assoc_legendre]

double assoc_legendre(unsigned l, unsigned m, double x); float assoc_legendref(unsigned l, unsigned m, float x); long double assoc_legendrel(unsigned l, unsigned m, long double x);

Effects: Эти функции вычисляются соответствующие функции Лежандра своих аргументов l, mи x.

Returns:

Pm(x)=(1x2)m/2dmdxmP(x),for |x|1

где l есть l, m есть mи x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if l >= 128.

29.9.5.3 Beta function [sf.cmath.beta]

double beta(double x, double y); float betaf(float x, float y); long double betal(long double x, long double y);

Effects: Эти функции вычисляют бета-функцию своих соответствующих аргументов x и y.

Returns:

B(x,y)=Γ(x)Γ(y)Γ(x+y),for x>0,y>0

где x есть x и y есть y.

29.9.5.4 Complete elliptic integral of the first kind [sf.cmath.comp_ellint_1]

double comp_ellint_1(double k); float comp_ellint_1f(float k); long double comp_ellint_1l(long double k);

Effects: Эти функции вычисляют полный эллиптический интеграл первого рода своих соответствующих аргументов k.

Returns:

K(k)=F(k,π/2),for |k|1

где k есть k.

См. Также [sf.cmath.ellint_1].

29.9.5.5 Complete elliptic integral of the second kind [sf.cmath.comp_ellint_2]

double comp_ellint_2(double k); float comp_ellint_2f(float k); long double comp_ellint_2l(long double k);

Effects: Эти функции вычисляют полный эллиптический интеграл второго рода своих соответствующих аргументов k.

Returns:

E(k)=E(k,π/2),for |k|1

где k есть k.

См. Также [sf.cmath.ellint_2].

29.9.5.6 Complete elliptic integral of the third kind [sf.cmath.comp_ellint_3]

double comp_ellint_3(double k, double nu); float comp_ellint_3f(float k, float nu); long double comp_ellint_3l(long double k, long double nu);

Effects: Эти функции вычисляют полный эллиптический интеграл третьего рода от своих соответствующих аргументов k и nu.

Returns:

Π(ν,k)=Π(ν,k,π/2),for |k|1

где k есть k и ν есть nu.

См. Также [sf.cmath.ellint_3].

29.9.5.7 Regular modified cylindrical Bessel functions [sf.cmath.cyl_bessel_i]

double cyl_bessel_i(double nu, double x); float cyl_bessel_if(float nu, float x); long double cyl_bessel_il(long double nu, long double x);

Effects: Эти функции вычисляют обычные модифицированные цилиндрические функции Бесселя своих соответствующих аргументов nu и x.

Returns:

Iν(x)=iνJν(ix)=k=0(x/2)ν+2kk!Γ(ν+k+1),for x0

где ν есть nu и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if nu >= 128.

См. Также [sf.cmath.cyl_bessel_j].

29.9.5.8 Cylindrical Bessel functions of the first kind [sf.cmath.cyl_bessel_j]

double cyl_bessel_j(double nu, double x); float cyl_bessel_jf(float nu, float x); long double cyl_bessel_jl(long double nu, long double x);

Effects: Эти функции вычисляют цилиндрические функции Бесселя первого рода с соответствующими аргументами nu и x.

Returns:

Jν(x)=k=0(1)k(x/2)ν+2kk!Γ(ν+k+1),for x0

где ν есть nu и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if nu >= 128.

29.9.5.9 Irregular modified cylindrical Bessel functions [sf.cmath.cyl_bessel_k]

double cyl_bessel_k(double nu, double x); float cyl_bessel_kf(float nu, float x); long double cyl_bessel_kl(long double nu, long double x);

Effects: Эти функции вычисляют нерегулярные модифицированные цилиндрические функции Бесселя своих соответствующих аргументов nu и x.

Returns:

Kν(x)=(π/2)iν+1(Jν(ix)+iNν(ix))=⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪π2Iν(x)Iν(x)sinνπ,for x0 and non-integral νπ2limμνIμ(x)Iμ(x)sinμπ,for x0 and integral ν

где ν есть nu и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if nu >= 128.

29.9.5.10 Cylindrical Neumann functions [sf.cmath.cyl_neumann]

double cyl_neumann(double nu, double x); float cyl_neumannf(float nu, float x); long double cyl_neumannl(long double nu, long double x);

Effects: Эти функции вычисляют цилиндрические функции Неймана, также известные как цилиндрические функции Бесселя второго рода, их соответствующих аргументов nu и x.

Returns:

Nν(x)=⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪Jν(x)cosνπJν(x)sinνπ,for x0 and non-integral νlimμνJμ(x)cosμπJμ(x)sinμπ,for x0 and integral ν

где ν есть nu и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if nu >= 128.

См. Также [sf.cmath.cyl_bessel_j].

29.9.5.11 Incomplete elliptic integral of the first kind [sf.cmath.ellint_1]

double ellint_1(double k, double phi); float ellint_1f(float k, float phi); long double ellint_1l(long double k, long double phi);

Effects: Эти функции вычисляют неполный эллиптический интеграл первого типа своих соответствующих аргументов k и phi (phi измеряется в радианах).

Returns:

F(k,ϕ)=ϕ0dθ1k2sin2θ,for |k|1

где k есть k и φ есть phi.

29.9.5.12 Incomplete elliptic integral of the second kind [sf.cmath.ellint_2]

double ellint_2(double k, double phi); float ellint_2f(float k, float phi); long double ellint_2l(long double k, long double phi);

Effects: Эти функции вычисляют неполный эллиптический интеграл второго рода своих соответствующих аргументов k и phi (phi измеряется в радианах).

Returns:

E(k,ϕ)=ϕ01k2sin2θdθ,for |k|1

где k есть k и φ есть phi.

29.9.5.13 Incomplete elliptic integral of the third kind [sf.cmath.ellint_3]

double ellint_3(double k, double nu, double phi); float ellint_3f(float k, float nu, float phi); long double ellint_3l(long double k, long double nu, long double phi);

Effects: Эти функции вычислить неполный эллиптический интеграл третьего рода их соответствующих аргументов k, nuи phi (phi измеренный в радианах).

Returns:

Π(ν,k,ϕ)=ϕ0dθ(1νsin2θ)1k2sin2θ,for |k|1

где ν есть nu, k есть kи φ есть phi.

29.9.5.14 Exponential integral [sf.cmath.expint]

double expint(double x); float expintf(float x); long double expintl(long double x);

Effects: Эти функции вычисляют экспоненциальный интеграл своих соответствующих аргументов x.

Returns:

Ei(x)=xettdt

где x есть x.

29.9.5.15 Hermite polynomials [sf.cmath.hermite]

double hermite(unsigned n, double x); float hermitef(unsigned n, float x); long double hermitel(unsigned n, long double x);

Effects: Эти функции вычисляют полиномы Эрмита своих аргументов n и x.

Returns:

Hn(x)=(1)nex2dndxnex2

где n есть n и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if n >= 128.

29.9.5.16 Laguerre polynomials [sf.cmath.laguerre]

double laguerre(unsigned n, double x); float laguerref(unsigned n, float x); long double laguerrel(unsigned n, long double x);

Effects: Эти функции вычисляют полиномы Лагерра своих аргументов n и x.

Returns:

Ln(x)=exn!dndxn(xnex),for x0

где n есть n и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if n >= 128.

29.9.5.17 Legendre polynomials [sf.cmath.legendre]

double legendre(unsigned l, double x); float legendref(unsigned l, float x); long double legendrel(unsigned l, long double x);

Effects: Эти функции вычисляют полиномы Лежандра своих аргументов l и x.

Returns:

P(x)=12!ddx(x21),for |x|1

где l есть l и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if l >= 128.

29.9.5.18 Riemann zeta function [sf.cmath.riemann_zeta]

double riemann_zeta(double x); float riemann_zetaf(float x); long double riemann_zetal(long double x);

Effects: Эти функции вычисляют дзета-функцию Римана своих соответствующих аргументов x.

Returns:

ζ(x)=⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪k=1kx,for x>11121xk=1(1)k1kx,for 0x12xπx1sin(πx2)Γ(1x)ζ(1x),for x<0

где x есть x.

29.9.5.19 Spherical Bessel functions of the first kind [sf.cmath.sph_bessel]

double sph_bessel(unsigned n, double x); float sph_besself(unsigned n, float x); long double sph_bessell(unsigned n, long double x);

Effects: Эти функции вычисляют сферические функции Бесселя первого рода их соответствующих аргументов n и x.

Returns:

jn(x)=(π/2x)1/2Jn+1/2(x),for x0

где n есть n и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if n >= 128.

См. Также [sf.cmath.cyl_bessel_j].

29.9.5.20 Spherical associated Legendre functions [sf.cmath.sph_legendre]

double sph_legendre(unsigned l, unsigned m, double theta); float sph_legendref(unsigned l, unsigned m, float theta); long double sph_legendrel(unsigned l, unsigned m, long double theta);

Effects: Эти функции вычислить сферические функции Лежандра связанные с их соответствующих аргументов l, mи theta (theta в радианах).

Returns:

Ym(θ,0)

куда

Ym(θ,ϕ)=(1)m[(2+1)4π(m)!(+m)!]1/2Pm(cosθ)eimϕ,for |m|

и l есть l, m есть mи θ есть theta.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if l >= 128.

См. Также [sf.cmath.assoc_legendre].

29.9.5.21 Spherical Neumann functions [sf.cmath.sph_neumann]

double sph_neumann(unsigned n, double x); float sph_neumannf(unsigned n, float x); long double sph_neumannl(unsigned n, long double x);

Effects: Эти функции вычисляют сферические функции Неймана, также известные как сферические функции Бесселя второго рода, их соответствующих аргументов n и x.

Returns:

nn(x)=(π/2x)1/2Nn+1/2(x),for x0

где n есть n и x есть x.

Remarks: Эффект от вызова каждой из этих функций определяется реализацией if n >= 128.

См. Также [sf.cmath.cyl_neumann].