[section:c99 C99 C Functions]

[h4 Supported C99 Functions]

   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
   
In addition sufficient additional overloads of the `double` versions of the
above functions are provided, so that calling the function with any mixture
of `float`, `double`, `long double`, or /integer/ arguments is supported, with the
return type determined by the __arg_pomotion_rules.

For example:

   acoshf(2.0f);  // float version, returns float.
   acosh(2.0f);   // also calls the float version and returns float.
   acosh(2.0);    // double version, returns double.
   acoshl(2.0L);  // long double version, returns a long double.
   acosh(2.0L);   // also calls the long double version.
   acosh(2);      // integer argument is treated as a double, returns double.

[h4 Quick Reference]

More detailed descriptions of these functions are available in the
C99 standard.

   typedef unspecified float_t;
   typedef unspecified double_t;
   
In this implementation `float_t` is the same as type `float`, and
`double_t` the same as type `double` unless the preprocessor symbol
FLT_EVAL_METHOD is defined, in which case these are set as follows:

[table
[[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);

Returns the inverse hyperbolic cosine of /x/.

See also __acosh for the full template (header only) version of this function.

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

Returns the inverse hyperbolic sine of /x/.

See also __asinh for the full template (header only) version of this function.

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

Returns the inverse hyperbolic tangent of /x/.

See also __atanh for the full template (header only) version of this function.

   double cbrt(double x);
   float cbrtf(float x);
   long double cbrtl(long double x);
   
Returns the cubed root of /x/.

See also __cbrt for the full template (header only) version of this function.

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

Returns a value with the magnitude of /x/ and the sign of /y/.

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

Returns the error function of /x/:

[equation erf1]

See also __erf for the full template (header only) version of this function.

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

Returns the complementary error function of /x/ `1-erf(x)` without the loss
of precision implied by the subtraction.

See also __erfc for the full template (header only) version of this function.

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

Returns `exp(x)-1` without the loss
of precision implied by the subtraction.

See also __expm1 for the full template (header only) version of this function.

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

Returns the larger (most positive) of /x/ and /y/.

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

Returns the smaller (most negative) of /x/ and /y/.

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

Returns `sqrt(x*x + y*y)` without the danger of numeric overflow
implied by that formulation.

See also __hypot for the full template (header only) version of this function.

   double lgamma(double x);
   float lgammaf(float x);
   long double lgammal(long double x);
   
Returns the log of the gamma function of /x/.

[equation lgamm1]

See also __lgamma for the full template (header only) version of this function.

   long long llround(double x);
   long long llroundf(float x);
   long long llroundl(long double x);
   
Returns the value /x/ rounded to the nearest integer as a `long long`: 
equivalent to `floor(x + 0.5)`

See also __llround for the full template (header only) version of this function.

   double log1p(double x);
   float log1pf(float x);
   long double log1pl(long double x);
   
Returns the `log(x+1)` without the loss of precision 
implied by that formulation.

See also __log1p for the full template (header only) version of this function.

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

Returns the value /x/ rounded to the nearest integer as a `long`: 
equivalent to `floor(x + 0.5)`

See also __lround for the full template (header only) version of this function.

   double nextafter(double x, double y);
   float nextafterf(float x, float y);
   long double nextafterl(long double x, long double y);
   
Returns the next representable floating point number after /x/
in the direction of /y/, or /x/ if `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);
   
As `nextafter`, but with /y/ always expressed as a `long double`.

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

Returns the value /x/ rounded to the nearest integer: 
equivalent to `floor(x + 0.5)`

See also __round for the full template (header only) version of this function.

   double tgamma(double x);
   float tgammaf(float x);
   long double tgammal(long double x);
   
Returns the gamma function of /x/:

[equation gamm1]

See also __tgamma for the full template (header only) version of this function.

   double trunc(double x);
   float truncf(float x);
   long double truncl(long double x);
   
Returns /x/ truncated to the nearest integer.

See also __trunc for the full template (header only) version of this function.

See also [@http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf C99 ISO Standard]

[endsect]

[/ 
  Copyright 2008 John Maddock and Paul A. Bristow.
  Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt).
]

