- Sep 25, 2014
-
-
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
-
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.
-
- Aug 23, 2014
-
-
Raymond Toy authored
other tests.
-
Raymond Toy authored
* src/lisp/e_acos.c * Use fdlibm_setexception * src/lisp/e_asin.c * Use fdlibm_setexception * src/lisp/s_atan.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for acos, asin, and atan.
-
Raymond Toy authored
* src/lisp/e_atanh.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for atanh
-
Raymond Toy authored
* src/lisp/s_asinh.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for asinh
-
Raymond Toy authored
-
Raymond Toy authored
* src/lisp/e_log.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for log
-
Raymond Toy authored
operation was. This shows up when fdlibm_setexception signals an exception. It seems to set the exception bits directly instead of trying to do the operation. This was confusing get-fp-operands.
-
- Aug 22, 2014
-
-
Raymond Toy authored
doesn't use x87.
-
Raymond Toy authored
On 32-bit linux, we can still get FP exceptions using x87 because 32-bit linux can still use x87 instructions for arithmetic. Because of this, we need to re-enable the support x87 floating-point modes, including getting and setting the modes and also extracting the modes from a sigcontext. * src/code/float-trap.lisp: * Put back support for getting and setting the x87 FP modes. * src/compiler/x86/float.lisp: * Add comment on the layout of the status and control words for x87. * src/lisp/Linux-os.c: * Put back support for getting the x87 (and sse2) FP modes. Needed in the sigfpe-handler in float-trap.lisp. Some of this needs to be cleaned up because we always require sse2 now.
-
Raymond Toy authored
* src/lisp/e_exp.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for exp.
-
Raymond Toy authored
-
Raymond Toy authored
* src/lisp/s_log1p.c: * Use fdlibm_setexception * tests/trig.lisp: * Add tests for log1p.
-