Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

TR1 C 函數快速參考

支持的 TR1 函數
namespace boost{ namespace math{ namespace tr1{ extern "C"{
   
// [5.2.1.1] 連帶拉格朗日函數:
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);

// [5.2.1.2] 連帶勒讓德函數:
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);

// [5.2.1.3] β函數:
double beta(double x, double y);
float betaf(float x, float y);
long double betal(long double x, long double y);

// [5.2.1.4] (完全)第一類橢圓積分:
double comp_ellint_1(double k);
float comp_ellint_1f(float k);
long double comp_ellint_1l(long double k);

// [5.2.1.5] (完全)第二類橢圓積分:
double comp_ellint_2(double k);
float comp_ellint_2f(float k);
long double comp_ellint_2l(long double k);

// [5.2.1.6] (完全)第三類橢圓積分:
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);

// [5.2.1.8] 規範化調整柱面貝賽爾函數:
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);

// [5.2.1.9] 柱面貝賽爾函數(第一類):
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);

// [5.2.1.10] 非規範化調整柱面貝賽爾函數:
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);

// [5.2.1.11] 柱面諾依曼函數;
// 柱面貝賽爾函數(第二類):
double cyl_neumann(double nu, double x);
float cyl_neumannf(float nu, float x);
long double cyl_neumannl(long double nu, long double x);

// [5.2.1.12] (不完全)第一類橢圓積分:
double ellint_1(double k, double phi);
float ellint_1f(float k, float phi);
long double ellint_1l(long double k, long double phi);

// [5.2.1.13] (不完全)第二類橢圓積分:
double ellint_2(double k, double phi);
float ellint_2f(float k, float phi);
long double ellint_2l(long double k, long double phi);

// [5.2.1.14] (不完全)第三類橢圓積分:
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);

// [5.2.1.15] 指數積分:
double expint(double x);
float expintf(float x);
long double expintl(long double x);

// [5.2.1.16] 哈米特多項式:
double hermite(unsigned n, double x);
float hermitef(unsigned n, float x);
long double hermitel(unsigned n, long double x);

// [5.2.1.18] 拉格朗日多項式:
double laguerre(unsigned n, double x);
float laguerref(unsigned n, float x);
long double laguerrel(unsigned n, long double x);

// [5.2.1.19] 勒讓德多項式:
double legendre(unsigned l, double x);
float legendref(unsigned l, float x);
long double legendrel(unsigned l, long double x);

// [5.2.1.20] 黎曼ζ函數:
double riemann_zeta(double);
float riemann_zetaf(float);
long double riemann_zetal(long double);

// [5.2.1.21] 球面貝賽爾函數(第一類):
double sph_bessel(unsigned n, double x);
float sph_besself(unsigned n, float x);
long double sph_bessell(unsigned n, long double x);

// [5.2.1.22] 球面可結合勒讓德函數:
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);

// [5.2.1.23] 球面諾依曼函數;
// 球面貝賽爾函數(第二類):
double sph_neumann(unsigned n, double x);
float sph_neumannf(unsigned n, float x);
long double sph_neumannl(unsigned n, long double x);

}}}} // namespaces

此外還提供了大量的上面函數的針對double版本的重載函數, 因此使用混合的 float, double, long double, 或 integer 參數都得到支持, 返回值的類型由返回值類型推導法則.來確定。

例如:

expintf(2.0f);  // float 版本, 返回 float.
expint(2.0f);   // 同樣也調用 float 版本 且返回float類型.
expint(2.0);    // double 版本, 返回 double.
expintl(2.0L);  // long double 版本, 返回 long double.
expint(2.0L);   // 同樣調用 long double 版本.
expint(2);      // integer 參數當作 double 對待, 返回 double.
快速參考
// [5.2.1.1]連帶拉格朗日多項式:
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);

返回 assoc_laguerre 函數:

參見laguerre瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.2]可結合勒讓德函數:
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);

返回 assoc_legendre函數 :

參見legendre_p瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.3] β函數:
double beta(double x, double y);
float betaf(float x, float y);
long double betal(long double x, long double y);

返回 xy的β函數:

參見beta 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.4] (完全)第一類橢圓積分:
double comp_ellint_1(double k);
float comp_ellint_1f(float k);
long double comp_ellint_1l(long double k);

返回k的第一類完全橢圓積分:

參見ellint_1瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.5] (完全)第二類橢圓積分:
double comp_ellint_2(double k);
float comp_ellint_2f(float k);
long double comp_ellint_2l(long double k);

返回k的第二類完全橢圓積分:

參見ellint_2瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.6] (完全)第三類橢圓積分:
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);

返回 knu的第三類完全橢圓積分:

參見ellint_3 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.8]規範化修正柱面貝賽爾函數:
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);

返回nux的第一類修正貝賽爾函數

參見cyl_bessel_i 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.9] 柱面貝賽函數 (第一類):
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);

返回nux的第一類貝賽爾函數:

參見cyl_bessel_j 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.10] 非規範化修正柱面貝賽爾函數:
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);

返回nux的第二類修正貝賽爾函數:

參見cyl_bessel_k 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.11] 柱面諾依曼函數;
// 柱面貝賽爾函數(第二類):
double cyl_neumann(double nu, double x);
float cyl_neumannf(float nu, float x);
long double cyl_neumannl(long double nu, long double x);

返回nux 的第二類貝賽爾函數(諾依曼函數):

參見cyl_neumann 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.12] (不完全) 第一類橢圓積分:
double ellint_1(double k, double phi);
float ellint_1f(float k, float phi);
long double ellint_1l(long double k, long double phi);

kphi的第一類不完全橢圓積分:

參見ellint_1瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.13] (不完全) 第二類橢圓積分:
double ellint_2(double k, double phi);
float ellint_2f(float k, float phi);
long double ellint_2l(long double k, long double phi);

kphi的第二類不完全橢圓積分:

參見ellint_2瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.14] (不完全) 第三類橢圓積分:
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);

返回k, nuphi和第三類不完全橢圓積分:

參見ellint_3瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.15] 指數積分:
double expint(double x);
float expintf(float x);
long double expintl(long double x);

返回x的指數積分 Ei :

參見expint瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.16] 哈米特多項式:
double hermite(unsigned n, double x);
float hermitef(unsigned n, float x);
long double hermitel(unsigned n, long double x);

返回x的n'th哈米特多項式

參見hermite瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.18] 拉格朗日多項式:
double laguerre(unsigned n, double x);
float laguerref(unsigned n, float x);
long double laguerrel(unsigned n, long double x);

返回x的 n'th勒讓德多項式:
  

參見laguerre 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.19] 勒讓德多項式:
double legendre(unsigned l, double x);
float legendref(unsigned l, float x);
long double legendrel(unsigned l, long double x);

返回x的 l'th勒讓德多項式:

參見legendre_p 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.20] 黎曼ζ函數:
double riemann_zeta(double);
float riemann_zetaf(float);
long double riemann_zetal(long double);

返回x的黎曼ζ函數

參見zeta 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.21] 球面貝賽爾函數(第一類):
double sph_bessel(unsigned n, double x);
float sph_besself(unsigned n, float x);
long double sph_bessell(unsigned n, long double x);

返回x的第一類球面貝賽爾函數 jn(x):

參見sph_bessel 瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.22] 球面連帶勒讓德函數:
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);

返回l, mtheta 的球面可結合勒讓德函數

參看spherical_harmonic瞭解這個函數的完全模板版本(只有頭文件).

// [5.2.1.23] 球面諾依曼函數;
//球面貝賽爾函數 (第二類):
double sph_neumann(unsigned n, double x);
float sph_neumannf(unsigned n, float x);
long double sph_neumannl(unsigned n, long double x);

返回x 的球面諾依曼函數yn(x):

參見sph_bessel 瞭解這個函數的完全模板版本(只有頭文件).

當前不支持的 TR1 函數
// [5.2.1.7] 合連幾何函數:
double conf_hyperg(double a, double c, double x);
float conf_hypergf(float a, float c, float x);
long double conf_hypergl(long double a, long double c, long double x);

// [5.2.1.17] 超幾何函數:
double hyperg(double a, double b, double c, double x);
float hypergf(float a, float b, float c, float x);
long double hypergl(long double a, long double b, long double c,
long double x);
[Note] 注意

因為它們不具備數值穩定性,所以沒有實現這兩個函數。


PrevUpHomeNext