... | ... | @@ -19,15 +19,15 @@ This package has been tested with CMUCL, SBCL, Clisp, and Allegro. All tests pas |
|
|
* The CVS repository has been moved to Git. The CVS repository is still available but will not be updated. Use Git to obtain the latest versions. (See Oct gitweb for more links.)
|
|
|
### 2007-11-28
|
|
|
* Oct now passes all of the tests on Allegro/x86. The main change was not to compile with safety 0. This messes up Allegro's tracking of the precision.
|
|
|
* To help implementations (like Allegro or Clisp) that use arrays for storing %quad-double numbers, many functions now support an optional third arg which is where the result should be written. This is like how bit-and works. This should work correctly with both an array or (complex double-double-float) implementation, but perhaps some care is needed to make sure it works for both.
|
|
|
* CMUCL can use either an array or a (complex double-double-float) to store a %quad-double. However, simple timing measurements indicate that arrays are slightly slower to much slower than using (complex double-double-float).
|
|
|
* To help implementations (like Allegro or Clisp) that use arrays for storing `%quad-double` numbers, many functions now support an optional third arg which is where the result should be written. This is like how bit-and works. This should work correctly with both an array or (complex double-double-float) implementation, but perhaps some care is needed to make sure it works for both.
|
|
|
* CMUCL can use either an `array` or a `(complex double-double-float)` to store a `%quad-double`. However, simple timing measurements indicate that arrays are slightly slower to much slower than using `(complex double-double-float)`.
|
|
|
### 2007-10-26
|
|
|
* A Pade approximation for exp has been added. This is currently not used, but tests show that it is 25% faster than the current method, but it loses about 3 bits of precision. This was contributed by Richard Fateman.
|
|
|
### 2007-10-15
|
|
|
* The OCT package has been renamed. The package is now NET.COMMON-LISP.OCT, with a nickname of OCT.
|
|
|
* QD is no longer a nickname for OCT
|
|
|
* QUAD-DOUBLE-INTERNAL has been renamed to OCT-INTERNAL, with a nickname of OCTI. The old nickname QDI has been removed
|
|
|
* Oct has a more accurate argument reduction for the trig functions. This allows Oct to compute cos(2^120) correctly (which is about -0.925879).
|
|
|
* The `OCT` package has been renamed. The package is now `NET.COMMON-LISP.OCT`, with a nickname of `OCT`.
|
|
|
* `QD` is no longer a nickname for `OCT`
|
|
|
* `QUAD-DOUBLE-INTERNAL` has been renamed to `OCT-INTERNAL`, with a nickname of `OCTI`. The old nickname `QDI` has been removed
|
|
|
* Oct has a more accurate argument reduction for the trig functions. This allows Oct to compute `cos(2^120)` correctly (which is about -0.925879).
|
|
|
### 2007-10-10
|
|
|
* Oct now has print/read consistency, thanks to Richard Fateman, who provided a very nice method to convert bignums to quad-double.
|
|
|
|
... | ... | @@ -71,7 +71,7 @@ Here are a few examples: |
|
|
Note that +pi+ is the QD-REAL value for pi.
|
|
|
|
|
|
## Performance
|
|
|
Here are some simple benchmarks on the performance of this quad-double implementation. These benchmarks were run using CMUCL on a 1.42 GHz PPC. The columns are times relative to a double-float. The %quad-double represents the time using the internal implementaiton, without the overhead of CLOS. The QD-REAL column shows the effect of CLOS dispatch.
|
|
|
Here are some simple benchmarks on the performance of this quad-double implementation. These benchmarks were run using CMUCL on a 1.42 GHz PPC. The columns are times relative to a double-float. The `%quad-double` represents the time using the internal implementaiton, without the overhead of CLOS. The QD-REAL column shows the effect of CLOS dispatch.
|
|
|
|
|
|
|Operation|%quad-double|QD-REAL|Notes|
|
|
|
|---------|------------|-------|-----|
|
... | ... | |