Skip to content
Snippets Groups Projects
  1. Sep 03, 2016
    • Raymond Toy's avatar
      Add comment. · 6c86016d
      Raymond Toy authored
      6c86016d
    • Raymond Toy's avatar
      Fix #28: Recursive function definition in cross-compile · 2482e5f0
      Raymond Toy authored
      The recursive definition comes from %single-float and %double-float
      trying to coerce a double-double-float to a single or double.  Not
      sure the best place to fix this, but added a special case here for
      %single-float and %double-float to convert the double-double-float to
      a double that can then be coerced to the appropriate type.  (Could
      have added a deftransform for coerce to handle double-doubles, but
      doing it here makes it easier to follow the code.)
      
      Verified that x86->x86 and sparc->sparc cross-compiles no longer have
      the warning.  Also verified that sparc->sparc actually cross-compiles
      and loads successfully and that the result will compile itself
      successfully.
      2482e5f0
  2. Sep 27, 2014
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · ab0a979d
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      
      Conflicts:
      	tests/float.lisp
      ab0a979d
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · 315ea234
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      315ea234
  3. Aug 26, 2014
    • Raymond Toy's avatar
      Deprecate FLOAT-TRAPPING-NAN-P in favor of FLOAT-SIGNALING-NAN-P. · 9b6ad201
      Raymond Toy authored
      These numbers are called signaling, not trapping NaN in almost all
      usages.
      
       * code/exports.lisp:
         * Export FLOAT-SIGNALING-NAN-P.
       * code/float.lisp:
         * Implement FLOAT-SIGNALING-NAN-P.
         * Make FLOAT-TRAPPING-NAN-P an inline call to the
           FLOAT-SIGNALING-NAN-P and add a docstring to say it is
           deprecated. 
       * code/print.lisp:
         * Print "Signaling" instead of "Trapping".
       * i18n/locale/cmucl.pot:
         * Regenerated due to the changes in docstrings.
      9b6ad201
  4. May 10, 2014
  5. Mar 08, 2014
  6. Mar 01, 2014
    • Raymond Toy's avatar
      Fix ticket 94. · 513c3b23
      Raymond Toy authored
       * Add least-positive-normalized-double-double-float,
         least-negative-normalized-double-double-float,
         least-positive-double-double-float,
         least-negative-double-double-float,
         most-positive-double-double-float,
         most-negative-double-double-float to the extensions package.
      513c3b23
  7. Nov 04, 2011
  8. Sep 25, 2011
  9. Sep 03, 2011
    • rtoy's avatar
      Fix rounding for large numbers. · 5bee53ac
      rtoy authored
      Bug was pointed by Christophe in private email.  Fix is based on his
      suggested solution.  Some examples that should work now:
      
      (round 100000000002.9d0) -> 100000000003
      
      (round (+ most-positive-fixnum 1.5w0)) -> 536870912
      5bee53ac
  10. Apr 20, 2010
  11. Apr 19, 2010
  12. Mar 19, 2010
  13. Feb 05, 2010
    • rtoy's avatar
      o Make %unary-fround return a negative zero if the argument is a · 39cde082
      rtoy authored
        negative zero.
      o Change %unary-ftruncate to call %unary-fround.  This speeds up
        ftruncate by 2-4 times.
      39cde082
    • rtoy's avatar
      Implement a fast fround for single and double floats. This is enabled · d611150a
      rtoy authored
      everywhere except for x87 builds since there is a possible roundoff
      issue due to the 80-bit registers for x87.
      
      This is some 2-3 times faster than the existing fround function.
      
      code/float.lisp:
      o Implementations of %unary-fround/single-float,
        %unary-fround/double-float, and %unary-fround.  Declare the first
        two as inline too.
      
      compiler/float-tran.lisp:
      o Tell compiler about %unary-fround.
      o Transform fround to a call to %unary-fround.
      o Transform %unary-fround to special versions for single and double
        float arguments.
      d611150a
  14. Dec 22, 2008
  15. Oct 24, 2008
    • rtoy's avatar
      code/float.lisp: · 139b5ed6
      rtoy authored
      o Forgot to implement FLOAT-PRECISION for double-doubles.
      
      general-info/release-19f.txt:
      o Document it.
      139b5ed6
  16. Apr 15, 2008
  17. Feb 13, 2008
  18. Oct 10, 2007
    • rtoy's avatar
      o Add RATIONAL-TO-DD, an accurate method to convert rationals to · 4f86a308
      rtoy authored
        double-double-floats.  (From Richard Fateman.)
      o Use that in FLOAT-RATIO for convertnig ratios to
        double-double-floats.
      o Remove old double-double-float support from FLOAT-RATIO.
      o Split FLOAT-RATIO in two, one supporting single/double floats, and
        one for double-double-floats.
      
      With these changes, I think we now have print/read consistency for
      double-double-float numbers.
      4f86a308
  19. May 24, 2007
  20. May 19, 2007
    • rtoy's avatar
      Trac ticket #10 · 51a50f19
      rtoy authored
      For large numbers we did not check for odd-valued results that needed
      to be rounded to even.
      51a50f19
  21. Mar 27, 2007
  22. Jan 18, 2007
  23. Aug 21, 2006
    • rtoy's avatar
      Some very basic support for signed zeroes for DOUBLE-DOUBLE-FLOAT. We · e14ba2a5
      rtoy authored
      can now read and print -0w0.
      
      code/float.lisp:
      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.
      
      compiler/float-tran.lisp:
      o Use %MAKE-DOUBLE-DOUBLE-FLOAT in %DOUBLE-DOUBLE-FLOAT to preserve
        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.
      e14ba2a5
  24. Jun 30, 2006
  25. Aug 25, 2005
    • rtoy's avatar
      o Fix a bug in %unary-ftruncate/single-float and · 8e58835f
      rtoy authored
        %unary-ftruncate/double-float where the test for infinity and NaN
        was wrong.
      o When given NaN, these functions should return a quiet
        (non-signaling) NaN instead of returning the signaling NaN.  This
        fixes the FRUNCATE/FFLOOR/FCEILING tests in ieeefp-tests.
      8e58835f
  26. Jun 18, 2004
    • 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.)
      a71e3e77
  27. Jun 09, 2004
  28. Jul 22, 2002
  29. May 08, 2002
  30. Mar 05, 2002
  31. Feb 25, 2002
  32. Jun 17, 2001
    • pw's avatar
      From Eric Marsden: · 8de4d134
      pw authored
      FLOAT-RADIX should signal an error if arg is not a FLOAT.
      8de4d134
  33. Mar 04, 2001
  34. May 22, 2000
  35. May 06, 2000
  36. Nov 19, 1999
Loading