Skip to content
Snippets Groups Projects
  1. Jul 19, 2006
    • rtoy's avatar
      Add better trig arg reduction via Sun's fdlibm. · a1ccc294
      rtoy authored
      lisp/Config.ppc_darwin
      o Compile e_rem_pio2.c and k_rem_pio2.c
      
      code/irrat.lisp:
      o Update the arg reduction code to support ppc.  We call out to the C
        sin, cos, and tan functions, after the argument has been accurately
        reduced.
      a1ccc294
    • rtoy's avatar
      Add the trig argument reduction routines from Sun's fdlibm so we can · c63d920e
      rtoy authored
      accurately reduce the arg and therefore compute the value of trig
      functions accurately.
      
      lisp/Config.linux_gencgc:
      o Compile e_rem_pio2.c and k_rem_pio2.c
      
      code/irrat.lisp:
      o Disable %sin, %cos, %tan functions.
      o Implement %sin, %cos, and %tan to call the fdlibm routine
        __ieee754_rem_pio2 to do argument reduction before calling the sin,
        cos, tan vops.
      
      compiler/x86/float.lisp:
      o Disable the vops for %sin, %cos, and %tan, so the Lisp code in
        irrat.lisp is used.
      c63d920e
  2. Jun 30, 2006
  3. May 15, 2006
  4. May 03, 2006
  5. Oct 20, 2005
    • rtoy's avatar
      Fix some issues with two-arg log function. (log 17 10f0), (log 17f0 · 0f17dd30
      rtoy authored
      10), and (log 17 10) returned different single-float results.  I think
      this is allowed by ANSI CL, but I think it's unfortunate.
      
      Therefore, try to apply float contagion to the arguments before
      computing the log function.  Also, if both args are single-floats or
      rationals, we coerce them to double-floats before computing the
      result.  This makes (log 17 10) = (log 17.0 10).
      
      There are other cases still to be considered.
      0f17dd30
  6. Aug 25, 2005
  7. Oct 19, 2004
    • rtoy's avatar
      CMUCL was computing the values of asin, acos, and atanh on the branch · fc58f500
      rtoy authored
      cuts on the real line incorrectly.  This shows up when calling these
      functions with real-valued args, not complex.  The problem was the
      computed values were not continuous with the quadrants specified by
      ANSI CL.
      
      Issue noted by Bruno Haible, cmucl-imp, 2004-10-11.
      
      See also some tests on cmucl-imp, 2004-10-19.
      fc58f500
  8. Jun 09, 2004
  9. Jun 04, 2004
  10. May 12, 2004
    • rtoy's avatar
      Fix some issues with the complex functions with signed zeroes. See · 3e0a1c82
      rtoy authored
      comment for full details, but the issue is that Lisp says mixing a
      real and a complex requires converting the real to complex before
      doing the operation.  But Kahan's algorithms assume that this doesn't
      happen, like z-1 should not be computed as z-(1+0*i).
      
      One place where this was wrong was for acos(2 +/- 0i).  Kahan says
      acos(2+0i) is +0 - i*acosh(2) and acos(2-0i) is +0 + i*acosh(2).  We
      had this backwards for the above reason.
      
      I think this was caused by the erroneous deftransforms for real op
      complex which were removed sometime ago, causing these function to
      compute the wrong thing.
      3e0a1c82
  11. Jan 29, 2003
  12. Jan 10, 2003
  13. Jan 08, 2003
  14. Dec 31, 2002
  15. Sep 05, 2002
  16. Apr 16, 2001
    • toy's avatar
      o Fix the declaration bug in complex-log-scaled · c275fc68
      toy authored
      o Remove the old special function routines
      o Add logb-finite to help optimize the use of logb
      o Remove some unneeded declarations since the compiler is smarter now
        than when this was originally written.
      o Add inhibit-warnings to coerce-to-complex-type since their
        unavoidable.
      o The cores of some routines are compiled with speed 3 and space 0 to
        get some maybe-inline routines inlined.
      c275fc68
  17. Mar 04, 2001
  18. Nov 19, 1999
  19. Jun 23, 1999
  20. Apr 15, 1998
  21. Feb 24, 1998
  22. Feb 19, 1998
  23. Dec 15, 1997
  24. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      dtc authored
      types. Adds storage classes to the backend for these so they can be
      stored in registers or on the stack without consing; new primitive
      types etc. Also adds (simple-array (complex {single,double}-float))
      array types to avoid consing and speed vectors operations.  All
      these changes are conditional on the :complex-float feature. More work
      is needed to exploit these changes: improving the type dispatch in the
      various function; maybe compiler transforms or more VOPs to handle
      common functions inline.
      4c3b1bb6
  25. Sep 08, 1997
  26. Aug 30, 1997
  27. Aug 26, 1997
  28. Feb 10, 1997
  29. Feb 05, 1997
  30. Jan 18, 1997
  31. Jul 08, 1996
  32. Oct 31, 1994
  33. Feb 11, 1994
  34. Nov 06, 1993
  35. May 25, 1993
  36. May 08, 1993
  37. Mar 01, 1993
  38. Jan 13, 1993
Loading