Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Add or cleanup more docstrings.
Add or cleanup some docstrings.
Adjust code so that CMUCL can use arrays to store quad-doubles instead of using a (complex double-double-float). With these changes, CMUCL uses arrays and (rt:do-tests) passes successfully. oct.system: o Push :oct-array onto *FEATURES* to use arrays. This is the default if not building on CMUCL. qd-fun.lisp: o Fix two erroneous uses of zerop on a quad-double in sinh-qd and tanh-qd. o Fix two erroneous uses of + on %quad-double; they should have used ADD-QD instead. qd-rep.lisp: o Change conditionalization to allow arrays for CMUCL. o Update compiler macros appropriately. qd.lisp: o Adjust optional target arg appropriately for oct-array feature. o Clean up IGNORE declarations. o Add some more declarations for the target to make CMUCL happier.
Don't put initializers for the optional arg in the define-compiler-macro. This causes the same initializer object to be used everywhere. Instead, if no optional arg is given, call the initializer in the expansion. This fixes some issues with Allegro, and probably all other Lisps that use don't have complex double-double-float objects.
Merge the changes from the THREE-ARG-BRANCH to HEAD.
qd-rep.lisp: o Fix typo in compiler macro for sub-d-qd qd.lisp: o Use 3-arg versions in div-qd-t to speed things up. Approximately doubles the speed with clisp. qd-fun.lisp: o Use 3-arg versions in sqrt-qd to speed things up. Approximately doubles the speed with clisp.
o Add 3-arg forms for add-qd-d, mul-qd-d, add-d-qd, sub-qd-d, sub-d-qd, and neg-qd. o Correct the compiler macros for CMUCL for sub-qd and sqr-qd.
o Add support for SQR-QD-T o Add compiler macro for SQR-QD.
o Move compiler macros from qd.lisp to qd-rep.lisp o Declare add-qd-t, mul-qd-t and div-qd-t as inline functions so that everything is still fast on cmucl.
Oops. %STORE-QD-D wasn't returning the target value.
First cut at adding a 3-arg versions of the basic operations to reduce consing by allowing the third argument to be a place where the result can be stored. This is intended to help reduce allocation and gc costs for Lisps that use arrays to represent quad-doubles. More work is needed to make the compiler macros do the right thing for CMUCL. qd-rep.lisp: o Add %STORE-QD-D to store a quad-double into a place. For CMUCL, there place argument is ignored and a fresh quad-double is created. qd.lisp: o Modify ADD-QD, SUB-QD, MUL-QD, and DIV-QD to take an optional third argument indicating where the result can be stored. Ignored on CMUCL. o Add ADD-QD-T, SUB-QD-T, MUL-QD-T, and DIV-QD-T, which are 3-arg functions with the third arg always required which is the storage area to hold the result. Ignored on CMUCL. o Add compiler macros to convert ADD-QD and friends to ADD-QD-T if the third arg is always given. The effect is, essentially, inlining ADD-QD.
qd-fun.lisp: o Remove extra rem-pi/2-int. qd-rep.lisp: o Fix typo in float-infinity-p for Allegro. o Ignore var in float-infinity-p and friends.
o Add default implementation of float-infinity-p, float-nan-p, float-trapping-nan-p. These return NIL by default, unless the Lisp implementation has a suitable version. o Remove CMU conditionalization for float-infinity-p, float-nan-p, float-trapping-nan-p.
o Oops. Fix up a few IN-PACKAGE's for the new package names. qd-fun.lisp: o Comment out the old sin/cos routines o Fix a few mistakes in accurate-sincos-qd o Rename accurate-sincos-qd to sincos-qd.
qd-rep.lisp: o Add macro WITH-QD-PARTS to extract the components of a quad-double. qd.lisp: o Use the macro as needed.
Make %MAKE-QD-D a macro to make sure it's inlined.
Make QD-0, QD-1, QD-2, and QD-3 macros to make sure access is fast for all Lisps.
Add license information (MIT).
Add comments. Use #:qdi instead of "QDI".
Oops. Enable the appropriate code for CMUCL.
Split out the representation of %quad-double to a separate file. Add a portable presentation using a (simple-array double-float (4)) to hold a %quad-double number. All of the tests pass with the portable representation. qd.lisp: o Moved representation to qd-rep.lisp. o INTEGER-DECODE-QD was dependent on the internal representation. Replace with a function using the appropriate accessors. qd.system: o Add new file qd-rep.lisp. qd-rep.lisp: o Representation moved here. o Add portable implementation using a simple-array for holding a %quad-double.
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|