Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

C99 C 函數

支持的 C99 函數
namespace boost{ namespace math{ namespace tr1{ extern "C"{

typedef unspecified float_t;
typedef unspecified double_t;

double acosh(double x);
float acoshf(float x);
long double acoshl(long double x);

double asinh(double x);
float asinhf(float x);
long double asinhl(long double x);

double atanh(double x);
float atanhf(float x);
long double atanhl(long double x);

double cbrt(double x);
float cbrtf(float x);
long double cbrtl(long double x);

double copysign(double x, double y);
float copysignf(float x, float y);
long double copysignl(long double x, long double y);

double erf(double x);
float erff(float x);
long double erfl(long double x);

double erfc(double x);
float erfcf(float x);
long double erfcl(long double x);

double expm1(double x);
float expm1f(float x);
long double expm1l(long double x);

double fmax(double x, double y);
float fmaxf(float x, float y);
long double fmaxl(long double x, long double y);

double fmin(double x, double y);
float fminf(float x, float y);
long double fminl(long double x, long double y);

double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);

double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);

long long llround(double x);
long long llroundf(float x);
long long llroundl(long double x);

double log1p(double x);
float log1pf(float x);
long double log1pl(long double x);

long lround(double x);
long lroundf(float x);
long lroundl(long double x);

double nextafter(double x, double y);
float nextafterf(float x, float y);
long double nextafterl(long double x, long double y);

double nexttoward(double x, long double y);
float nexttowardf(float x, long double y);
long double nexttowardl(long double x, long double y);

double round(double x);
float roundf(float x);
long double roundl(long double x);

double tgamma(double x);
float tgammaf(float x);
long double tgammal(long double x);

double trunc(double x);
float truncf(float x);
long double truncl(long double x);

}}}} // namespaces

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

例如:

acoshf(2.0f);  // float 版本, 返回 float.
acosh(2.0f);   // 同樣也調用 float 版本 且返回float類型.
acosh(2.0);    // double 版本, 返回 double.
acoshl(2.0L);  // long double 版本, 返回 long double.
acosh(2.0L);   // 同樣調用 long double 版本.
acosh(2);      // integer 參數當作 double 對待, 返回 double.
快速參考

在 C99 標準中有關於這些函數的更詳細的描述.

typedef unspecified float_t;
typedef unspecified double_t;

在這種實現中float_tfloat是相同的類型, 並且double_tdouble是同一種類型, 除非定義了預處理符號 FLT_EVAL_METHOD , 在這種情況下設定如下:

FLT_EVAL_METHOD

float_t

double_t

0

float

double

1

double

double

2

long double

long double

double acosh(double x);
float acoshf(float x);
long double acoshl(long double x);

返回x的反雙曲餘弦值

參看acosh 瞭解這個函數的完整的模板形式 (只有頭文件).

double asinh(double x);
float asinhf(float x);
long double asinhl(long double x);

返回x.的反雙曲正弦值

參看asinh 瞭解這個函數的完整的模板形式 (只有頭文件).

double atanh(double x);
float atanhf(float x);
long double atanhl(long double x);

返回x的反雙曲正切值

參看atanh 瞭解這個函數的完整的模板形式 (只有頭文件).

double cbrt(double x);
float cbrtf(float x);
long double cbrtl(long double x);

返回x的立方根

參看cbrt 瞭解這個函數的完整的模板形式 (只有頭文件).

double copysign(double x, double y);
float copysignf(float x, float y);
long double copysignl(long double x, long double y);

返回 大小為x 且符號為 y的值。

double erf(double x);
float erff(float x);
long double erfl(long double x);

返回x的誤差函數

參看erf 瞭解這個函數的完整的模板形式 (只有頭文件).

double erfc(double x);
float erfcf(float x);
long double erfcl(long double x);

返回x 誤差補函數,由減法1-erf(x)顯示沒有精度損失.

參看erfc瞭解這個函數的完整的模板形式 (只有頭文件).

double expm1(double x);
float expm1f(float x);
long double expm1l(long double x);

返回exp(x)-1 由減法顯示沒有精度損失.

參看expm1 瞭解這個函數的完整的模板形式 (只有頭文件).

double fmax(double x, double y);
float fmaxf(float x, float y);
long double fmaxl(long double x, long double y);

返回xy中的較大者(大多數的正數).

double fmin(double x, double y);
float fminf(float x, float y);
long double fminl(long double x, long double y);

返回xy中的較小者(大多數的負數).

double hypot(double x, double y);
float hypotf(float x, float y);
long double hypotl(long double x, long double y);

返回sqrt(x*x + y*y) ,由方程顯示沒有運算溢出.

參看hypot 瞭解這個函數的完整的模板形式 (只有頭文件).

double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);

返回x的對數 γ 值

參看lgamma 瞭解這個函數的完整的模板形式 (只有頭文件).

long long llround(double x);
long long llroundf(float x);
long long llroundl(long double x);

返回將 x 捨入到最近的整數的long long值: 等價於floor(x + 0.5)

參看round 瞭解這個函數的完整的模板形式 (只有頭文件).

double log1p(double x);
float log1pf(float x);
long double log1pl(long double x);

返回log(x+1),由這個方程顯示沒有精度損失.

參看log1p瞭解這個函數的完整的模板形式 (只有頭文件).

long lround(double x);
long lroundf(float x);
long lroundl(long double x);

x 捨入到最鄰近的整數並作為一個long值: 等價於floor(x + 0.5)

參看round 瞭解這個函數的完整的模板形式 (只有頭文件).

double nextafter(double x, double y);
float nextafterf(float x, float y);
long double nextafterl(long double x, long double y);

返回 xy方向上的下一個可表示的浮點值, 或者返回 x 如果x == y.

double nexttoward(double x, long double y);
float nexttowardf(float x, long double y);
long double nexttowardl(long double x, long double y);

類似於函數nextafter, 但 y 永遠表示為一個long double值。

double round(double x);
float roundf(float x);
long double roundl(long double x);

返回x 捨入到最鄰近的值: 等價於 to floor(x + 0.5)

參看round瞭解這個函數的完整的模板形式 (只有頭文件).

double tgamma(double x);
float tgammaf(float x);
long double tgammal(long double x);

返回x的γ函數值。

參看tgamma瞭解這個函數的完整的模板形式 (只有頭文件).

double trunc(double x);
float truncf(float x);
long double truncl(long double x);

返回x 的值截斷為最鄰近的整數值.

參看trunc瞭解這個函數的完整的模板形式 (只有頭文件).


PrevUpHomeNext