- 18 Feb, 2018 1 commit
-
-
Raymond Toy authored
The deftransforms `upgraded-complex-real-contagion-arg1` and `upgraded-complex-real-contagion-arg2` were coercing the complex number to the exact type of the float number. Because of the `THE` form, the type of the float was `(member 1d0)`, so the compiler was coercing `#c(1/2 1/2)` to `(complex (double-float 1d0))`, which is wrong. Therefore, coerce the complex to just the type format of the real part, ignoring any bounds. * src/compiler/float-tran.lisp * Coerce to format type, discarding any bounds * src/general-info/release-21d.md * Update notes * tests/issues.lisp * Added test for this
-
- 04 Feb, 2018 1 commit
-
-
Raymond Toy authored
If 0 is the lower bound then the smallest exponent is not for 0, but for the least positive float because of denormals. Also handle exclusive bounds.
-
- 03 Feb, 2018 1 commit
-
-
Raymond Toy authored
Type derivation for exponent part of decode-float was incorrect. We need to take the absolute value of the argument before deriving the type since the exponent is, of course, independent of the sign of the number. In the test case, the negative interval caused the lower and upper bounds to be reversed, resulting in an invalid interval.
-
- 20 Dec, 2017 1 commit
-
-
Raymond Toy authored
-
- 14 May, 2016 1 commit
-
-
Raymond Toy authored
src/compiler/float.lisp: o The deftransform coerce was checking for a type of 'float and using %single-float to do the conversion. This is incorrect; it should only apply if the type is 'single-float. tests/issues.lisp o Add test for this. Verified that the test fails on the current snapshot and ix fixed by this change.
-
- 07 Jun, 2015 3 commits
-
-
Raymond Toy authored
Previously only commented out, so really remove them now.
-
Raymond Toy authored
-
Raymond Toy authored
compiler/float-tran-dd.lisp: * Most of the double-double implementation moved here. compiler/float-tran.lisp: * Removed most of the double-double implementation. compiler/loadcom.lisp: * Load float-tran-dd. tools/comcom.lisp: * Compile float-tran-dd. i18n/local/cmucl.pot: * Regenerated.
-
- 26 Nov, 2014 1 commit
-
-
Raymond Toy authored
* code/exports.lisp: * Export %LOG2. * code/irrat.lisp: * Define %log2 * Use %log2 instead of log2. (This needs work) * compiler/float-tran.lisp: * Use %log2 instead of log2 in the deftransforms.
-
- 02 Oct, 2014 1 commit
-
-
Raymond Toy authored
If the exponent (second arg of SCALE-FLOAT) is such that 2^exponent can be represented as a float (single or double), we can implement SCALE-FLOAT using a multiplication by 2^exponent, since multiplication by 2^exponent is exact. * src/compiler/float-tran.lisp: * Update deftransforms for SCALE-FLOAT to do a multiply when possible. * tests/float-tran.lisp: * Add tests to make sure the deftransforms for SCALE-FLOAT are applied appropriately.
-
- 25 Sep, 2014 3 commits
-
-
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. Conflicts: tests/float-tran.lisp
-
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.
-
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.
-
- 21 Sep, 2014 1 commit
-
-
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.
-
- 20 Sep, 2014 1 commit
-
-
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.
-
- 27 Aug, 2014 1 commit
-
-
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.
-
- 26 Jul, 2014 3 commits
-
-
Raymond Toy authored
* code/exports.lisp: * Export %ieee754-rem-pi/2 and %sincos. * code/irrat.lisp: * Remove some conditionalization that is always true now. * compiler/float-tran.lisp: * %sincos is exported so we don't need the package qualifier.
-
Raymond Toy authored
converted cis to (complex (cos x) (sin x)). Besides, that was blocking the other deftransform for cis that replaced cis with a call to %sincos.
-
Raymond Toy authored
-
- 24 Jul, 2014 1 commit
-
-
Raymond Toy authored
to C.
-
- 08 Mar, 2014 1 commit
-
-
Raymond Toy authored
It's incorrect. We really want log(-0) to be -inf + i*pi. It's needed to get the correct values on the branch cuts of the special functions from the definitions. Update trac test to test for this.
-
- 09 Feb, 2014 1 commit
-
-
Raymond Toy authored
Type derivation for log fixed to be consistent with the actual returned values. * src/compiler/float-tran.lisp: * Update {{{LOG-DERIVE-TYPE-AUX-1}}} to compute the correct type. * tests/trac.lisp: * Add test for trac ticket:92
-
- 03 Jan, 2014 1 commit
-
-
Raymond Toy authored
-
- 21 Dec, 2013 1 commit
-
-
Raymond Toy authored
separately.
-
- 15 Dec, 2013 1 commit
-
-
Raymond Toy authored
used for all platforms. code/irrat.lisp:: * Implement %SINCOS compiler/float-tran.lisp:: * Update deftransforms for CIS. %SINCOS can be used on any platform. tests/trig.lisp: * Add tests to verify %sincos returns exactly the same values as for sin and cos.
-
- 11 Dec, 2013 1 commit
-
-
Raymond Toy authored
Update users accordingly.
-
- 08 Dec, 2013 2 commits
-
-
Raymond Toy authored
accurate pi-reduction so we don't have do it ourselves.
-
Raymond Toy authored
-
- 07 Dec, 2013 1 commit
-
-
Raymond Toy authored
src/compiler/float-tran.lisp o Add defoptimizer for DECODE-FLOAT. src/general-info/release-20f.txt: o Update notes.
-
- 27 Oct, 2013 1 commit
-
-
Raymond Toy authored
0.
-
- 22 Oct, 2013 1 commit
-
-
Raymond Toy authored
double-float-bits for x86/sse2. This gives x86 the same micro-optimizations that were available for sparc and ppc. o code/kernel.lisp: o Enable fast double-float-bits using the vop instead of calling double-float-high-bits/double-float-low-bits. o compiler/float-tran.lisp: o Make fast-unary-ftruncate known to compiler and enable optimizer for it. o Make double-float-bits known to compiler o compiler/x86/float-sse2.lisp: o Implement fast-unary-ftruncate for singles and doubles. o Implement double-float-bits.
-
- 22 Feb, 2013 1 commit
-
-
Raymond Toy authored
srctran.lisp:: * The optional convert-type arg is always true, so remove it and update the local functions to convert always. * Clean up some comments as well. float-tran.lisp:: * Fix up one place where we were supplying a value for the optional convert-type arg.
-
- 23 Dec, 2012 1 commit
-
-
Raymond Toy authored
-
- 19 Aug, 2012 1 commit
-
-
Raymond Toy authored
o Convert x/n to x*(1/n) when n is a power of two since 1/n has an exact representation. o Convert 2*x to x+x.
-
- 04 Nov, 2011 1 commit
-
-
Raymond Toy authored
-
- 25 Sep, 2011 1 commit
-
-
Raymond Toy authored
entries with just the file path, removing the revision number, date, author and state. The actual information is now computed during compilation and stored in the fasl itself. (See ticket:48.)
-
- 18 Aug, 2010 2 commits
- 17 Aug, 2010 1 commit
-
-
rtoy authored
case of a negative real to an integer power. Previously, this case wasn't handled.
-
- 20 Apr, 2010 1 commit
-
-
rtoy authored
may get confused with source locations if the reader macros are installed.
-