mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05: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).
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 |