1. 26 Nov, 2013 4 commits
    • Raymond Toy's avatar
      Switch to using atan-qd/taylor as the default atan implementation. · 0a607f3a
      Raymond Toy authored
      qd-fun.lisp:
      o Use atan-qd/taylor and atan2-qd/taylor as the atan-qd and atan2-qd
        implementation.
      o Fix bug in atan-qd/taylor. We need a special case for x small where
        we don't want to use the table. (Found by our rt-test.  Yay!)
      
      rt-tests.lisp:
      o Add comment for oct.atan.4 for why it works.
      0a607f3a
    • Raymond Toy's avatar
      Reduce size of the atan partition and node tables by half. · 793166a0
      Raymond Toy authored
      qd-const.lisp:
      o Update tables and generator to use tables with only half as many
        entries as before. This is because atan-qd/taylor never needs to
        compute directly for x > 1.
      
      qd-fun.lisp:
      o Use table length for binary search, so we're independent of other
        constants.
      o Remove FIXME.
      793166a0
    • Raymond Toy's avatar
      Fix atan/taylor bug and add atan2/taylor. · 4d09f5a3
      Raymond Toy authored
      qd-fun.lisp:
      o Fix issue with atan-qd/taylor for large args. We use the
        relationship atan(x) = pi/2-atan(1/x) for x > 1.
      o Add atan2-qd/taylor.  This appears to be much faster than
        atan2-qd/newton. 
      
      timing.lisp:
      o Add timing test for atan2-qd.
      4d09f5a3
    • Raymond Toy's avatar
      Implement a new atan method that is 21 times faster. · b9a21f1f
      Raymond Toy authored
      The new method uses a table and the taylor series for atan to compute
      atan for real args.
      
      qd-const.lisp:
      o Add the two tables used for the atan computation.
      o Include clisp code that generates the tables.
      
      qd-fun.lisp:
      o Implement atan using a set of tables and a Taylor series.
      
      timing.lisp:
      o Add a simple timing program to evaluate how fast each atan method
        is.
      b9a21f1f
  2. 25 Nov, 2013 1 commit
    • Raymond Toy's avatar
      Clean up rem-pi/2. · 3c136f7c
      Raymond Toy authored
      o Remove old version
      o Update new version to skip reduction if the arg <= pi/4.
      3c136f7c
  3. 24 Nov, 2013 1 commit
    • Raymond Toy's avatar
      Fix ticket:5 · 6127a79e
      Raymond Toy authored
      o Implement better pi reduction and also always do pi reduction.
      o Add test for sin(pi) and cos(2^120), to test pi reduction.
      o Accuracy for erfc is only 198 bits.
      6127a79e
  4. 10 Feb, 2011 1 commit
  5. 16 Jul, 2008 1 commit
  6. 28 Nov, 2007 1 commit
    • Raymond Toy's avatar
      Adjust code so that CMUCL can use arrays to store quad-doubles instead · 3e39d143
      Raymond Toy authored
      of using a (complex double-double-float).
      
      With these changes, CMUCL uses arrays and (rt:do-tests) passes
      successfully.
      
      oct.system:
      o Push :oct-array onto *FEATURES* to use arrays.  This is the default
        if not building on CMUCL.
      
      qd-fun.lisp:
      o Fix two erroneous uses of zerop on a quad-double in sinh-qd and
        tanh-qd.
      o Fix two erroneous uses of + on %quad-double; they should have used
        ADD-QD instead.
      
      qd-rep.lisp:
      o Change conditionalization to allow arrays for CMUCL.
      o Update compiler macros appropriately.
      
      qd.lisp:
      o Adjust optional target arg appropriately for oct-array feature.
      o Clean up IGNORE declarations.
      o Add some more declarations for the target to make CMUCL happier.
      3e39d143
  7. 07 Nov, 2007 1 commit
  8. 18 Oct, 2007 1 commit
  9. 17 Oct, 2007 1 commit
  10. 16 Oct, 2007 3 commits
    • Raymond Toy's avatar
      qd-fun.lisp: · d58b6166
      Raymond Toy authored
      o Remove extra rem-pi/2-int.
      
      qd-rep.lisp:
      o Fix typo in float-infinity-p for Allegro.
      o Ignore var in float-infinity-p and friends.
      d58b6166
    • Raymond Toy's avatar
      o Add default implementation of float-infinity-p, float-nan-p, · 4968eb46
      Raymond Toy authored
        float-trapping-nan-p.  These return NIL by default, unless the Lisp
        implementation has a suitable version.
      o Remove CMU conditionalization for float-infinity-p, float-nan-p,
        float-trapping-nan-p.
      4968eb46
    • Raymond Toy's avatar
      qd-package.lisp: · 0aaa8918
      Raymond Toy authored
      o Don't :USE CMUCL's EXTENSIONS package anymore.  Import just the
        symbols we need.
      
      qd-class.lisp:
      o No need to use package qualifiers.
      
      qd-fun.lisp:
      o Need package qualifier for MAYBE-INLINE.
      
      qd.lisp:
      o Need package qualifier for *INLINE-EXPANSION-LIMIT*
      .
      0aaa8918
  11. 15 Oct, 2007 3 commits
  12. 13 Oct, 2007 1 commit
  13. 10 Oct, 2007 1 commit
  14. 12 Sep, 2007 1 commit
    • Raymond Toy's avatar
      qd-fun.lisp: · 70c699b1
      Raymond Toy authored
      o Remove unused var R1 in EXP-QD/REDUCE.
      o TAN-QD was calling ZEROP instead of ZEROP-QD.
      o Comment out extra copy of ASINH-QD.
      
      qd-io.lisp:
      o Ignore unused var in QD-PRINT-EXPONENT and QD-READER.
      
      qd.lisp:
      o Remove extra version of DIV-QD.
      70c699b1
  15. 25 Aug, 2007 1 commit
  16. 14 Jun, 2007 1 commit
  17. 13 Jun, 2007 5 commits
  18. 12 Jun, 2007 3 commits
    • toy's avatar
      Change exit condition from < to <= since very small values of the arg · f4870c1a
      toy authored
      would set the threshold to 0 and we'd never exit the loop.  (Should we
      change the threshold to be something else?  if x is less than about
      1d-33, we don't need any more terms of the taylor series.)
      f4870c1a
    • toy's avatar
      o Fix debugging prints to use qdi::qd-format. · cd998025
      toy authored
      o Oops.  Desired iteration was chosen incorrectly if xx and yy had
        different signs.
      cd998025
    • toy's avatar
      qd-fun.lisp: · 8aadd62b
      toy authored
      o SQRT-QD has round-off problems for very large and very small
        numbers.  Solve this by scaling the number by a power of 4 before
        computing the square root.
      o Moved LOGB-FINITE and the core of QD-CSSQS to this file from
        qd-methods.lisp.  Rename the core routine as HYPOT-QD.
      o Use it in ATAN-QD/NEWTON to get rid of unnecessary overflow.
      
      qd-methods.lisp:
      o Moved LOGB-FINITE and the core of QD-CSSQS from this file to
        qd-fun.lisp.  Use HYPOT-QD in QD-CSSQS.
      
      qd-package.lisp:
      o Export HYPOT-QD.
      8aadd62b
  19. 02 Jun, 2007 3 commits
  20. 01 Jun, 2007 4 commits
  21. 30 May, 2007 1 commit
  22. 25 May, 2007 1 commit