Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Move the configuration stuff out of the system definition files and place them in qd-package.lisp.
qd-package.lisp: o Don't :USE CMUCL's EXTENSIONS package anymore. Import just the symbols we need. qd-class.lisp: o No need to use package qualifiers. qd-fun.lisp: o Need package qualifier for MAYBE-INLINE. qd.lisp: o Need package qualifier for *INLINE-EXPANSION-LIMIT* .
o Rename QUAD-DOUBLE-INTERNAL package to OCT-INTERNAL, with nickname OCTI instead of QDI. o Rename OCT package to NET.COMMON-LISP.OCT, with a nickname of OCT o Remove nickname of QD. (Conflicts with other packages dealing with quad-doubles.) o Update all uses of QDI: to OCTI: qd-fun.lisp: o Add REM-PI/2 to do a simpler computation if the arg is small enough. Otherwise, use the accurate but expensive rem operation. o Renamed ACCURATE-SIN-QD to SIN-QD, etc. o Update SIN-QD etc to use REM-PI/2.
qd-io.lisp: o Add RATIONAL-TO-QD, a simple, fast and accurate method to convert rationals to quad-doubles. (From Richard Fateman.) o Use RATIONAL-TO-QD to create a quad-float qd-methods.lisp: o Use RATIONAL-TO-QD to create a quad-float from a bignum and ratio. qd-package.lisp: o Export RATIONAL-TO-QD
Add RATIONALIZE methods. Algorithm graciously provided by Bruno Haible. qd-package.lisp: o Shadow RATIONALIZE qd-methods.lisp: o Add RATIONALIZE methods for CL:REAL's and QD-REAL's..
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.
Make TWO-SUM a macro, just like we did for QUICK-TWO-SUM. All RT tests pass on CMUCL and Allegro. qd-package.lisp: o Don't import C::TWO-SUM anymore. qd-dd.lisp: o Make TWO-SUM a macro. qd.lisp o Add TWO-SUM macro for CMUCL (which just calls C::TWO-SUM). o Update all uses of TWO-SUM to use the macro appropriately.
To speed up Allegro (and other Lisp's that don't support inline functions), change QUICK-TWO-SUM from a function to a macro. Note that macro has different calling convention than the function. This is needed because Allegro apparently doesn't handle VALUES without boxing. All rt tests pass. qd-package.lisp: o For CMUCL, don't import C::QUICK-TWO-SUM into the QDI package anymore. qd-dd.lisp: o New QUICK-TWO-SUM macro. qd.lisp: o Add CMUCL version of QUICK-TWO-SUM macro, which just calls C::QUICK-TWO-SUM. o Update all users of QUICK-TWO-SUM appropriately.
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-package.lisp: o Shadow FLOAT-DIGITS qd-methods.lisp: o Add FLOAT-DIGITS method.
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.
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.
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).
qd-package.lisp: o Shadow CL:COERCE and export QD:COERCE qd-methods.lisp: o Define methods for COERCE so we can use COERCE with QD-REAL and QD-COMPLEX.
Add OCT as package nickname.
qd-fun.lisp: o SQRT-QD has round-off problems for very large and very small numbers. Solve this by scaling the number by a power of 4 before computing the square root. o Moved LOGB-FINITE and the core of QD-CSSQS to this file from qd-methods.lisp. Rename the core routine as HYPOT-QD. o Use it in ATAN-QD/NEWTON to get rid of unnecessary overflow. qd-methods.lisp: o Moved LOGB-FINITE and the core of QD-CSSQS from this file to qd-fun.lisp. Use HYPOT-QD in QD-CSSQS. qd-package.lisp: o Export HYPOT-QD.
Support for infinities for CMUCL. Other platforms don't currently support infinities. qd-class.lisp: o Print out infinities. qd-io.lisp: o QD-FORMAT handles infinities qd-methods.lisp: o Add constants for positive and negative quad-double infinities. qd-package.lisp: o Export +PI+ o Export infinities.
o Export a few more symbols from QDI o Remove QDI package qualifiers from exported functions.
Export symbols from QD.
The EXTENSIONS package is for CMUCL. Conditionalize it.
Use uninterned symbols for the package stuff. This should work with a "modern-mode" lisp.
Add implementation of necessary core double-double routines for quad-double. qd-dd.lisp: o Needed routines (taken from CMUCL) qd.system: o Compile qd-dd.lisp if needed. qd-package.lisp: o If on CMUCL, import the needed routines from the C package. qd.lisp: o Remove the C:: package qualifiers from the core double-double routines.
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.
o LOG can return qd-complex's now. o Add support for MIN and MAX.
o Add REALPART, IMAGPART o Reorder some code.
o Fix mistake in truncate, which takes 2 args, not 1. o Add support for abs, round. (Round is not working right.)
o Fix mistake in zerop, minusp, plusp. o Add support for floor, ceiling, truncate, and the corresponding float versions.
Add DECODE-FLOAT, INTEGER-DECODE-FLOAT, SCALE-FLOAT.
o Export some more symbols from QDI. o Shadow ZEROP, PLUSP, MINUSP, EXPT, COMPLEX.
Add 1+ and 1-.
Implement >= and <=.
qd-class.lisp: o TWO-ARG +, -, *, / needs to be able to handle the case when both args are numbers, not just reals. o Add implementation for =, <, and >. o Remove declarations in =, /=, <. qd-package.lisp: o Shadow /=, <, >. qd.lisp: o Add implementation of qd-<.
o Export QD-= from QDI. o Shadow = in QD.
o Export more functions from QDI. o Shadow more CL functions.
Export more symbols from QDI.
o Create a QUAD-DOUBLE-INTERNAL package for the internal stuff in qd.lisp and friends o create QUAD-DOUBLE package for the quad-double class. o Update in-package forms appropriately. o Export the necessary QUAD-DOUBLE-INTERNAL symbols so QUAD-DOUBLE can use them.
Shadow +, -, *, and /.
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|