part. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required frexp S_FLOAT math$frexp_s frexpf T_FLOAT math$frexp_t frexp X_FLOAT math$frexp_x frexpl F_FLOAT math$frexp_f G_FLOAT math$frexp_g 3 Exceptions None. 2 hypot() Interface F_TYPE hypot (F_TYPE x, F_TYPE y) 3 Description hypot() computes the length of the hypotenuse of a right triangle, where x and y represent the perpendicular sides of the triangle. hypot(x,y) is defined as the square root of (x**2 + y**2) and returns the same value as cabs(x,y). Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required hypot S_FLOAT math$hypot_s hypotf T_FLOAT math$hypot_t hypot X_FLOAT math$hypot_x hypotl F_FLOAT math$hypot_f G_FLOAT math$hypot_g 3 Exceptions Exceptional Argument Routine Behavior sqrt(x**2 + y**2) > max_float Overflow Data Type Value for: max_float F Hexadecimal: FFFF7FFF G Hexadecimal: FFFFFFFFFFFF7FFF S Hexadecimal: 7F7FFFFF T Hexadecimal: 7FEFFFFFFFFFFFFF X Hexadecimal: 7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF F Decimal: 1.701411e38 G Decimal: 8.988465674311579e307 S Decimal: 3.402823e38 T Decimal: 1.797693134862316e308 X Decimal: 1.189731495357231765085759326628007016196477e4932 2 ilogb() Interface int ilogb (F_TYPE x) 3 Description ilogb(x) returns the unbiased exponent of x as an integer, (as if x were normalized >= 1.0 and < 2.0) except: ilogb(NaN) is INT_MIN ilogb(inf) is INT_MAX logb(0) is INT_MIN There are no errors. The sign of x is ignored. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required ilogb S_FLOAT math$ilogb_s ilogbf T_FLOAT math$ilogb_t ilogb X_FLOAT math$ilogb_x ilogbl F_FLOAT math$ilogb_f G_FLOAT math$ilogb_g 3 Exceptions None. 2 isnan() Interface int isnan (F_TYPE x) 3 Description isnan() returns 1 (true) if x is NaN (the IEEE floating-point reserved Not-a-Number value) and 0 (false) otherwise. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required isnan S_FLOAT math$isnan_s isnanf T_FLOAT math$isnan_t isnan X_FLOAT math$isnan_x isnanl F_FLOAT math$isnan_f G_FLOAT math$isnan_g 3 Exceptions None. 2 ldexp() Interface F_TYPE ldexp (F_TYPE x, int n) 3 Description ldexp() multiplies a floating-point number, x, by 2**n. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required ldexp S_FLOAT math$ldexp_s ldexpf T_FLOAT math$ldexp_t ldexp X_FLOAT math$ldexp_x ldexpl F_FLOAT math$ldexp_f G_FLOAT math$ldexp_g 3 Exceptions Exceptional Argument Routine Behavior |x*(2**n)| > max_float Overflow |x*(2**n)| < min_float Underflow Data Type Value for: max_float F Hexadecimal: FFFF7FFF G Hexadecimal: FFFFFFFFFFFF7FFF S Hexadecimal: 7F7FFFFF T Hexadecimal: 7FEFFFFFFFFFFFFF X Hexadecimal: 7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF F Decimal: 1.701411e38 G Decimal: 8.988465674311579e307 S Decimal: 3.402823e38 T Decimal: 1.797693134862316e308 X Decimal: 1.189731495357231765085759326628007016196477e4932 Data Type Value for: min_float F Hexadecimal: 00000080 G Hexadecimal: 0000000000000010 S Hexadecimal: 00000001 T Hexadecimal: 0000000000000001 X Hexadecimal: 00000000000000000000000000000001 F Decimal: 2.9387359e-39 G Decimal: 5.562684646268003e-309 S Decimal: 1.4012985e-45 T Decimal: 4.940656458412465e-324 X Decimal: 6.4751751194380251109244389582276465524996e-4966 2 lgamma() Interface F_TYPE lgamma (F_TYPE x) 3 Description lgamma() returns the logarithm of the absolute value of gamma of x, or ln(|G(x)|), where G is the gamma function. The sign of gamma of x is returned in the external integer variable signgam as +1 or -1. The x parameter cannot be 0 or a negative integer. gamma() returns the natural log of the gamma function and so is functionally equivalent to lgamma(). Because of this, gamma() is marked TO BE WITHDRAWN in the X/Open Portability Guide, Revision 4 (XPG4). Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required lgamma S_FLOAT math$lgamma_s lgammaf T_FLOAT math$lgamma_t lgamma X_FLOAT math$lgamma_x lgammal F_FLOAT math$lgamma_f G_FLOAT math$lgamma_g 3 Exceptions Exceptional Argument Routine Behavior |x| = infinity Invalid argument x = 0, -1, -2, -3, ... Invalid argument |x| > lgamma_max_float Overflow Data Type Value for: lgamma_max_float F Hexadecimal: 50F97CC6 G Hexadecimal: F55FC5015ABD7F67 S Hexadecimal: 7BC650F9 T Hexadecimal: 7F475ABDC501F55F X Hexadecimal: 7FF171AA9917FFFBD7EA44AE6D203DF6 F Decimal: 2.0594342e36 G Decimal: 1.2812545499066958e305 S Decimal: 2.0594342e36 T Decimal: 1.2812545499066958e305 X Decimal: 1.0485738685148938358098967157129705040168e4928 2 log() Interface F_TYPE ln (F_TYPE x) F_TYPE log2 (F_TYPE x) F_TYPE log10 (F_TYPE x) F_TYPE log1p (F_TYPE y) 3 Description ln() computes the natural (base e) logarithm of x. log2() computes the base 2 logarithm of x. log10() computes the common (base 10) logarithm of x. log1p() computes ln(1+y) accurately, even for tiny y. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required ln S_FLOAT math$ln_s logf T_FLOAT math$ln_t log X_FLOAT math$ln_x logl F_FLOAT math$ln_f G_FLOAT math$ln_g log2 S_FLOAT math$log2_s log2f T_FLOAT math$log2_t log2 X_FLOAT math$log2_x log2l F_FLOAT math$log2_f G_FLOAT math$log2_g log10 S_FLOAT math$log10_s log10f T_FLOAT math$log10_t log10 X_FLOAT math$log10_x log10l F_FLOAT math$log10_f G_FLOAT math$log10_g log1p S_FLOAT math$log1p_s log1pf T_FLOAT math$log1p_t log1p X_FLOAT math$log1p_x log1pl F_FLOAT math$log1p_f G_FLOAT math$log1p_g 3 Exceptions Exceptional Argument Routine Behavior x < 0 Invalid argument x = 0 Overflow 1+y < 0 Invalid argument 1+y = 0 Overflow 2 logb() Interface F_TYPE logb (F_TYPE x) 3 Description logb() returns a signed integer converted to double-precision floating-point and so chosen that 1 <= |x|/2**n < 2 unless x = 0 or |x| = infinity. IEEE Std 754 defines logb(+infinity) = +infinity and logb(0) = -infinity. The latter is required to signal division by zero. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required logb S_FLOAT math$logb_s logbf T_FLOAT math$logb_t logb X_FLOAT math$logb_x logbl F_FLOAT math$logb_f G_FLOAT math$logb_g 3 Exceptions Exceptional Argument Routine Behavior x = 0 Invalid argument 2 modf() Interface F_TYPE modf (F_TYPE x, F_TYPE *n) 3 Description modf() splits a floating-point number x into a fractional part f and an integer part i such that |f| < 1.0 and (f + i) = x. Both f and i have the same sign as x. modf() returns f and stores i into the location pointed to by n. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required modf S_FLOAT math$modf_s modff T_FLOAT math$modf_t modf X_FLOAT math$modf_x modfl F_FLOAT math$modf_f G_FLOAT math$modf_g 3 Exceptions None. 2 nextafter() Interface F_TYPE nextafter (F_TYPE x, F_TYPE y) 3 Description nextafter() returns the machine-representable number next to x in the direction y. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required nextafter S_FLOAT math$nextafter_s nextafterf T_FLOAT math$nextafter_t nextafter X_FLOAT math$nextafter_x nextafterl F_FLOAT math$nextafter_f G_FLOAT math$nextafter_g 3 Exceptions Exceptional Argument Routine Behavior x = max_float and y = Overflow +infinity x = -max_float and y = - Overflow infinity x = min_float and y is less Underflow than or equal to 0 x = -min_float and y is Underflow greater than or equal to 0 2 nint() Interface F_TYPE nint (F_TYPE x) 3 Description nint() returns the nearest integral value to x, except halfway cases are rounded to the integral value larger in magnitude. This function corresponds to the Fortran generic intrinsic function nint(). Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required nint S_FLOAT math$nint_s nintf T_FLOAT math$nint_t nint X_FLOAT math$nint_x nintl F_FLOAT math$nint_f G_FLOAT math$nint_g 3 Exceptions None. 2 pow() Interface F_TYPE pow (F_TYPE x, F_TYPE y) 3 Description pow() raises a floating-point base x to a floating-point exponent y. The value of pow(x,y) is computed as e**(y ln(x)) for positive x. If x is 0 or negative, see your language reference manual. Passing a NaN input value to pow() produces a NaN result for nonzero values of y. For pow(NaN,0), see your language reference manual. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required pow S_FLOAT math$pow_ss powf T_FLOAT math$pow_tt pow X_FLOAT math$pow_xx powl F_FLOAT math$pow_ff G_FLOAT math$pow_gg 3 Exceptions Exceptional Argument Routine Behavior y ln(x) > ln(max_float) Overflow y ln(x) < ln(min_float) Underflow Fortran-Exceptional Argument Routine Behavior x < 0 Invalid argument x = 0 and y < 0 Invalid argument x = 0 and y = 0 Invalid argument x = +infinity and y = 0 Invalid argument x = 1 and |y| = infinity Invalid argument ANSI C-Exceptional Argument Routine Behavior |x| = 1 and |y| = infinity Invalid argument x < 0 and y is not integral Invalid argument Data Type Value for: ln(max_float) F Hexadecimal: 0F3443B0 G Hexadecimal: 7B616E3A28B740A6 S Hexadecimal: 42B17218 T Hexadecimal: 40862E42FEFA39EF X Hexadecimal: 400C62E42FEFA39EF35793C7673007E6 F Decimal: 88.029692 G Decimal: 709.0895657128241 S Decimal: 88.7228391 T Decimal: 709.7827128933840 X Decimal: 11356.5234062941439494919310779707648912527 Data Type Value for: ln(min_float) F Hexadecimal: 7218C3B1 G Hexadecimal: 39EFFEFA2E42C0A6 S Hexadecimal: C2CE8ED0 T Hexadecimal: C0874385446D71C3 X Hexadecimal: C00C6546282207802C89D24D65E96274 F Decimal: -88.72284 G Decimal: -709.7827128933840 S Decimal: -103.2789 T Decimal: -744.4400719213813 X Decimal: -11432.7695961557379335278266113311643138373 2 random() Interface F_TYPE random (int *n) 3 Description random() is a general random number generator. The argument to the random function is an integer passed by reference. There are no restrictions on the input argument, although it should be initialized to different values on separate runs in order to obtain different random sequences. This function must be called again to obtain the next pseudo random number. The argument is updated automatically. The result is a floating-point number that is uniformly distributed in the interval (0.0,1.0). Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required random S_FLOAT math$random_l_s T_FLOAT X_FLOAT F_FLOAT math$random_l_f G_FLOAT 3 Exceptions None. 2 remainder() Interface F_TYPE remainder (F_TYPE x, F_TYPE y) 3 Description remainder() returns the remainder r = x-n*y, where n = rint(x/y). Additionally, if |n-x/y| = 1/2, then n is even. Consequently, the remainder is computed exactly, and |r| is less than or equal to |y|/2. The drem() and remainder() functions are aliases of each other. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required remainder S_FLOAT math$rem_s remainderf T_FLOAT math$rem_t remainder X_FLOAT math$rem_x remainderl F_FLOAT math$rem_f G_FLOAT math$rem_g 3 Exceptions Exceptional Argument Routine Behavior x = infinity Invalid argument Note that rem(x,0) has value 0 and is not an exceptional case. 2 rint() Interface F_TYPE rint (F_TYPE x) 3 Description rint() rounds x to an integral value according to the current IEEE rounding direction specified by the user. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required rint S_FLOAT math$rint_s rintf T_FLOAT math$rint_t rint X_FLOAT math$rint_x rintl F_FLOAT math$rint_f G_FLOAT math$rint_g 3 Exceptions None. 2 scalb() Interface F_TYPE scalb (F_TYPE x, F_TYPE y) 3 Description scalb() = x*(2**y) computed, for integer-valued floating point number y. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required scalb S_FLOAT math$scalb_s scalbf T_FLOAT math$scalb_t scalb X_FLOAT math$scalb_x scalbl F_FLOAT math$scalb_f G_FLOAT math$scalb_g 3 Exceptions Exceptional Argument Routine Behavior x*(2**y) > max_float Overflow x*(2**y) < min_float Underflow x=0, y=infinity Invalid argument x=infinity, y=- Invalid argument infinity Data Type Value for: max_float F Hexadecimal: FFFF7FFF G Hexadecimal: FFFFFFFFFFFF7FFF S Hexadecimal: 7F7FFFFF T Hexadecimal: 7FEFFFFFFFFFFFFF X Hexadecimal: 7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF F Decimal: 1.701411e38 G Decimal: 8.988465674311579e307 S Decimal: 3.402823e38 T Decimal: 1.797693134862316e308 X Decimal: 1.189731495357231765085759326628007016196477e4932 Data Type Value for: min_float F Hexadecimal: 00000080 G Hexadecimal: 0000000000000010 S Hexadecimal: 00000001 T Hexadecimal: 0000000000000001 X Hexadecimal: 00000000000000000000000000000001 F Decimal: 2.9387359e-39 G Decimal: 5.562684646268003e-309 S Decimal: 1.4012985e-45 T Decimal: 4.940656458412465e-324 X Decimal: 6.4751751194380251109244389582276465524996e-4966 2 sin() Interface F_TYPE sin (F_TYPE x) F_TYPE sind (F_TYPE x) 3 Description sin() computes the sine of x, measured in radians. sind() computes the sine of x, measured in degrees. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required sin S_FLOAT math$sin_s sinf T_FLOAT math$sin_t sin X_FLOAT math$sin_x sinl F_FLOAT math$sin_f G_FLOAT math$sin_g sind S_FLOAT math$sind_s sindf T_FLOAT math$sind_t sind X_FLOAT math$sind_x sindl F_FLOAT math$sind_f G_FLOAT math$sind_g 3 Exceptions Exceptional Argument Routine Behavior |x| = infinity Invalid argument (sind) |x| < (180/pi) * min_float Underflow Data Type Value for: (180/pi) * min_float F Hexadecimal: 2EE10365 G Hexadecimal: C1F81A63A5DC006C S Hexadecimal: 00000039 T Hexadecimal: 0000000000000039 X Hexadecimal: 00000000000000000000000000000039 F Decimal: 1.683772e-37 G Decimal: 3.187183529933798e-307 S Decimal: 8.028849e-44 T Decimal: 2.830787630910868e-322 X Decimal: 3.71000205951917569316937757202433432154392e-4964 2 sinh() Interface F_TYPE sinh (F_TYPE x) 3 Description sinh() computes the hyperbolic sine of x. sinh(x) is defined as (exp(x)-exp(-x))/2. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required sinh S_FLOAT math$sinh_s sinhf T_FLOAT math$sinh_t sinh X_FLOAT math$sinh_x sinhl F_FLOAT math$sinh_f G_FLOAT math$sinh_g 3 Exceptions Exceptional Argument Routine Behavior |x| > ln(2 * max_float) Overflow Data Type Value for: ln(2 * max_float) F Hexadecimal: 721843B1 G Hexadecimal: 39EFFEFA2E4240A6 S Hexadecimal: 42B2D4FC T Hexadecimal: 408633CE8FB9F87E X Hexadecimal: 400C62E9BB80635D81D36125B64DA4A6 F Decimal: 88.72284 G Decimal: 709.7827128933840 S Decimal: 89.41599 T Decimal: 710.4758600739439 X Decimal: 11357.2165534747038948013483100922230678208 2 sqrt() Interface F_TYPE sqrt (F_TYPE x) 3 Description sqrt() computes the rounded square root of x. For platforms supporting a signed zero, sqrt(-0) = 0. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required sqrt S_FLOAT math$sqrt_s sqrtf T_FLOAT math$sqrt_t sqrt X_FLOAT math$sqrt_x sqrtl F_FLOAT math$sqrt_f G_FLOAT math$sqrt_g 3 Exceptions Exceptional Argument Routine Behavior x < 0 Invalid argument 2 tan() Interface F_TYPE tan (F_TYPE x) F_TYPE tand (F_TYPE x) 3 Description tan() computes the tangent of x, measured in radians. tand() computes the tangent of x, measured in degrees. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required tan S_FLOAT math$tan_s tanf T_FLOAT math$tan_t tan X_FLOAT math$tan_x tanl F_FLOAT math$tan_f G_FLOAT math$tan_g tand S_FLOAT math$tand_s tandf T_FLOAT math$tand_t tand X_FLOAT math$tand_x tandl F_FLOAT math$tand_f G_FLOAT math$tand_g 3 Exceptions Exceptional Argument Routine Behavior |x| = infinity Invalid argument (tand) |x| < (180/pi) * min_float Underflow (tand) x = (2n+1) * 90 Overflow Data Type Value for: (180/pi) * min_float F Hexadecimal: 2EE10365 G Hexadecimal: C1F81A63A5DC006C S Hexadecimal: 00000039 T Hexadecimal: 0000000000000039 X Hexadecimal: 00000000000000000000000000000039 F Decimal: 1.683772e-37 G Decimal: 3.187183529933798e-307 S Decimal: 8.028849e-44 T Decimal: 2.830787630910868e-322 X Decimal: 3.71000205951917569316937757202433432154392e-4964 2 tanh() Interface F_TYPE tanh (F_TYPE x) 3 Description tanh() computes the hyperbolic tangent of x. tanh(x) is defined as (exp(x)-exp(-x))/(exp(x) + exp(-x)). Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required tanh S_FLOAT math$tanh_s tanhf T_FLOAT math$tanh_t tanh X_FLOAT math$tanh_x tanhl F_FLOAT math$tanh_f G_FLOAT math$tanh_g 3 Exceptions None. 2 trunc() Interface F_TYPE trunc (F_TYPE x) 3 Description trunc() truncates x to an integral value. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required trunc S_FLOAT math$trunc_s truncf T_FLOAT math$trunc_t trunc X_FLOAT math$trunc_x truncl F_FLOAT math$trunc_f G_FLOAT math$trunc_g 3 Exceptions None. 2 unordered() Interface int unordered (F_TYPE x, F_TYPE y) 3 Description unordered(x,y) returns the value 1 (true) if x, y, or both are a NaN and returns the value 0 (false) otherwise. Entry-Point Names Generic Function Data Type OpenVMS Tru64 UNIX Name Required unordered S_FLOAT math$unordered_s unorderedf T_FLOAT math$unordered_t unordered X_FLOAT math$unordered_x unorderedl F_FLOAT math$unordered_f G_FLOAT math$unordered_g 3 Exceptions None.