1. 21 Jun, 2007 1 commit
  2. 20 Jun, 2007 1 commit
  3. 11 Jun, 2007 1 commit
    • rtoy's avatar
      compiler/float-tran.lisp: · 599a4a72
      rtoy authored
      o Handle signed-zeroes for addition, subtraction, and multiplication
        of double-double floats.  That is, return the correct signed zero
        for the result.
      o Try to handle overflow in addition, multiplication, and division by
        returning infinity, if the overflow or divide-by-zero trap is
        disabled.  This is done by looking to see what the corresponding
        double-float operation would return.  This probably needs more work.
      o Remove the careful-mul stuff from dd-complex-atanh since we handle
        signed zeroes better now during double-double multiplication.
  4. 09 May, 2007 1 commit
    • rtoy's avatar
      compiler/ppc/float.lisp: · 6574f257
      rtoy authored
      o Add vops to do fused multiply-add and fused multiply-subtract.
        (Only double-float supported.)
      o Add defknown's for these translations.
      o Used fused multiply-subtract for two-prod and two-sqr instead of the
        split function.
  5. 03 Feb, 2007 1 commit
    • rtoy's avatar
      Fix bug in expt type derivation. · 99d4c4c8
      rtoy authored
      (defun f (x y)
         (declare (fixnum x y))
         (expt x y))
      caused an error because we weren't handling member types correctly.
  6. 23 Jan, 2007 1 commit
    • rtoy's avatar
      Fix expt derive-type optimizer. The compiler was deriving the result · 4ece2b2c
      rtoy authored
      type of:
          (defun foo3 (x y)
            (declare (type (double-float (0d0) 1d0) x)
      	       (type (double-float (0d0)) y))
            (expt x y))
      to be (double-float 0d0 1d0), i.e, including -0.0, but that's not
      possible.  With this fix, the result type is (or (member 0d0)
      (double-float (0d0) 1d0)), which is better.
  7. 21 Aug, 2006 1 commit
    • rtoy's avatar
      Some very basic support for signed zeroes for DOUBLE-DOUBLE-FLOAT. We · e14ba2a5
      rtoy authored
      can now read and print -0w0.
      o Adjust float-sign so that we get the correct sign when
        double-double-floats are used.
      o Adjust FLOAT-RATIO to call %MAKE-DOUBLE-DOUBLE-FLOAT so that we
        preserve the sign of the number.  This is safe because the
        components are known to be properly scaled.
        the sign of the original float.  This is safe because the
        components are known to be properly scaled.
      o Add a FLOAT-SIGN deftransform to handle DOUBLE-DOUBLE-FLOAT.
  8. 07 Jul, 2006 2 commits
    • rtoy's avatar
      compiler/float-tran.lisp: · bbb89ea5
      rtoy authored
      o Change the following functions to be maybe-inline instead of inline
        so we don't inline them by default unless the user says so by
        specifying (SPACE 0): ADD-DD, MUL-DD-D, MUL-DD, ADD-DD-D, SQR-DD,
      o Set (SPACE 0) for these functions so we inline the operations.
        (Should we really inline all of these?)
    • rtoy's avatar
      Oops. We can only apply the sqrt deftransform for · 0b4eefba
      rtoy authored
      double-double-floats if the arg is non-negative.
  9. 30 Jun, 2006 1 commit
  10. 26 Jun, 2005 1 commit
  11. 19 Jun, 2005 1 commit
  12. 29 Apr, 2005 1 commit
  13. 24 Apr, 2005 1 commit
  14. 23 Sep, 2004 1 commit
  15. 03 Sep, 2004 1 commit
  16. 18 Jun, 2004 1 commit
    • rtoy's avatar
      o Fix a misplaced declaration in %unary-ftruncate/single-float · a71e3e77
      rtoy authored
      o Update %unary-ftruncate and the corresponding deftransform because
        it was not properly returning the correct sign for signed zeroes.
        If the number was in a good range, we used truncate, which loses the
        sign of zero.  (Should we have leave it in and add an explicit check
        for a zero result and adjust the sign appropriately?  That would
        allow us to use the fast builtin instructions at the expense of a
        test for zero and a fix.)
  17. 10 Jan, 2004 1 commit
  18. 09 Jan, 2004 1 commit
  19. 12 Sep, 2003 1 commit
  20. 07 Sep, 2003 1 commit
    • gerd's avatar
      (defun foo (x) (float x 1f0)) · 18894485
      gerd authored
      	(compile 'foo)
      	(foo 0d0)
      	 => 0d0
      	Found by Paul Dietz with sqrt on complex numbers.
      	* src/compiler/float-tran.lisp (float) <deftransform>:
      	Test with single-float-p instead of floatp.
  21. 05 Sep, 2003 2 commits
    • toy's avatar
      compiler/float-tran.lisp: · c640d0f2
      toy authored
      o Oops.  We should subtract from 0, not 0d0
      o Add the deftransform for - to the complex-fp-vops part too, because
        the vop gets that wrong.
      o Remove the vop for a real - complex because we get the sign of the
        imaginary part wrong.
    • toy's avatar
      The deftransform for - with a float and complex arg was negating the · dd95c758
      toy authored
      imaginary part instead of subtracting from 0.  This is needed to get
      the correct sign if the imaginary part was 0.
      (From a bug in Paul Dietz's ansi tests.)
  22. 02 Sep, 2003 1 commit
  23. 03 Jul, 2003 1 commit
  24. 02 Jul, 2003 1 commit
  25. 23 Apr, 2003 1 commit
  26. 14 Mar, 2002 1 commit
  27. 08 Mar, 2002 1 commit
    • toy's avatar
      Micro optimization for Sparc. The ftruncate code using · 95f890d7
      toy authored
      %unary-truncate has many redundant stack moves even when it's know the
      result will fit in a (signed-byte 32), so create vops to do the
      conversion directly in the floating-point registers.
      Also, sparc-v9 can do 64-bit integer conversions, so make the range up
      to 64-bits for sparc-v9.
  28. 25 Feb, 2002 1 commit
  29. 24 Sep, 2001 1 commit
  30. 12 Apr, 2001 1 commit
    • pw's avatar
      From Ray Toy: · 9fbccc50
      pw authored
      Here is the patch that makes the propagate-float-type,
      propagate-fun-type, and constrain-float-type features the default.
      All old code is removed.
      If you recompile, you should probably remove these features, just to
      be sure (caught a few mistakes that way).
  31. 06 Jul, 2000 1 commit
  32. 02 Apr, 2000 1 commit
    • dtc's avatar
      From Raymond Toy: · dfee6bab
      dtc authored
      o Add support for complex FP vops, enabled by the feature :complex-fp-vop
        which should work for all Sparcs.
  33. 06 Sep, 1999 1 commit
  34. 13 Jul, 1999 1 commit
    • pw's avatar
      From Ray Toy: · 06f81774
      pw authored
      o Change deftransform truncate to handle the two arg case.  Add
        similar deftranform for floor and ceiling.
      o Only inline complex single/double-float division if speed > space.
        Otherwise, call the division routines.
  35. 23 Jan, 1999 1 commit
  36. 01 Oct, 1998 1 commit
  37. 29 Sep, 1998 1 commit
    • dtc's avatar
      Change the domain argument of elfun-derive-type-simple from a · af5e6fb5
      dtc authored
      numeric-type to a high and low bound for which negative and positive
      zero being distinct as for the :negative-zero-not-zero feature.  This
      fixes some problems that occurred when not compiled with the
      :negative-zero-not-zero feature.
  38. 20 Sep, 1998 1 commit