MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Interface Libraries                                    libm(3LIB)



NAME
     libm - C math library

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


DESCRIPTION
     Functions  in  this  library   provide   common   elementary
     mathematical  functions  and floating point environment rou-
     tines 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 exceptions.

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



     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



SunOS 5.11          Last change: 12 Jul 2006                    1






Interface Libraries                                    libm(3LIB)



     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
     fexgethandling              fexgetlog
     fexgetlogdepth             fexgetexcepthandler
     fexlogentry                 fexmergeflags
     fexsethandling              fexsetlog
     fexsetlogdepth             fexsetexcepthandler
     floor                         floorf
     floorl                        fma
     fmaf                          fmal
     fmax                          fmaxf
     fmaxl                         fmin
     fminf                         fminl
     fmod                          fmodf
     fmodl                         frexp
     frexpf                        frexpl
     gamma                         gammar
     gammaf                        gammafr



SunOS 5.11          Last change: 12 Jul 2006                    2






Interface Libraries                                    libm(3LIB)



     gammal                        gammalr
     hypot                         hypotf
     hypotl                        ilogb
     ilogbf                        ilogbl
     isnan                         j0
     j0f                           j0l
     j1                            j1f
     j1l                           jn
     jnf                           jnl
     ldexp                         ldexpf
     ldexpl                        lgamma
     lgammar                      lgammaf
     lgammafr                     lgammal
     lgammalr                     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



SunOS 5.11          Last change: 12 Jul 2006                    3






Interface Libraries                                    libm(3LIB)



     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  ver-
     sions of this library:



     fegetprec                     fesetprec


ACURACY
     ISO/IEC 9899:1999, also known as C99,  specifies  the  func-
     tions  listed  in  the  following tables and states that the
     accuracy of these functions is "implementation-defined". The
     information  below characterizes the accuracy of these func-
     tions 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 adja-
     cent 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  disabled.  On x86, the
     bounds assume the rounding direction is round-to-nearest and



SunOS 5.11          Last change: 12 Jul 2006                    4






Interface Libraries                                    libm(3LIB)



     the  rounding  precision  is  round-to-64-bits. Moreover, on
     x86, floating point function values are returned in a float-
     ing  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 dis-
     abled.


     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





SunOS 5.11          Last change: 12 Jul 2006                    5






Interface Libraries                                    libm(3LIB)



  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



SunOS 5.11          Last change: 12 Jul 2006                    6






Interface Libraries                                    libm(3LIB)



         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



SunOS 5.11          Last change: 12 Jul 2006                    7






Interface Libraries                                    libm(3LIB)



         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 IE 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
            correctly  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 deter-
            mined 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




SunOS 5.11          Last change: 12 Jul 2006                    8






Interface Libraries                                    libm(3LIB)



     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  function,  the error bound shown applies separately to
     both the real and imaginary parts of the result. (For  exam-
     ple,  both  the  real  and  imaginary 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



SunOS 5.11          Last change: 12 Jul 2006                    9






Interface Libraries                                    libm(3LIB)



      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



SunOS 5.11          Last change: 12 Jul 2006                   10






Interface Libraries                                    libm(3LIB)



  Notes:
     [1]    The complex hyperbolic  trigonometric  functions  are
            equivalent  by  symmetries  to  their  circular  tri-
            gonometric 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


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Availability                 SUNWlibmsr                  
     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 functions in libm.so.2 are MT-Safe.

SEE ALSO
     Intro(3), lgamma(3M),  math.h(3HEAD),  attributes(5),  stan-
     dards(5)









SunOS 5.11          Last change: 12 Jul 2006                   11



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™