Document revision date: 30 March 2001
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

Compaq Portable Mathematics Library


Previous Contents Index


sqrt - Square Root


Interface

F_TYPE sqrt (F_TYPE x)


Description

sqrt() computes the rounded square root of x.

For platforms supporting a signed zero, sqrt(-0) = 0.

Exceptions

Exceptional Argument Routine Behavior
x < 0 Invalid argument

tan - Tangent of Angle


Interface

F_TYPE tan (F_TYPE x)

F_TYPE tand (F_TYPE x)


Description

tan() computes the tangent of x, measured in radians.

tand() computes the tangent of x, measured in degrees.

Exceptions

Exceptional Argument Routine Behavior
|x| = infinity Invalid argument
(tand) |x| < (180/pi) * min_float Underflow
(tand) x = (2n+1) * 90 Overflow

See Also

Appendix A, Critical Floating-Point Values

tanh - Hyperbolic Tangent


Interface

F_TYPE tanh (F_TYPE x)


Description

tanh() computes the hyperbolic tangent of x.

tanh(x) is defined as (exp(x)-exp(-x))/(exp(x) + exp(-x)).

Exceptions

None.

trunc - Truncation


Interface

F_TYPE trunc (F_TYPE x)


Description

trunc() truncates x to an integral value.

Exceptions

None.

unordered - Check for x Unordered with Respect to y


Interface

int unordered (F_TYPE x, F_TYPE y)


Description

unordered(x,y) returns the value 1 (true) if x, y, or both are a NaN and returns the value 0 (false) otherwise.

Exceptions

None.


Appendix A
Critical Floating-Point Values

Table A-1 contains the hexadecimal and decimal boundary values used in CPML calculations and exception checking.

Table A-1 Hexadecimal and Decimal Boundary Values
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
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
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
 
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
 
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


Appendix B
CPML Entry-Point Names

Each entry-point name in Table B-1 is unique and corresponds to data-type specific calculations in a CPML routine. For example, the acos function has five entry-point-names for the OpenVMS Alpha operating system. Because five floating-point data types are available, five acos routines are provided: math$acos_s, math$acos_t, math$acos_f, math$acos_g, and math$acos_x. Use the entry-point name that corresponds to your input argument data type.

Table B-1 Entry-Point Names for CPML Platforms
    Entry-Point Names
Generic Function Name Data Type Required OpenVMS Alpha Compaq Tru64 UNIX Alpha    
acos S_FLOAT math$acos_s acosf    
  T_FLOAT math$acos_t acos    
  X_FLOAT math$acos_x acosl    
  F_FLOAT math$acos_f      
  G_FLOAT math$acos_g      
           
acosd S_FLOAT math$acosd_s acosdf    
  T_FLOAT math$acosd_t acosd    
  X_FLOAT math$acosd_x acosdl    
  F_FLOAT math$acosd_f      
  G_FLOAT math$acosd_g      
           
acosh S_FLOAT math$acosh_s acoshf    
  T_FLOAT math$acosh_t acosh    
  X_FLOAT math$acosh_x acoshl    
  F_FLOAT math$acosh_f      
  G_FLOAT math$acosh_g      
           
asin S_FLOAT math$asin_s asinf    
  T_FLOAT math$asin_t asin    
  X_FLOAT math$asin_x asinl    
  F_FLOAT math$asin_f      
  G_FLOAT math$asin_g      
           
asind S_FLOAT math$asind_s asindf    
  T_FLOAT math$asind_t asind    
  X_FLOAT math$asind_x asindl    
  F_FLOAT math$asind_f      
  G_FLOAT math$asind_g      
           
asinh S_FLOAT math$asinh_s asinhf    
  T_FLOAT math$asinh_t asinh    
  X_FLOAT math$asinh_x asinhl    
  F_FLOAT math$asinh_f      
  G_FLOAT math$asinh_g      
           
atan S_FLOAT math$atan_s atanf    
  T_FLOAT math$atan_t atan    
  X_FLOAT math$atan_x atanl    
  F_FLOAT math$atan_f      
  G_FLOAT math$atan_g      
           
atan2 S_FLOAT math$atan2_s atan2f    
  T_FLOAT math$atan2_t atan2    
  X_FLOAT math$atan2_x atan2l    
  F_FLOAT math$atan2_f      
  G_FLOAT math$atan2_g      
           
atand S_FLOAT math$atand_s atandf    
  T_FLOAT math$atand_t atand    
  X_FLOAT math$atand_x atandl    
  F_FLOAT math$atand_f      
  G_FLOAT math$atand_g      
           
atand2 S_FLOAT math$atand2_s atand2f    
  T_FLOAT math$atand2_t atand2    
  X_FLOAT math$atand2_x atand2l    
  F_FLOAT math$atand2_f      
  G_FLOAT math$atand2_g      
           
atanh S_FLOAT math$atanh_s atanhf    
  T_FLOAT math$atanh_t atanh    
  X_FLOAT math$atanh_x atanhl    
  F_FLOAT math$atanh_f      
  G_FLOAT math$atanh_g      
           
cabs S_FLOAT math$hypot_s cabsf    
  T_FLOAT math$hypot_t cabs    
  X_FLOAT math$hypot_x cabsl    
  F_FLOAT math$hypot_f      
  G_FLOAT math$hypot_g      
           
cbrt S_FLOAT math$cbrt_s cbrtf    
  T_FLOAT math$cbrt_t cbrt    
  X_FLOAT math$cbrt_x cbrtl    
  F_FLOAT math$cbrt_f      
  G_FLOAT math$cbrt_g      
           
ccos S_FLOAT math$ccos_s ccosf    
  T_FLOAT math$ccos_t ccos    
  X_FLOAT math$ccos_x ccosl    
  F_FLOAT math$ccos_f      
  G_FLOAT math$ccos_g      
           
cdiv S_FLOAT math$cdiv_s cdivf    
  T_FLOAT math$cdiv_t cdiv    
  X_FLOAT math$cdiv_x cdivl    
  F_FLOAT math$cdiv_f      
  G_FLOAT math$cdiv_g      
           
ceil S_FLOAT math$ceil_s ceilf    
  T_FLOAT math$ceil_t ceil    
  X_FLOAT math$ceil_x ceill    
  F_FLOAT math$ceil_f      
  G_FLOAT math$ceil_g      
           
cexp S_FLOAT math$cexp_s cexpf    
  T_FLOAT math$cexp_t cexp    
  X_FLOAT math$cexp_x cexpl    
  F_FLOAT math$cexp_f      
  G_FLOAT math$cexp_g      
           
clog S_FLOAT math$clog_s clogf    
  T_FLOAT math$clog_t clog    
  X_FLOAT math$clog_x clogl    
  F_FLOAT math$clog_f      
  G_FLOAT math$clog_g      
           
cmul S_FLOAT math$cmul_s cmulf    
  T_FLOAT math$cmul_t cmul    
  X_FLOAT math$cmul_x cmull    
  F_FLOAT math$cmul_f      
  G_FLOAT math$cmul_g      
           
copysign S_FLOAT math$copysign_s copysignf    
  T_FLOAT math$copysign_t copysign    
  X_FLOAT math$copysign_x copysignl    
  F_FLOAT math$copysign_f      
  G_FLOAT math$copysign_g      
           
cos S_FLOAT math$cos_s cosf    
  T_FLOAT math$cos_t cos    
  X_FLOAT math$cos_x cosl    
  F_FLOAT math$cos_f      
  G_FLOAT math$cos_g      
           
cosd S_FLOAT math$cosd_s cosdf    
  T_FLOAT math$cosd_t cosd    
  X_FLOAT math$cosd_x cosdl    
  F_FLOAT math$cosd_f      
  G_FLOAT math$cosd_g      
           
cosh S_FLOAT math$cosh_s coshf    
  T_FLOAT math$cosh_t cosh    
  X_FLOAT math$cosh_x coshl    
  F_FLOAT math$cosh_f      
  G_FLOAT math$cosh_g      
           
cot S_FLOAT math$cot_s cotf    
  T_FLOAT math$cot_t cot    
  X_FLOAT math$cot_x cotl    
  F_FLOAT math$cot_f      
  G_FLOAT math$cot_g      
           
cotd S_FLOAT math$cotd_s cotdf    
  T_FLOAT math$cotd_t cotd    
  X_FLOAT math$cotd_x cotdl    
  F_FLOAT math$cotd_f      
  G_FLOAT math$cotd_g      
           
cpow S_FLOAT math$cpow_s cpowf    
  T_FLOAT math$cpow_t cpow    
  X_FLOAT math$cpow_x cpowl    
  F_FLOAT math$cpow_f      
  G_FLOAT math$cpow_g      
           
           
csin S_FLOAT math$csin_s csinf    
  T_FLOAT math$csin_t csin    
  X_FLOAT math$csin_x csinl    
  F_FLOAT math$csin_f      
  G_FLOAT math$csin_g      
           
csqrt S_FLOAT math$csqrt_s csqrtf    
  T_FLOAT math$csqrt_t csqrt    
  X_FLOAT math$csqrt_x csqrtl    
  F_FLOAT math$csqrt_f      
  G_FLOAT math$csqrt_g      
           
cvt_ftof All supported types   cvt_ftof    
           
drem S_FLOAT math$rem_s dremf    
  T_FLOAT math$rem_t drem    
  X_FLOAT math$rem_x dreml    
  F_FLOAT math$rem_f      
  G_FLOAT math$rem_g      
           
erf S_FLOAT math$erf_s erff    
  T_FLOAT math$erf_t erf    
  X_FLOAT math$erf_x erfl    
  F_FLOAT math$erf_f      
  G_FLOAT math$erf_g      
           
erfc S_FLOAT math$erfc_s erfcf    
  T_FLOAT math$erfc_t erfc    
  X_FLOAT math$erfc_x erfcl    
  F_FLOAT math$erfc_f      
  G_FLOAT math$erfc_g      
           
exp S_FLOAT math$exp_s expf    
  T_FLOAT math$exp_t exp    
  X_FLOAT math$exp_x expl    
  F_FLOAT math$exp_f      
  G_FLOAT math$exp_g      
           
expm1 S_FLOAT math$expm1_s expm1f    
  T_FLOAT math$expm1_t expm1    
  X_FLOAT math$expm1_x expm1l    
  F_FLOAT math$expm1_f      
  G_FLOAT math$expm1_g      
           
fabs S_FLOAT math$fabs_s fabsf    
  T_FLOAT math$fabs_t fabs    
  X_FLOAT math$fabs_x fabsl    
  F_FLOAT math$fabs_f      
  G_FLOAT math$fabs_g      
           
finite S_FLOAT math$finite_s finitef    
  T_FLOAT math$finite_t finite    
  X_FLOAT math$finite_x finitel    
  F_FLOAT math$finite_f      
  G_FLOAT math$finite_g      
           
floor S_FLOAT math$floor_s floorf    
  T_FLOAT math$floor_t floor    
  X_FLOAT math$floor_x floorl    
  F_FLOAT math$floor_f      
  G_FLOAT math$floor_g      
           
fmod S_FLOAT math$mod_s fmodf    
  T_FLOAT math$mod_t fmod    
  X_FLOAT math$mod_x fmodl    
  F_FLOAT math$mod_f      
  G_FLOAT math$mod_g      
           
fp_class S_FLOAT math$fp_class_s fp_classf    
  T_FLOAT math$fp_class_t fp_class    
  X_FLOAT math$fp_class_x fp_classl    
  F_FLOAT math$fp_class_f      
  G_FLOAT math$fp_class_g      
           
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      
           
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      
           
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      
           
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      
           
j0 S_FLOAT math$j0_s j0f    
  T_FLOAT math$j0_t j0    
  X_FLOAT math$j0_x j0l    
  F_FLOAT math$j0_f      
  G_FLOAT math$j0_g      
           
j1 S_FLOAT math$j1_s j1f    
  T_FLOAT math$j1_t j1    
  X_FLOAT math$j1_x j1l    
  F_FLOAT math$j1_f      
  G_FLOAT math$j1_g      
           
jn S_FLOAT math$jn_s jnf    
  T_FLOAT math$jn_t jn    
  X_FLOAT math$jn_x jnl    
  F_FLOAT math$jn_f      
  G_FLOAT math$jn_g      
           
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      
           
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      
           
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      
           
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      
           
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      
           
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      
           
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      
           
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      
           
random S_FLOAT math$random_l_s      
  T_FLOAT        
  X_FLOAT        
  F_FLOAT math$random_l_f      
  G_FLOAT        
           
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      
           
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      
           
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      
           
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      
           
sincos S_FLOAT math$sincos_s sincosf    
  T_FLOAT math$sincos_t sincos    
  X_FLOAT math$sincos_x sincosl    
  F_FLOAT math$sincos_f      
  G_FLOAT math$sincos_g      
           
sincosd S_FLOAT math$sincosd_s sincosdf    
  T_FLOAT math$sincosd_t sincosd    
  X_FLOAT math$sincosd_x sincosdl    
  F_FLOAT math$sincosd_f      
  G_FLOAT math$sincosd_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      
           
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      
           
sinhcosh S_FLOAT math$sinhcosh_s sinhcoshf    
  T_FLOAT math$sinhcosh_t sinhcosh    
  X_FLOAT math$sinhcosh_x sinhcoshl    
  F_FLOAT math$sinhcosh_f      
  G_FLOAT math$sinhcosh_g      
           
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      
           
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      
           
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      
           
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      
           
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      
           
y0 S_FLOAT math$y0_s y0f    
  T_FLOAT math$y0_t y0    
  X_FLOAT math$y0_x y0l    
  F_FLOAT math$y0_f      
  G_FLOAT math$y0_g      
           
y1 S_FLOAT math$y1_s y1f    
  T_FLOAT math$y1_t y1    
  X_FLOAT math$y1_x y1l    
  F_FLOAT math$y1_f      
  G_FLOAT math$y1_g      
           
yn S_FLOAT math$yn_s ynf    
  T_FLOAT math$yn_t yn    
  X_FLOAT math$yn_x ynl    
  F_FLOAT math$yn_f      
  G_FLOAT math$yn_g      


Previous Next Contents Index

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
6118PRO_004.HTML