Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
HP.com home

HP OpenVMS Systems Documentation

Content starts here

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

 

** About PDF files: The PDF files on this Web site can be read online or printed using Adobe® Acrobat® Reader. If you do not have this software installed on your system, you may download it from the Adobe Web site.
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2009 Hewlett-Packard Development Company, L.P.