Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Use package #:oct, not #:qd.
Add method RATIONAL to convert a quad-double to a rational. qd-package.lisp: o Appropriately shadow and export RATIONAL. o Need to export WITH-QD-PARTS from QDI. qd-methods.lisp: o Define methods for RATIONAL for reals and qd-reals. qd-complex.lisp: o Use CL:RATIONAL as appropriate for the CL rational type.
qd-package.lisp: o Rearrange some exports so the CMU ones are all grouped together. o Export new constants pi/2, pi/4, 2pi, and log2. o Export the qd-real and qd-complex types. qd-methods.lisp: o Define new constants for pi/2, pi/4, 2pi, and log2. o Update some of the macrolets to work with a modern-mode lisp, like Allegro. qd-complex.lisp: o Use the new constants as needed.
qd-class.lisp: o Oops. Forgot to rename the defgenerics. qd-complex.lisp: o QLOG no longer exists. Use LOG. qd-methods.lisp: o QLOG no longer exists. Use LOG.
Get rid of the extra layer of function calls and define the special functions as methods directly.
Add methods to handle QD-REAL and CL:COMPLEX and vice-versa for the four basic arithmetic operations.
qd-complex.lisp: o Add ADD1 and SUB1 methods so we can use 1+ and 1- on quad-doubles. o Add INCF and DECF macros to support quad-doubles. qd-package.lisp: o Forgot to shadow REALP, COMPLEXP, and NUMBERP, previously. o Shadow and export INCF and DECF.
Add ADD1 method for QD-COMPLEX.
qd-package.lisp: o Shadow REALP, COMPLEXP, and NUMBERP qd-complex.lisp: o Extend REALP, COMPLEXP, and NUMBERP to recognize QD-REAL and QD-COMPLEX types.
Use uninterned symbols for IN-PACKAGE.
qd-methods.lisp: o Oops. Move COERCE to qd-complex.lisp because we use the #q reader macro. (This needs to be reorganized better.) o Add RANDOM methods so we can generate quad-double random numbers. qd-package.lisp: o Shadow RANDOM so we can add our own RANDOM to generate quad-doubles. qd-complex.lisp: o COERCE moved here.
Add license information (MIT).
Add method for UNARY-DIVIDE of QD-COMPLEX.
qd-complex.lisp: o Moved some methods from qd-methods.lisp to here. o Was missing TWO-ARG-+ for qd-complex and qd-real (and vice versa) o Fixed mistake in TWO-ARG-- (QD-COMPLEX REAL) o Fixed mistake in TWO-ARG-- (QD-COMPLEX CL:COMPLEX) o Was missing TWO-ARG-- (QD_COMPLEX QD-REAL) and vice versa. o Was missing TWO-ARG-/ for (QD-REAL QD-COMPLEX) qd-methods.lisp: o Moved some methods from here to qd-methods.lisp o Reimplement QFLOAT (RATIO QD-REAL) to use internal functions instead of calling TWO-ARG-/ and QFLOAT o QABS (QD-COMPLEX) was returning the wrong thing.
Fix build problem where the / method is not yet defined to be able to compute #.(/ 1 (sqrt #q2.0q0)).
o Export a few more symbols from QDI o Remove QDI package qualifiers from exported functions.
o Some Lisps cannot compute (asinh most-positive-double-float) without signalling an overflow. Use a different implementation. o Remove call to ext:with-float-traps-masked, which is CMUCL-specific, and not needed.
o Remove unnecessary calls to FLOAT and FLOAT-SIGN---the args are known to be qd-real or qd-complex already. o In QD-COMPLEX-ATANH, revert the code that handles real args on the branch cuts. This isn't needed anymore because the code was correct for z > 1 and calling qd-complex-atanh with (complex z -0) produces the correct branch.
o Fix QD-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 explicit handling of the atan(y/0) case we didn't take into account the sign y and 0. Fix that.
Add a few comments, remove unused code.
Add missing methods for expt.
Remove extra paren.
Fix typo in comments.
To get the branch cuts right for atanh, we have to get multiplications by signed zero right. Hence add careful-mul to make sure the result has the correct sign. Only needed in two places here.
o In QD-COMPLEX-ATANH, REALP doesn't work on quad-doubles. Should we define a new REALP that does? o QD-COMPLEX-ATANH has problems if the imaginary part is pi/2 + 2*k*pi because tan(pi/2) ends up signaling a division-by-zero error. Handle this case explicitly by assuming any errors from computing tan are because we're dividing-by-zero. o Declaration for QD-COMPLEX-TAN arg was wrong. o For QATAN with a complex-valued first arg, check to make sure the second arg is not given. That's not allowed by CL.
o QZEROP needs to work with qd-complex. o QZEROP needs to work with CL number type. o Add support for FROUND and SIGNUM.
Add support for CIS and PHASE.
QD-COMPLEX-ATANH and QD-COMPLEX_ASIN were not computing the right values for arguments on the branch cut.
Add unary-minus for qd-complex.
o TWO-ARG-* was missing some methods for multiplying a qd-complex and a qd-real o Add support for qd-complex for qexp and qexpt.
o Fix typo in qcosh o Add method for qatan for a qd-complex arg.
o Make TWO-ARG-* with a COMPLEX arg work with or without double-double-floats. o Add SQRT for qd-complex types.
Add support for sin, cos, tan, sinh, cosh, tanh for qd-complex args.
o Add support for asin, acos, acosh, atanh outside the primary real-valued domain. o Add support for asin, acos, acosh, atanh for complex args.
Add more missing methods to handle qd-complex and some CMUCL-specific double-double-float's.
Add methods for two-arg-<foo> for qd-complex numbers. Still needs work.
o Add two-arg-* for qd-complex args. (Still needs work!) o Remove debugging prints. o Cleanup other functions so they at least run and appear to be correct for the few tests done.
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|