1. 15 12月, 2012 1 次提交
    • S
      math: fix i386/expl.s with more precise x*log2e · a8f73bb1
      Szabolcs Nagy 提交于
      with naive exp2l(x*log2e) the last 12bits of the result was incorrect
      for x with large absolute value
      
      with hi + lo = x*log2e is caluclated to 128 bits precision and then
        expl(x) = exp2l(hi) + exp2l(hi) * f2xm1(lo)
      this gives <1.5ulp measured error everywhere in nearest rounding mode
      a8f73bb1
  2. 14 12月, 2012 1 次提交
    • S
      fixed tgmath.h for functions with integral result · 93460944
      Szabolcs Nagy 提交于
      in tgmath.h the return values are casted to the appropriate
      floating-point type (if the compiler supports gcc __typeof__),
      this is wrong in case of ilogb, lrint, llrint, lround, llround
      which do not need such cast
      93460944
  3. 12 12月, 2012 8 次提交
    • S
      math: add a non-dummy tgamma implementation · 0f53c1a4
      Szabolcs Nagy 提交于
      uses the lanczos approximation method with the usual tweaks.
      same parameters were selected as in boost and python.
      (avoides some extra work and special casing found in boost
      so the precision is not that good: measured error is <5ulp for
      positive x and <10ulp for negative)
      
      an alternative lgamma_r implementation is also given in the same
      file which is simpler and smaller than the current one, but less
      precise so it's ifdefed out for now.
      0f53c1a4
    • S
      math: cosh cleanup · 14cc9c7f
      Szabolcs Nagy 提交于
      do fabs by hand, don't check for nan and inf separately
      14cc9c7f
    • S
      math: fix comment in __rem_pio2f.c · 9c6b1de0
      Szabolcs Nagy 提交于
      9c6b1de0
    • S
      math: add empty __invtrigl.s to i386 and x86_64 · 1384ad5f
      Szabolcs Nagy 提交于
      __invtrigl is not needed when acosl, asinl, atanl have asm
      implementations
      1384ad5f
    • S
      math: clean up inverse trigonometric functions · b12a73d5
      Szabolcs Nagy 提交于
      modifications:
      * avoid unsigned->signed conversions
      * removed various volatile hacks
      * use FORCE_EVAL when evaluating only for side-effects
      * factor out R() rational approximation instead of manual inline
      * __invtrigl.h now only provides __invtrigl_R, __pio2_hi and __pio2_lo
      * use 2*pio2_hi, 2*pio2_lo instead of pi_hi, pi_lo
      
      otherwise the logic is not changed, long double versions will
      need a revisit when a genaral long double cleanup happens
      b12a73d5
    • S
      math: rewrite inverse hyperbolic functions to be simpler/smaller · 482ccd2f
      Szabolcs Nagy 提交于
      modifications:
      * avoid unsigned->signed integer conversion
      * do not handle special cases when they work correctly anyway
      * more strict threshold values (0x1p26 instead of 0x1p28 etc)
      * smaller code, cleaner branching logic
      * same precision as the old code:
          acosh(x) has up to 2ulp error in [1,1.125]
          asinh(x) has up to 1.6ulp error in [0.125,0.5], [-0.5,-0.125]
          atanh(x) has up to 1.7ulp error in [0.125,0.5], [-0.5,-0.125]
      482ccd2f
    • S
      math: remove long double version of bessel functions from math.h · 64623cd5
      Szabolcs Nagy 提交于
      j0l,j1l,jnl,y0l,j1l,jnl are gnu extensions, bsd and posix do not
      have them.
      noone seems to use them and there is no plan to implement them any
      time soon so we shouldn't declare them in math.h.
      64623cd5
    • S
      faea4c99
  4. 11 12月, 2012 4 次提交
  5. 08 12月, 2012 5 次提交
    • R
      add support for ctors/dtors on arm with modern gcc · 34aa169d
      Rich Felker 提交于
      a while back, gcc switched from using the old _init/_fini fragments
      method for calling ctors and dtors on arm to the __init_array and
      __fini_array method. unfortunately, on glibc this depends on ugly
      hacks involving making libc.so a linker script and pulling parts of
      libc into the main program binary. so I cheat a little bit, and just
      write asm to iterate over the init/fini arrays from the _init/_fini
      asm. the same approach could be used on any arch it's needed on, but
      for now arm is the only one.
      34aa169d
    • R
      page-align initial brk value used by malloc in shared libc · b8ccf8e4
      Rich Felker 提交于
      this change fixes an obscure issue with some nonstandard kernels,
      where the initial brk syscall returns a pointer just past the end of
      bss rather than the beginning of a new page. in that case, the dynamic
      linker has already reclaimed the space between the end of bss and the
      page end for use by malloc, and memory corruption (allocating the same
      memory twice) will occur when malloc again claims it on the first call
      to brk.
      b8ccf8e4
    • R
      remove __arch_prctl alias for arch_prctl · 3ee67505
      Rich Felker 提交于
      if there's evidence of any use for it, we can add it back later. as
      far as I can tell, glibc has it only for internal use (and musl uses a
      direct syscall in that case rather than a function call), not for
      exposing it to applications.
      3ee67505
    • R
      55aef73f
    • R
      03b0f13e
  6. 07 12月, 2012 18 次提交
  7. 06 12月, 2012 3 次提交