libm man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

libm(3LIB)		      Interface Libraries		    libm(3LIB)

NAME
       libm - C math library

SYNOPSIS
       c99 [ flag... ] file... -lm [ library... ]

DESCRIPTION
       Functions  in this library provide common elementary mathematical func‐
       tions and floating point environment routines defined by System V, ANSI
       C,  POSIX,  and	so  on. See standards(5). Additional functions in this
       library provide extended support for  handling  floating	 point	excep‐
       tions.

INTERFACES
       The  shared  object  libm.so.2  provides	 the public interfaces defined
       below. See Intro(3) for additional information on shared object	inter‐
       faces.

       acos			     acosf
       acosh			     acoshf
       acoshl			     acosl
       asin			     asinf
       asinh			     asinhf
       asinhl			     asinl
       atan			     atan2
       atan2f			     atan2l
       atanf			     atanh
       atanhf			     atanhl
       atanl			     cabs
       cabsf			     cabsl
       cacos			     cacosf
       cacosh			     cacoshf
       cacoshl			     cacosl
       carg			     cargf
       cargl			     casin
       casinf			     casinh
       casinhf			     casinhl
       casinl			     catan
       catanf			     catanh
       catanhf			     catanhl
       catanl			     cbrt
       cbrtf			     cbrtl
       ccos			     ccosf
       ccosh			     ccoshf
       ccoshl			     ccosl
       ceil			     ceilf
       ceill			     cexp
       cexpf			     cexpl
       cimag			     cimagf
       cimagl			     clog
       clogf			     clogl
       conj			     conjf
       conjl			     copysign
       copysignf		     copysignl
       cos			     cosf
       cosh			     coshf
       coshl			     cosl

       cpow			     cpowf
       cpowl			     cproj
       cprojf			     cprojl
       creal			     crealf
       creall			     csin
       csinf			     csinh
       csinhf			     csinhl
       csinl			     csqrt
       csqrtf			     csqrtl
       ctan			     ctanf
       ctanh			     ctanhf
       ctanhl			     ctanl
       erf			     erfc
       erfcf			     erfcl
       erff			     erfl
       exp			     exp2
       exp2f			     exp2l
       expf			     expl
       expm1			     expm1f
       expm1l			     fabs
       fabsf			     fabsl
       fdim			     fdimf
       fdiml			     feclearexcept
       fegetenv			     fegetexceptflag
       fegetround		     feholdexcept
       feraiseexcept		     fesetenv
       fesetexceptflag		     fesetround
       fetestexcept		     feupdateenv
       fex_get_handling		     fex_get_log
       fex_get_log_depth	     fex_getexcepthandler
       fex_log_entry		     fex_merge_flags
       fex_set_handling		     fex_set_log
       fex_set_log_depth	     fex_setexcepthandler
       floor			     floorf
       floorl			     fma
       fmaf			     fmal
       fmax			     fmaxf
       fmaxl			     fmin
       fminf			     fminl
       fmod			     fmodf
       fmodl			     frexp
       frexpf			     frexpl
       gamma			     gamma_r
       gammaf			     gammaf_r
       gammal			     gammal_r
       hypot			     hypotf
       hypotl			     ilogb
       ilogbf			     ilogbl
       isnan			     j0
       j0f			     j0l
       j1			     j1f
       j1l			     jn
       jnf			     jnl
       ldexp			     ldexpf
       ldexpl			     lgamma
       lgamma_r			     lgammaf
       lgammaf_r		     lgammal
       lgammal_r		     llrint
       llrintf			     llrintl
       llround			     llroundf
       llroundl			     log
       log10			     log10f
       log10l			     log1p
       log1pf			     log1pl
       log2			     log2f

       log2l			     logb
       logbf			     logbl
       logf			     logl
       lrint			     lrintf
       lrintl			     lround
       lroundf			     lroundl
       matherr			     modf
       modff			     modfl
       nan			     nanf
       nanl			     nearbyint
       nearbyintf		     nearbyintl
       nextafter		     nextafterf
       nextafterl		     nexttoward
       nexttowardf		     nexttowardl
       pow			     powf
       powl			     remainder
       remainderf		     remainderl
       remquo			     remquof
       remquol			     rint
       rintf			     rintl
       round			     roundf
       roundl			     scalb
       scalbf			     scalbl
       scalbln			     scalblnf
       scalblnl			     scalbn
       scalbnf			     scalbnl
       signgam			     signgamf
       signgaml			     significand
       significandf		     significandl
       sin			     sincos
       sincosf			     sincosl
       sinf			     sinh
       sinhf			     sinhl
       sinl			     sqrt
       sqrtf			     sqrtl
       tan			     tanf
       tanh			     tanhf
       tanhl			     tanl
       tgamma			     tgammaf
       tgammal			     trunc
       truncf			     truncl
       y0			     y0f
       y0l			     y1
       y1f			     y1l
       yn			     ynf
       ynl

       The following interfaces are unique to the x86 and x64 versions of this
       library:

       fegetprec		     fesetprec

ACCURACY
       ISO/IEC 9899:1999, also known as C99, specifies the functions listed in
       the following tables and states that the accuracy of these functions is
       "implementation-defined". The information below characterizes the accu‐
       racy of these functions as implemented in libm.so.2. For each function,
       the tables provide an upper bound on the largest error possible for any
       argument	 and  the largest error actually observed among a large sample
       of arguments. Errors are expressed in "units in	the  last  place",  or
       ulps, relative to the exact function value for each argument (regarding
       the argument as exact). Ulps depend on the precision  of	 the  floating
       point  format:  if y is the exact function value, x and x' are adjacent
       floating point numbers such that x < y < x', and x''  is	 the  computed
       function	 value,	 then  provided	 x,  x',  and  x'' all lie in the same
       binade, the error in x'' is |y - x''| / |x - x'| ulps.  In  particular,
       when  the  error is less than one ulp, the computed value is one of the
       two floating point numbers adjacent to the exact value.

       The bounds and observed errors listed below apply only in  the  default
       floating	 point	modes. Specifically, on SPARC, these bounds assume the
       rounding direction is round-to-nearest and non-standard	mode  is  dis‐
       abled.  On  x86,	 the bounds assume the rounding direction is round-to-
       nearest and the rounding precision is  round-to-64-bits.	 Moreover,  on
       x86,  floating  point  function values are returned in a floating point
       register in extended double precision  format,  but  the	 bounds	 below
       assume  that  the  result  value is then stored to memory in the format
       corresponding to the function's type. On x64,  the  bounds  assume  the
       rounding	 direction in both the x87 floating point control word and the
       MXCSR is round-to-nearest, the rounding precision in  the  x87  control
       word is round-to-64-bits, and the FTZ and DAZ modes are disabled.

       The  error  bounds listed below are believed to be correct, but smaller
       bounds might be proved later. The observed errors are the largest  ones
       currently  known,  but larger errors might be discovered later. Numbers
       in the notes column refer to the notes following the tables.

   Real Functions
   Single precision real functions (SPARC, x86, and x64)
			 error bound	  largest error
	  function	    (ulps)	 observed (ulps)       notes
	   acosf	     1.0	       < 1
	   acoshf	     1.0	       < 1
	   asinf	     1.0	       < 1
	   asinhf	     1.0	       < 1
	   atanf	     1.0	       < 1
	   atan2f	     1.0	       < 1
	   atanhf	     1.0	       < 1
	   cbrtf	     1.0	       < 1
	    cosf	     1.0	       < 1
	   coshf	     1.0	       < 1
	    erff	     1.0	       < 1
	   erfcf	     1.0	       < 1
	    expf	     1.0	       < 1
	   exp2f	     1.0	       < 1
	   expm1f	     1.0	       < 1
	   hypotf	     1.0	       < 1
	  lgammaf	     1.0	       < 1
	    logf	     1.0	       < 1
	   log10f	     1.0	       < 1
	   log1pf	     1.0	       < 1
	   log2f	     1.0	       < 1
	    powf	     1.0	       < 1
	    sinf	     1.0	       < 1
	   sinhf	     1.0	       < 1
	   sqrtf	     0.5	      0.500		[1]
	    tanf	     1.0	       < 1
	   tanhf	     1.0	       < 1
	  tgammaf	     1.0	       < 1

   Double precision real functions (SPARC and x64)
			 error bound	  largest error

	  function	    (ulps)	 observed (ulps)       notes
	    acos	     1.0	       < 1
	   acosh	     4.0	      1.878
	    asin	     1.0	       < 1
	   asinh	     7.0	      1.653
	    atan	     1.0	       <1
	   atan2	     2.5	      1.475
	   atanh	     4.0	      1.960
	    cbrt	     1.0	       < 1
	    cos		     1.0	       < 1
	    cosh	     3.0	      1.168
	    erf		     4.0	      0.959
	    erfc	     6.0	      2.816
	    exp		     1.0	       < 1
	    exp2	     2.0	      1.050
	   expm1	     1.0	       < 1
	   hypot	     1.0	       < 1
	   lgamma	     61.5	      5.629		[2]
	    log		     1.0	       < 1
	   log10	     3.5	      1.592
	   log1p	     1.0	       < 1
	    log2	     1.0	       < 1
	    pow		     1.0	       < 1
	    sin		     1.0	       < 1
	    sinh	     4.0	      2.078
	    sqrt	     0.5	      0.500		[1]
	    tan		     1.0	       < 1
	    tanh	     3.5	      2.136
	   tgamma	     1.0	       < 1

   Double precision real functions (x86)
			 error bound	  largest error
	  function	    (ulps)	 observed (ulps)       notes
	    acos	     1.0	       < 1
	   acosh	     4.0	      1.694
	    asin	     1.0	       < 1
	   asinh	     7.0	      1.493
	    atan	     1.0	       < 1
	   atan2	     1.0	       < 1
	   atanh	     4.0	      1.445
	    cbrt	     1.0	       < 1
	    cos		     1.0	       < 1
	    cosh	     3.0	      1.001
	    erf		     4.0	      0.932
	    erfc	     6.0	      2.728
	    exp		     1.0	       < 1
	    exp2	     1.0	       < 1
	   expm1	     1.0	       < 1
	   hypot	     1.0	       < 1
	   lgamma	     61.5	      2.654		[2]
	    log		     1.0	       < 1
	   log10	     1.0	       < 1
	   log1p	     1.0	       < 1
	    log2	     1.0	       < 1
	    pow		     1.0	       < 1
	    sin		     1.0	       < 1
	    sinh	     4.0	      1.458
	    sqrt	    0.5003	      0.500		[1]
	    tan		     1.0	       < 1
	    tanh	     3.5	      1.592
	   tgamma	     1.0	       < 1

   Quadruple precision real functions (SPARC)
			 error bound	  largest error

	  function	    (ulps)	 observed (ulps)       notes
	   acosl	     3.5	      1.771
	   acoshl	     8.0	      1.275
	   asinl	     4.0	      2.007
	   asinhl	     9.0	      1.823
	   atanl	     1.0	       < 1
	   atan2l	     2.5	      1.102
	   atanhl	     4.0	      1.970
	   cbrtl	     1.0	       < 1
	    cosl	     1.0	       < 1
	   coshl	     3.5	      0.985
	    erfl	     2.0	      0.779
	   erfcl	     68.5	     13.923
	    expl	     1.0	       < 1
	   exp2l	     2.0	      0.714
	   expm1l	     2.0	      1.020
	   hypotl	     1.0	       < 1
	  lgammal	     18.5	      2.916		[2]
	    logl	     1.0	       < 1
	   log10l	     3.5	      1.156
	   log1pl	     2.0	      1.216
	   log2l	     3.5	      1.675
	    powl	     1.0	       < 1
	    sinl	     1.0	       < 1
	   sinhl	     4.5	      1.589
	   sqrtl	     0.5	      0.500		[1]
	    tanl	     4.5	      2.380
	   tanhl	     4.5	      1.692
	  tgammal	     1.0	       < 1

   Extended precision real functions (x86 and x64)
			 error bound	  largest error
	  function	    (ulps)	 observed (ulps)       notes
	   acosl	     3.0	      1.868
	   acoshl	     8.0	      2.352
	   asinl	     3.0	      1.716
	   asinhl	     9.0	      2.346
	   atanl	     1.0	       < 1
	   atan2l	     1.0	       < 1
	   atanhl	     4.0	      2.438
	   cbrtl	     1.0	       < 1
	    cosl	     1.0	       < 1
	   coshl	     3.5	      1.288
	    erfl	     1.0	       < 1
	   erfcl	     78.5	     13.407
	    expl	     3.5	      1.291
	   exp2l	     1.5	      0.807
	   expm1l	     4.0	      1.936
	   hypotl	     3.5	      2.087
	  lgammal	     22.5	      4.197		[2]
	    logl	     2.0	      0.881
	   log10l	     2.0	      1.284
	   log1pl	     5.0	      2.370
	   log2l	     1.0	       < 1
	    powl	   32770.0	    4478.132
	    sinl	     1.0	       < 1
	   sinhl	     4.5	      2.356
	   sqrtl	     0.5	      0.500		[1]
	    tanl	     4.5	      2.366
	   tanhl	     4.5	      2.417
	  tgammal	     1.0	       < 1

   Notes:
       [1]    On SPARC and x64, sqrtf, sqrt, and sqrtl are  correctly  rounded
	      in accordance with IEEE 754. On x86, sqrtl is correctly rounded,
	      sqrtf is correctly rounded provided the result  is  narrowed  to
	      single  precision as discussed above, but sqrt might not be cor‐
	      rectly rounded due to "double rounding": when  the  intermediate
	      value  computed  to  extended  precision	lies  exactly  halfway
	      between two  representable  numbers  in  double  precision,  the
	      result of rounding the intermediate value to double precision is
	      determined by the round-ties-to-even rule. If this  rule	causes
	      the second rounding to round in the same direction as the first,
	      the net rounding error  can  exceed  0.5	ulps.  (The  error  is
	      bounded instead by 0.5*(1 + 2^-11) ulps.)

       [2]    Error  bounds  for  lgamma  and  lgammal apply only for positive
	      arguments.

   Complex functions
       The real-valued complex functions cabsf, cabs, cabsl, cargf, carg,  and
       cargl  are  equivalent  to  the	real  functions hypotf, hypot, hypotl,
       atan2f, atan2, and atan2l, respectively. The error bounds and  observed
       errors given above for the latter functions also apply to the former.

       The  complex  functions listed below are complex-valued. For each func‐
       tion, the error bound shown applies separately to  both	the  real  and
       imaginary  parts	 of the result. (For example, both the real and imagi‐
       nary parts of cacosf(z) are accurate to	within	1  ulp	regardless  of
       their  magnitudes.)  Similarly, the largest observed error shown is the
       largest error found in either the real or the  imaginary	 part  of  the
       result.

   Single precision complex functions (SPARC and x64)
			  error bound	   largest error
	  function	     (ulps)	  observed (ulps)	notes
       cacosf, cacoshf	       1		< 1		 [1]
       casinf, casinhf	       1		< 1
       catanf, catanhf	       6		< 1
	ccosf, ccoshf	       10	       2.012
	    cexpf	       3	       2.239
	    clogf	       3		< 1
	    cpowf	       —		< 1		 [2]
	csinf, csinhf	       10	       2.009
	   csqrtf	       4		< 1
	ctanf, ctanhf	       13	       6.987

   Single precision complex functions (x86)
			  error bound	   largest error
	  function	     (ulps)	  observed (ulps)	notes
       cacosf, cacoshf	       1		< 1		 [1]
       casinf, casinhf	       1		< 1
       catanf, catanhf	       6		< 1
	ccosf, ccoshf	       10	       1.984
	    cexpf	       3	       1.984
	    clogf	       3		< 1
	    cpowf	       —		< 1		 [2]
	csinf, csinhf	       10	       1.973
	   csqrtf	       4		< 1
	ctanf, ctanhf	       13	       4.657

   Double precision complex functions (SPARC and x64)
			 error bound	  largest error
	  function	    (ulps)	 observed (ulps)       notes
       cacos, cacosh	      9		      3.831		[1]
       casin, casinh	      9		      3.732
       catan, catanh	      6		      4.179
	ccos, ccosh	      10	      3.832

	    cexp	      3		      2.255
	    clog	      3		      2.870
	    cpow	      -			-		[2]
	csin, csinh	      10	      3.722
	   csqrt	      4		      3.204
	ctan, ctanh	      13	      7.143

   Double precision complex functions (x86)
			 error bound	  largest error
	  function	    (ulps)	 observed (ulps)       notes
       cacos, cacosh	      9		      3.624		[1]
       casin, casinh	      9		      3.624
       catan, catanh	      6		      2.500
	ccos, ccosh	      10	      2.929
	    cexp	      3		      2.147
	    clog	      3		      1.927
	    cpow	      -			-		[2]
	csin, csinh	      10	      2.918
	   csqrt	      4		      1.914
	ctan, ctanh	      13	      4.630

   Quadruple precision complex functions (SPARC)
			  error bound	   largest error
	  function	     (ulps)	  observed (ulps)	notes
       cacosl, cacoshl	       9		 3		 [1]
       casinl, casinhl	       9		 3
       catanl, catanhl	       6		 3
	ccosl, ccoshl	       10		 3
	    cexpl	       3		 2
	    clogl	       3		 2
	    cpowl	       -		 -		 [2]
	csinl, csinhl	       10		 3
	   csqrtl	       4		 3
	ctanl, ctanhl	       13		 5

   Extended precision complex functions (x86 and x64)
			  error bound	   largest error
	  function	     (ulps)	  observed (ulps)	notes
       cacosl, cacoshl	       9		 2		 [1]
       casinl, casinhl	       9		 2
       catanl, catanhl	       6		 2
	ccosl, ccoshl	       10		 3
	    cexpl	       3	       2.699
	    clogl	       3		 1
	    cpowl	       -		 -		 [2]
	csinl, csinhl	       10		 3
	   csqrtl	       4	       1.452
	ctanl, ctanhl	       13		 5

   Notes:
       [1]    The complex hyperbolic trigonometric functions are equivalent by
	      symmetries to their circular trigonometric counterparts. Because
	      the implementations of these functions exploit these symmetries,
	      corresponding functions have the same error bounds and  observed
	      errors.

       [2]    For  large  arguments,  the results computed by cpowf, cpow, and
	      cpowl can have unbounded relative error. It might be possible to
	      give  error  bounds for specific domains, but no such bounds are
	      currently available. The	observed  errors  shown	 are  for  the
	      domain {(z,w) : max(|Re z|, |Im z|, |Re w|, |Im w|) <= 1}.

FILES
       /lib/libm.so.2	    shared object

       /lib/64/libm.so.2    64-bit shared object

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │system/library/math	   │
       │MT-Level		     │Safe with exceptions	   │
       └─────────────────────────────┴─────────────────────────────┘

       As  described  on  the lgamma(3M) manual page, gamma() and lgamma() and
       their float and long double counterparts are Unsafe.  All  other	 func‐
       tions in libm.so.2 are MT-Safe.

SEE ALSO
       Intro(3), lgamma(3M), math.h(3HEAD), attributes(5), standards(5)

SunOS 5.11			  12 Jul 2006			    libm(3LIB)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net