Home Libraries People FAQ More

#### 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
```

```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);
```

```// [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);
```

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

```// [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的第二類不完全橢圓積分：

```// [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);
```

##### 當前不支持的 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);
```
注意 因為它們不具備數值穩定性，所以沒有實現這兩個函數。