mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
	
	
		
			300 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			300 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [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_promotion_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). | ||
|  | ] | ||
|  | 
 |