- Nov 07, 2007
-
-
Raymond Toy authored
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.
-
Raymond Toy authored
sub-d-qd, and neg-qd. o Correct the compiler macros for CMUCL for sub-qd and sqr-qd.
-
- Nov 05, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
-
- Nov 04, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
o Add compiler macro for SQR-QD.
-
Raymond Toy authored
-
Raymond Toy authored
o Declare add-qd-t, mul-qd-t and div-qd-t as inline functions so that everything is still fast on cmucl.
-
- Nov 02, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
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.
-
- Oct 26, 2007
-
-
Raymond Toy authored
Experiments show that it is 25% faster than exp-qd/reduce. However, it loses 3 bits of accuracy compared with exp-qd/reduce.
-
- Oct 18, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
it.
-
- Oct 17, 2007
-
-
Raymond Toy authored
part of 2/pi that is needed to compute the desired result instead of multiplying by all l584 bits of 2/pi. Not yet used.
-
- Oct 16, 2007
-
-
Raymond Toy authored
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.
-
Raymond Toy authored
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.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
can't multiple-value-call it. Rearrange code accordingly.
-
Raymond Toy authored
-
Raymond Toy authored
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* .
-
- Oct 15, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
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.
-
Raymond Toy authored
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.
-
Raymond Toy authored
o Oops. In INTEGER-DECODE-QD, the signs of the parts were not computed correctly when combining them into the final integer result. rt-tests.lisp: o Add a test for INTEGER-DECODE-QD. o Use OCT as the package, not QD.
-
Raymond Toy authored
o Adjust code in accurate-sin-qd and accurate-cos-qd to handle values of 0 <= j <= 3, instead of -1 <= j <= 2. o Add accurate-sincos-qd.
-
- Oct 14, 2007
-
-
Raymond Toy authored
-
- Oct 13, 2007
-
-
Raymond Toy authored
2/pi. o Implement accurate sin and cos routines to use this new routine. (Not used yet.)
-
Raymond Toy authored
many digits if one of the components was 0. This causes problems because the resulting integer can't even be coerced back to a quad-double.
-
Raymond Toy authored
-
- Oct 11, 2007
-
-
Raymond Toy authored
different (slower) machine. The results make some sense now.
-
Raymond Toy authored
o Add code for clisp to create the constants we need. (Clisp has arbitrary length long-float numbers.) o Update the constants accordingly. o Move the atan table stuff for CORDIC to qd-extra.lisp, since we don't need them in oct itself. qd-extra.lisp: o atan table stuff for CORDIC moved here.
-
Raymond Toy authored
-
- Oct 10, 2007
-
-
Raymond Toy authored
-
Raymond Toy authored
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
-
Raymond Toy authored
o Declare arg as double-float, not float.
-
- Sep 24, 2007
-
-
Raymond Toy authored
before converting to a quad-double. This reduces round-off errors. This still needs work, I think.
-
Raymond Toy authored
denominator is 1, skip the qd-real division.
-
Raymond Toy authored
quad-double. This fixes the issue that converting 10^100 to a quad-double isn't as accurate as it could be.
-
- Sep 20, 2007
-
-
Raymond Toy authored
Haible. qd-package.lisp: o Shadow RATIONALIZE qd-methods.lisp: o Add RATIONALIZE methods for CL:REAL's and QD-REAL's..
-