- Oct 01, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
* Use fdlibm_setexception to handle the case when the arg is NaN or Inf. (Previously depended on x+x doing the right thing.) * Fix a compiler warning about possible dangling else by adding braces as needed.
-
- Sep 28, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
Since the x86 port calls this already, might as well make it available to everyone.
-
Raymond Toy authored
-
- Sep 27, 2014
-
-
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.
-
- Sep 26, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
-
- Sep 25, 2014
-
-
Raymond Toy authored
The minimum exponent is from 0, it's from least-positive float. * src/compiler/float-tran.lisp: * Derive the correct minimum exponent by using the exponent from the least-positive float value of the appropriate type. * tests/float-tran.lisp: * Add tests for the derived exponent type for DECODE-FLOAT.
-
Raymond Toy authored
-
Raymond Toy authored
Without this, compiled code produces different answers from interpreted code. * src/code/irrat.lisp: * Add cases where the base is 2 or 10 to compute the log in the same way as the deftransform for LOG does. * tests/float.lisp: * Fix comparison to use equalp, not equal. * Add test for log10.
-
- Sep 21, 2014
-
-
Raymond Toy authored
%log10. This better than using the definition (/ (log x) (log base)). This also allows exact answer for 2^n and 10^n for appropriate n. * src/compiler/float-tran.lisp: * Add deftransforms to convert (log x 2) and (log x 10) to kernel::log2 and kernel:%log10 * tests/float-tran.lisp: * Add tests to check the transforms are done, or not done, as appropriate.
-
- Sep 20, 2014
-
-
Raymond Toy authored
* src/code/irrat.lisp: * Define %log10 to use fdlibm's log10 * src/lisp/GNUmakefile * Compile e_log10 * tests/trig.lisp * Add tests for %log10.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
* src/code/irrat.lisp * Improve accuracy of log2 for the case when x=2^k. There might be some loss in accuracy for other values of x, however. * tests/float.lisp * Add test for log2(2^k) = k.
-
Raymond Toy authored
Type derivation of the sign of (DECODE-FLOAT X) returned the incorrect value when x was declared to be of type (DOUBLE-FLOAT (0d0)). * src/compiler/float-tran.lisp * Fix type derivation * tests/float-tran.lisp * New file for tests of DECODE-FLOAT-SIGN-DERIVE-TYPE-AUX. * tests/float.lisp * New file to test that decode-float is compiled correctly.
-
- Sep 12, 2014
-
-
Raymond Toy authored
only for the upcoming release.
-
Raymond Toy authored
-
Raymond Toy authored
Not quite fully working on NetBSD, but using this approach on Darwin does the right thing and all the tests pass. (Could these failures be due to NetBSD not compiling with just sse2 and thus uses x87 for the operations?) * setexception.c: * Add support for NetBSD. Instead of using feraiseexcept, try to generate the appropriate operations to generate the desired exceptions. * double-values.c: * Helper functions for setexception to return appropriate float values. These are in a different file so that the compiler can't optimize the values away when used in fdlibm_setexceptions. * GNUmakefile: * Compue double-values.c everywhere. Should be harmless since only NetBSD uses these functions.
-
- Sep 05, 2014
-
-
Raymond Toy authored
without any compiler magic. Untested.
-
Raymond Toy authored
-
Raymond Toy authored
-
- Sep 01, 2014
-
- Aug 29, 2014
-
-
Raymond Toy authored
an arrest-reason, destroy-process doesn't take effect. Destroy-process sets process-state to :active to try to ensure it gets the interrupt, but it also needs to clear process-%arrest-reasons and push something on process-%run-reasons. Patch from Paul Foley.
-
Raymond Toy authored
All the tests should pass now.
-
- Aug 28, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
selected set instead of all tests.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
- Aug 27, 2014
-
-
Raymond Toy authored
int.
-
Raymond Toy authored
This handles overflows better and (c::two-prod 1.7976931214684583d308 (1+ (scale-float 1d0 -28))) doesn't signal an overflow like the old algorithm.
-
Raymond Toy authored
* src/lisp/e_exp.c: * Signal underflow instead of returning the arg. * tests/trig.lisp: * Add tests for %exp when exp underflows.
-
- Aug 26, 2014
-
-
Raymond Toy authored
-