diff --git a/ChangeLog b/ChangeLog index 50dfedb..872d501 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,19 @@ -2000-07-25 Richard Kreckel +2001-11-03 Richard Kreckel + + * src/float/transcendental/cl_F_sinx.cc (sinx_naive): For small + values of x, return square(x) instead of x. + * src/float/transcendental/cl_F_sinhx.cc (sinhx_naive): Likewise. + +2001-07-25 Richard Kreckel * Version 1.1.2 released. -2000-07-24 Richard Kreckel +2001-07-24 Richard Kreckel * src/base/hash/cl_hash.h: declare _cl_hashtable_iterator a friend of cl_heap_hashtable. -2000-07-22 Richard Kreckel +2001-07-22 Richard Kreckel * src/float/base/cl_ieee.cc: try to do magic to the FPU only if _FPU_IEEE is really defined. @@ -20,18 +26,18 @@ extern "C" elsewhere out of the namespace. * src/base/low/cl_low_div.cc: Likewise. -2000-06-08 Bruno Haible +2001-06-08 Bruno Haible * autoconf/config.{guess,sub}: Update to GNU version 2001-05-11. * autoconf/aclocal.m4: Upgrade to libtool-1.4. * autoconf/ltmain.sh: Likewise. * autoconf/ltconfig: Remove file. -2000-06-05 Richard Kreckel +2001-06-05 Richard Kreckel * tests/tests.cc: resolve namespace ambiguity about strcmp(). -2000-05-31 Richard Kreckel +2001-05-31 Richard Kreckel * Version 1.1.1 released. diff --git a/src/float/transcendental/cl_F_sinhx.cc b/src/float/transcendental/cl_F_sinhx.cc index fc658d0..ea6d1c5 100644 --- a/src/float/transcendental/cl_F_sinhx.cc +++ b/src/float/transcendental/cl_F_sinhx.cc @@ -118,7 +118,7 @@ const cl_LF sinhx_naive (const cl_LF& x) var uintL d = float_digits(x); var sintL e = float_exponent(x); if (e <= (1-(sintL)d)>>1) // e <= (1-d)/2 <==> e <= -ceiling((d-1)/2) ? - return x; // ja -> x als Ergebnis + return square(x); // ja -> x^2 als Ergebnis { Mutable(cl_LF,x); var sintL ee = e; // Bei e <= -1-limit_slope*floor(sqrt(d)) kann die Potenzreihe diff --git a/src/float/transcendental/cl_F_sinx.cc b/src/float/transcendental/cl_F_sinx.cc index 4d79c3c..d61dfb7 100644 --- a/src/float/transcendental/cl_F_sinx.cc +++ b/src/float/transcendental/cl_F_sinx.cc @@ -120,14 +120,13 @@ const cl_LF sinx_naive (const cl_LF& x) // -1.4 = d/dk j(k) = (d/dj k(j))^-1 = - j^2/(d+j)*ln 2, also j^2=2(d+j), // grob j=sqrt(2d) und damit k=sqrt(d).] // Aufwand: asymptotisch d^2.5 . - if (zerop(x)) return x; var uintL actuallen = TheLfloat(x)->len; var uintL d = float_digits(x); var sintL e = float_exponent(x); if (e <= (-(sintL)d)>>1) // e <= (-d)/2 <==> e <= -ceiling(d/2) ? - return x; // ja -> x als Ergebnis + return square(x); // ja -> x^2 als Ergebnis { Mutable(cl_LF,x); var sintL ee = e; // Bei e <= -1-limit_slope*floor(sqrt(d)) kann die Potenzreihe