Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to snapshot-2007-06:||(view) (annotate)|
Make DD-%SIN and DD-%TAN return -0w0 when the argument is -0w0.
Revert the previous change to DD-COMPLEX-ATANH. If z < -1, just call DD-COMPLEX-ATANH with -0w0 to get the correct value.
o Remove some unused constants o Fix a typo in a docstring. o Fix DD-COMPLEX-ASIN again: - The previous fix for asin(-2) being wrong actually broke the case for asin(2). Revert that. - The issue was that in our explicitly handling of the atan(y/0) case we didn't take into account the sign y and 0. Fix that.
o Make DD-%ATAN2 handle signed zeroes. This is needed to get branch cuts right for some special functions. o DD-COMPLEX-ATANH needs to be careful about producing signed zeroes in the right spots. Add a CAREFUL-MUL to make sure a zero of the correct sign is produced when needed. (What other places need such care?)
DD-COMPLEX-ATANH was returning the wrong value for real z and z > 1. It was saying atanh(-2) = .549 - i*pi/2. The correct answer is .549 + i*pi/2.
DD-COMPLEX-ASIN was returning the wrong value for real z and z < -1. It was saying asin(-2) = pi/2+i*1.317. The correct answer is -pi/2+i*1.317.
dd-%expm1 was computing the wrong values. Fix it so that it works. Only a few spot checks were done, but it seems to be working fine.
Oops. The argument reduction routine doesn't like negative numbers, so make dd-%sin, dd-%cos, dd-%tan handle that.
Implement accurate arg reduction for the trig functions sin, cos, tan, using __kernel_rem_pio2. Use the accurate reduction in dd-%sin, dd-%cos, dd-%tan. The original version were renamed dd-%%sin, dd-%%cos, dd-%%tan because we still need them to evaluate the functions for small args. This also has the side effect that we don't signal overflow for moderately large args (~1w50) anymore.
Oops. Use 0d0 instead of 0w0 when creating a double-double-float in dd-cssqs.
compiler/float-tran.lisp: 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?)
This large checkin merges the double-double float support to HEAD. 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).
file irrat-dd.lisp was initially added on branch double-double-array-branch.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|