Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Don't compile with safety 0 on Allegro. I think this causes problems on x86 because it doesn't quite keep the precision right.
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.
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.
Add some comments on how split is supposed to work. Add a note that if you have a fused multiply-subtract instruction, you can replace two-prod with a much simpler and faster version.
In SPLIT, compute the constants at compile time (#.) instead of run-time, in case the Lisp doesn't do it itself.
Some updates from Richard Fateman to make these routines run faster in Allegro.
Add declarations. Mostly to help Allegro generate much better code.
Add license information (MIT).
Add comments. Use #:qdi instead of "QDI".
QD-DD was in the wrong package!
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.
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|