- 21 Jun, 2007 1 commit
-
-
rtoy authored
-
- 20 Jun, 2007 1 commit
-
-
rtoy authored
(nonexistent) block.
-
- 11 Jun, 2007 1 commit
-
-
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. code/irrat-dd.lisp: o Remove the careful-mul stuff from dd-complex-atanh since we handle signed zeroes better now during double-double multiplication.
-
- 09 May, 2007 1 commit
-
-
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. compiler/float-tran.lisp: o Used fused multiply-subtract for two-prod and two-sqr instead of the split function.
-
- 03 Feb, 2007 1 commit
-
-
rtoy authored
(defun f (x y) (declare (fixnum x y)) (expt x y)) caused an error because we weren't handling member types correctly.
-
- 23 Jan, 2007 1 commit
-
-
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.
-
- 21 Aug, 2006 1 commit
-
-
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.
-
- 07 Jul, 2006 2 commits
-
-
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, DIV-DD, DIV-DD-D, SQRT-DD code/irrat-dd.lisp: o Set (SPACE 0) for these functions so we inline the operations. (Should we really inline all of these?)
-
rtoy authored
double-double-floats if the arg is non-negative.
-
- 30 Jun, 2006 1 commit
-
-
rtoy authored
The merge is from the tag "double-double-irrat-end". The double-double branch is now obsolete. The code should build without double-double support (tested on sparc) as well as build with double-double support (tested also on sparc).
-
- 26 Jun, 2005 1 commit
-
-
rtoy authored
mrg32k3a test in cl-bench.
-
- 19 Jun, 2005 1 commit
-
-
rtoy authored
micro-optimization.
-
- 29 Apr, 2005 1 commit
-
-
rtoy authored
replace with a single scale-float optimizer. This enables type derivation for scale-float on x86, which wasn't transforming scale-float to scale-single-float/scale-double-float.
-
- 24 Apr, 2005 1 commit
-
-
rtoy authored
negative and the scale-factor caused underflow during computation of the bounds. Fix that. This fixes misc.567 test from ansi-tests, and perhaps others.
-
- 23 Sep, 2004 1 commit
-
-
rtoy authored
if the range of the arg were too large to fit in a float. Silently return unbounded value instead of signaling an error during compilation.
-
- 03 Sep, 2004 1 commit
-
-
rtoy authored
be a union type.
-
- 18 Jun, 2004 1 commit
-
-
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.)
-
- 10 Jan, 2004 1 commit
-
-
toy authored
we don't have to call abs at all.
-
- 09 Jan, 2004 1 commit
-
-
toy authored
(expt <rational> <rational>). The result can be a rational, a float, or a complex single-float.
-
- 12 Sep, 2003 1 commit
-
-
gerd authored
is an invalid type specifier. * src/compiler/float-tran.lisp (float): Make three optimizers, one for no prototype, one for single-float prototype, and one for double-float prototype.
-
- 07 Sep, 2003 1 commit
-
-
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.
-
- 05 Sep, 2003 2 commits
-
-
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. compiler/sparc/float.lisp: o Remove the vop for a real - complex because we get the sign of the imaginary part wrong.
-
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.)
-
- 02 Sep, 2003 1 commit
-
-
toy authored
calling %SINGLE-FLOAT which converts everything to a single-float. (Noted by Christophe Rhodes on #lisp.)
-
- 03 Jul, 2003 1 commit
-
-
toy authored
which we weren't handling. Use bound-value to get the value. This probably still needs some work.
-
- 02 Jul, 2003 1 commit
-
-
toy authored
of a double-float in multiple-values. This is better than calling double-float-high/low-bits which causes 2 stores to the stack to be done.
-
- 23 Apr, 2003 1 commit
-
-
toy authored
decode-double-float more accurately. (Do we need defoptimizers for these? Might be useful to get at least the exponent range accurately.)
-
- 14 Mar, 2002 1 commit
-
-
toy authored
DEFKNOWN for it.
-
- 08 Mar, 2002 1 commit
-
-
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.
-
- 25 Feb, 2002 1 commit
-
-
toy authored
instead of calling the generic TRUNCATE. Make FFLOOR, FCEILING, and FROUND use FTRUNCATE so they benefit too.
-
- 24 Sep, 2001 1 commit
-
-
toy authored
operation for the denominator). o Add corresponding deftransform for real/complex.
-
- 12 Apr, 2001 1 commit
-
-
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).
-
- 06 Jul, 2000 1 commit
-
-
dtc authored
(complex float) types even when passed a (complex rational) or (complex integer).
-
- 02 Apr, 2000 1 commit
-
-
dtc authored
o Add support for complex FP vops, enabled by the feature :complex-fp-vop which should work for all Sparcs.
-
- 06 Sep, 1999 1 commit
-
-
dtc authored
making use of the deftransform :policy feature. Further just use generic division if the transform fails rather than adding specialised complex float division functions which shouldn't have been defined here anyway.
-
- 13 Jul, 1999 1 commit
-
-
pw authored
Changes: 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.
-
- 23 Jan, 1999 1 commit
-
-
dtc authored
-
- 01 Oct, 1998 1 commit
-
-
dtc authored
functions, from Raymond Toy.
-
- 29 Sep, 1998 1 commit
-
-
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.
-
- 20 Sep, 1998 1 commit
-
-
dtc authored
argument with the domain and compute the bounds on the intersection. If there's anything left over, add the complex type as the result. From Raymond Toy.
-