add TODO list
[libm] / TODO
1 ldhack.h fix:
2         move ldouble manipulation into arch specific headers
3 long double isnan, isinf..:
4         efficient macro versions of long double classification macros?
5         (they are ld* representation specific)
6 lrint:
7         does inexact allowed on overflow?
8         see c99 7.12, 7.12.9.5, F.9, F.9.6.5
9 small file cleanups:
10         if libm.h internals is not needed (ldexp,..) then include math.h only
11         LD64 wrap small long double functions as well
12 trigonometric functions:
13         __rem_pio_large: is returning 2 bits enough?
14         __tan: 3rd arg semantics is probably not optimal
15         sinf,cosf: return sindf(-y) vs -sindf(y)?
16         __sin,__cos,..: z,w,.. -> x2,x4,.. so degree is easier to see
17         __rem_pio2*: rounding trick: simply use the low 32 bits of fn?
18 nan:
19         use strtod? c99 7.12.11.2
20 scalbf:
21         scalb is buggy, do we need the *f and *l version?
22 scalbn:
23         needs a rewrite: signed int problems, wrong <-50000 check
24 __ldexp_cexp:
25         only complex in math/, move to cmath?
26 j0l, y0l,..:
27         declare long double bessel functions in math.h?
28 uniform inexact exception raising:
29         (int)x == 0 and huge+x > 0 are used
30         unreachable code is not commented and hard to follow
31 generic code fixes:
32         int32_t -> uint32_t conversion (subtle)
33         += 1, -= 1 -> ++, --
34         TWO52, one, zero, twom1000,.. -> use reasonable consts
35         (float)1 -> 1.0f
36         ldexp -> use scalbn internally (ldexp is a wrapper)
37         i386 vs precision -> assume extended prec setting
38         long double const trunc/slowness bug
39         remove "unsupported long double format" checks
40         sign bit (sqrt)
41 fma:
42         expects single 53bit rounding
43         rewrite using long double arithmetics?
44 log2:
45         dekker vs long double arithmetics
46 tgamma:
47         missing
48         lanczos approx as in boost/math/special_functions, python/Modules/mathmodule.c
49         or bsd tgamma
50 complex
51         optimizable creal cimag (libm.h macro for internal code?)
52         test? (using mdc lib, available test vectors,..)
53         Kahan, W. "Branch Cuts for Complex Elementary Functions, or Much Ado About Nothing's Sign Bit." 1987
54         Hull, Fairgrieve, Tang "Implementing complex elementary functions using exception handling" 1994
55         Hull, Fairgrieve, Tang "Implementing the complex arcsine and arccosine functions using exception handling" 1997
56         boost/math/complex
57         python/Modules/cmathmodule.c (+math, cmath tests)
58 asm:
59         i386, x86_64 asm versions
60 libm test
61         test vectors
62         special cases from c99 F.9, G
63         randomized test using mpfr
64 arm fenv?