1. 17 8月, 2020 1 次提交
  2. 02 1月, 2013 1 次提交
    • S
      math: bessel cleanup (jn.c and jnf.c) · 5652d700
      Szabolcs Nagy 提交于
      both jn and yn functions had integer overflow issues for large
      and small n
      
      to handle these issues nm1 (== |n|-1) is used instead of n and -n
      in the code and some loops are changed to make sure the iteration
      counter does not overflow
      
      (another solution could be to use larger integer type or even double
      but that has more size and runtime cost, on x87 loading int64_t or
      even uint32_t into an fpu register is more than two times slower than
      loading int32_t, and using double for n slows down iteration logic)
      
      yn(-1,0) now returns inf
      
      posix2008 specifies that on overflow and at +-0 all y0,y1,yn functions
      return -inf, this is not consistent with math when n<0 odd integer in yn
      (eg. when x->0, yn(-1,x)->inf, but historically yn(-1,0) seems to be
      special cased and returned -inf)
      
      some threshold values in jnf and ynf were fixed that seems to be
      incorrectly copy-pasted from the double version
      5652d700
  3. 20 3月, 2012 1 次提交
    • N
      code cleanup of named constants · 0cbb6547
      nsz 提交于
      zero, one, two, half are replaced by const literals
      The policy was to use the f suffix for float consts (1.0f),
      but don't use suffix for long double consts (these consts
      can be exactly represented as double).
      0cbb6547
  4. 17 3月, 2012 1 次提交
  5. 14 3月, 2012 1 次提交
  6. 13 3月, 2012 1 次提交
    • R
      first commit of the new libm! · b69f695a
      Rich Felker 提交于
      thanks to the hard work of Szabolcs Nagy (nsz), identifying the best
      (from correctness and license standpoint) implementations from freebsd
      and openbsd and cleaning them up! musl should now fully support c99
      float and long double math functions, and has near-complete complex
      math support. tgmath should also work (fully on gcc-compatible
      compilers, and mostly on any c99 compiler).
      
      based largely on commit 0376d44a890fea261506f1fc63833e7a686dca19 from
      nsz's libm git repo, with some additions (dummy versions of a few
      missing long double complex functions, etc.) by me.
      
      various cleanups still need to be made, including re-adding (if
      they're correct) some asm functions that were dropped.
      b69f695a