projects/oct/oct.git
3 years agoAdd kwexpand and kwunexpand scripts. cvs-ids
Raymond Toy [Fri, 11 Mar 2011 21:53:49 +0000] 
Add kwexpand and kwunexpand scripts.

3 years agoAdd kwexpand and kwunexpand scripts.
Raymond Toy [Fri, 11 Mar 2011 21:53:34 +0000] 
Add kwexpand and kwunexpand scripts.

3 years agoAdd some blank lines to change file.
Raymond Toy [Fri, 11 Mar 2011 19:58:56 +0000] 
Add some blank lines to change file.

3 years agoTest cvs keyword expansion
Raymond Toy [Fri, 11 Mar 2011 19:56:22 +0000] 
Test cvs keyword expansion

.gitattributes:
o Add filter for cvskeywords

qd-rep.lisp:
qd.lisp:
o Add $Id$ to test expansion

3 years agoAdd ident attribute for all Lisp files.
Raymond Toy [Fri, 11 Mar 2011 16:47:27 +0000] 
Add ident attribute for all Lisp files.

3 years agoAdd Id for testing gitattribute ident.
Raymond Toy [Fri, 11 Mar 2011 16:42:04 +0000] 
Add Id for testing gitattribute ident.

3 years agoAdd ident attribute
Raymond Toy [Fri, 11 Mar 2011 04:30:29 +0000] 
Add ident attribute

3 years agoAdd *oct-version*.
Raymond Toy [Fri, 11 Mar 2011 04:29:22 +0000] 
Add *oct-version*.

3 years agoExport Jacobi functions and elliptic integrals.
Raymond Toy [Fri, 11 Mar 2011 04:23:50 +0000] 
Export Jacobi functions and elliptic integrals.

3 years agoTest carlson-rf and carlson-rd.
Raymond Toy [Fri, 11 Mar 2011 04:05:08 +0000] 
Test carlson-rf and carlson-rd.

3 years agoAdd elliptic integrals of the second kind.
Raymond Toy [Fri, 11 Mar 2011 04:04:28 +0000] 
Add elliptic integrals of the second kind.

3 years agoImplement elliptic integrals of the first kind.
Raymond Toy [Fri, 11 Mar 2011 03:23:50 +0000] 
Implement elliptic integrals of the first kind.

o Add FLOAT-CONTAGION to determine the max precision of the given
  arguments so we can do appopriate contagion in the routines.
o Add some docstrings and other documentation of the algorithms.
o Add implmentation of ELLIPTIC-K and ELLIPTIC-F for the complete and
  incomplete elliptic integrals of the first kind, respectively.

3 years agoAdd documentation for EPSILON and add FLOAT-PI.
Raymond Toy [Fri, 11 Mar 2011 03:21:26 +0000] 
Add documentation for EPSILON and add FLOAT-PI.

FLOAT-PI returns a value of pi that matches the precision of the
argument.

3 years agoMove inline function NEG-QD-T before first use.
Raymond Toy [Fri, 11 Mar 2011 03:20:27 +0000] 
Move inline function NEG-QD-T before first use.

3 years agoOops. Remove the #q reader functions from here.
Raymond Toy [Tue, 8 Mar 2011 14:02:42 +0000] 
Oops.  Remove the #q reader functions from here.

They've been moved to qd-reader.lisp.

3 years agoMove #Q reader functions to new file qd-reader.lisp.
Raymond Toy [Tue, 8 Mar 2011 14:01:06 +0000] 
Move #Q reader functions to new file qd-reader.lisp.

qd-reader.lisp:
o New file containing #Q reader functions.
o Create a new readtable containing our reader functions so we don't
  destructively modify the default *readtable*.

oct.asd:
o Add qd-reader.lisp.

qd-complex.lisp:
qd-elliptic.lisp:
qd-format.lisp:
o Set the *readtable* to *oct-readtable* before compiling these
  files.

3 years agoFor clisp, disable floating-point underflow when running tests.
Raymond Toy [Tue, 8 Mar 2011 13:56:13 +0000] 
For clisp, disable floating-point underflow when running tests.

3 years agoAdd elliptic K function and tests for it and Jacobi functions.
Raymond Toy [Tue, 8 Mar 2011 00:36:35 +0000] 
Add elliptic K function and tests for it and Jacobi functions.

qd-elliptic.lisp:
o Add support for the complete elliptic integral K using Carlson's Rf
  function.

rt-tests.lisp:
o Fix indentation for oct.atan.5
o Add tests for elliptic K
o Add tests for Jacobi sn, cn, and dn functions.

3 years agoFix bug in qd-scale-float.
Raymond Toy [Tue, 8 Mar 2011 00:33:34 +0000] 
Fix bug in qd-scale-float.

MAKE-QD-D returns a %quad-double, not qd-real.  Use +QD-REAL-ONE+
instead.

3 years agoOops. Use jacobi-dn, not dn.
Raymond Toy [Mon, 7 Mar 2011 22:55:50 +0000] 
Oops.  Use jacobi-dn, not dn.

3 years agoClean up printing and fix printing bug in non-cmucl.
Raymond Toy [Mon, 7 Mar 2011 20:48:05 +0000] 
Clean up printing and fix printing bug in non-cmucl.

Clisp was printing #q(1 2) as #q(#q#q1 #q#q2).  This is caused by
PRINT-OBJECT for QD-COMPLEX printing a #q in addition to a #q printed
by QD-FORMAT.

qd-class.lisp:
o Use the same PRINT-OBJECT method for qd-real for all Lisps.
o Remove extraneous #q from PRINT-OBJECT method for qd-complex.

qd-io.lisp:
o QD-FORMAT for cmucl needs to output #q.

3 years agoSupport testing with Lisps without signed floating-point zeros.
Raymond Toy [Mon, 7 Mar 2011 19:59:00 +0000] 
Support testing with Lisps without signed floating-point zeros.

CHECK-SIGN just returns T if Lisp thinks -0d0 and 0d0 are the same
number.  This is only true if Lisp doesn't support signed zeroes.

3 years agoFix issue with float-sign calling qfloat-sign.
Raymond Toy [Mon, 7 Mar 2011 19:50:44 +0000] 
Fix issue with float-sign calling qfloat-sign.

If the optional arg to FLOAT-SIGN is not given, don't call qfloat-sign
with a second arg of NIL.  This breaks things.  Call qfloat-sign with
the same number of arguments as float-sign.

3 years agoIgnore *.fas files.
Raymond Toy [Mon, 7 Mar 2011 19:47:00 +0000] 
Ignore *.fas files.

3 years agoDocument algorithms better.
Raymond Toy [Mon, 7 Mar 2011 03:38:09 +0000] 
Document algorithms better.

3 years agoOops. Can't use #q yet,so change #q1 to (make-qd-d 1d0).
Raymond Toy [Mon, 7 Mar 2011 02:47:26 +0000] 
Oops. Can't use #q yet,so change #q1 to (make-qd-d 1d0).

3 years agoAdd support for Jacobi elliptic functions
Raymond Toy [Mon, 7 Mar 2011 02:30:15 +0000] 
Add support for Jacobi elliptic functions

qd-elliptic.lisp:
o Implementation for Jacobi sn, cn, and dn functions.

qd-methods.lisp:
o Add EPSILON method to return the floating-point epsilon value for
  the given float.

oct.asd:
o Build qd-elliptic.lisp.

3 years agoRemove extra blank lines. Fix #1.
Raymond Toy [Mon, 7 Mar 2011 02:27:16 +0000] 
Remove extra blank lines.  Fix #1.

3 years agoNote this defsystem is deprecated. Fix #1.
Raymond Toy [Fri, 4 Mar 2011 21:30:41 +0000] 
Note this defsystem is deprecated.  Fix #1.

3 years agoRemove trailing empty lines. Fix #1.
Raymond Toy [Fri, 4 Mar 2011 21:24:11 +0000] 
Remove trailing empty lines.  Fix #1.

3 years agoAdd newline to end of file. Fix #1.
Raymond Toy [Fri, 4 Mar 2011 21:08:27 +0000] 
Add newline to end of file.  Fix #1.

3 years agoAdd newline to end of file. Fix #1.
Raymond Toy [Fri, 4 Mar 2011 21:03:17 +0000] 
Add newline to end of file.  Fix #1.

3 years agoAdd test-op for oct to run the tests.
Raymond Toy [Sun, 13 Feb 2011 23:41:29 +0000] 
Add test-op for oct to run the tests.

3 years agoThe TARGET parameter is not a %QUAD-DOUBLE if we're not using
Raymond Toy [Sun, 13 Feb 2011 06:33:47 +0000] 
The TARGET parameter is not a %QUAD-DOUBLE if we're not using
arrays to represent a %quad-double.

3 years agoIgnore *~.
Raymond Toy [Sun, 13 Feb 2011 06:11:21 +0000] 
Ignore *~.

3 years agoIgnore *.err files.
Raymond Toy [Sun, 13 Feb 2011 06:10:31 +0000] 
Ignore *.err files.

3 years agoFix typo and add tests for atanh
Raymond Toy [Fri, 11 Feb 2011 02:48:25 +0000] 
Fix typo and add tests for atanh

o Fix typo in number in for test oct.atan-branch-pos.2
o Add tests for atanh branch cuts.

3 years agoIgnore more fasl files
Raymond Toy [Thu, 10 Feb 2011 15:36:47 +0000] 
Ignore more fasl files

3 years agoUpdate Copyright dates. No functional changes.
Raymond Toy [Thu, 10 Feb 2011 00:37:09 +0000] 
Update Copyright dates.  No functional changes.

3 years agoUpdate Copyright dates. No functional changes.
Raymond Toy [Thu, 10 Feb 2011 00:36:54 +0000] 
Update Copyright dates.  No functional changes.

3 years agoUpdate Copyright dates. No functional changes.
Raymond Toy [Thu, 10 Feb 2011 00:30:30 +0000] 
Update Copyright dates.  No functional changes.

3 years agoMove the configuration stuff out of the system definition files and
Raymond Toy [Wed, 9 Feb 2011 19:36:15 +0000] 
Move the configuration stuff out of the system definition files and
place them in qd-package.lisp.

3 years agoAdd additional tests. These are taken from branch-test.lisp.
Raymond Toy [Wed, 9 Feb 2011 19:29:05 +0000] 
Add additional tests.  These are taken from branch-test.lisp.

3 years agoChange MAKE-FLOAT to multiply by the sign AFTER we've created the
Raymond Toy [Wed, 9 Feb 2011 19:28:00 +0000] 
Change MAKE-FLOAT to multiply by the sign AFTER we've created the
quad-double.  This way we create signed quad-double zeroes correctly.
Previously, the sign was applied to the rational which loses the sign
if the rational is 0.

3 years agoIgnore more fasls.
Raymond Toy [Tue, 15 Jun 2010 18:27:37 +0000] 
Ignore more fasls.

3 years agoAdd in-package.
Raymond Toy [Tue, 15 Jun 2010 18:26:39 +0000] 
Add in-package.

3 years agoo Use arrays if we're not running with cmucl.
Raymond Toy [Tue, 15 Jun 2010 17:38:21 +0000] 
o Use arrays if we're not running with cmucl.

5 years agoTurn off compiler macros converting two-arg functions into CL
Raymond Toy [Sun, 5 Oct 2008 15:28:02 +0000] 
Turn off compiler macros converting two-arg functions into CL
functions or QD-REAL functions.  They don't handle all the cases.  If
we're going to make this CMUCL-specific, deftransforms would be much
easier and much better.

5 years agoFor CMUCL, define compiler macros to convert two-arg-foo into the
Raymond Toy [Thu, 31 Jul 2008 19:13:42 +0000] 
For CMUCL, define compiler macros to convert two-arg-foo into the
appropriate CL function or QD-REAL function so we don't have to do
CLOS dispatch, if the types are known at compile-time.

5 years agoAdd or cleanup some docstrings.
Raymond Toy [Fri, 18 Jul 2008 17:01:51 +0000] 
Add or cleanup some docstrings.

5 years agoAdd or cleanup more docstrings.
Raymond Toy [Thu, 17 Jul 2008 17:26:43 +0000] 
Add or cleanup more docstrings.

5 years agoFix minor typo.
Raymond Toy [Thu, 17 Jul 2008 17:26:21 +0000] 
Fix minor typo.

5 years agoAdd or cleanup some docstrings.
Raymond Toy [Wed, 16 Jul 2008 21:02:07 +0000] 
Add or cleanup some docstrings.

6 years agoo For CMU, ignore target only if we're not using oct-arrays.
Raymond Toy [Mon, 11 Feb 2008 17:04:13 +0000] 
o For CMU, ignore target only if we're not using oct-arrays.
o Add implementation for SUB-QD-T.

6 years agoMake default for CMUCL not to use arrays. Some quick tests show that
Raymond Toy [Wed, 28 Nov 2007 21:41:27 +0000] 
Make default for CMUCL not to use arrays.  Some quick tests show that
currently arrays are slower or much slower than complex
double-doubles.

6 years agoAdjust code so that CMUCL can use arrays to store quad-doubles instead
Raymond Toy [Wed, 28 Nov 2007 20:00:28 +0000] 
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.

6 years agoDon't put initializers for the optional arg in the
Raymond Toy [Fri, 23 Nov 2007 03:42:24 +0000] 
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.

6 years agoDon't compile with safety 0 on Allegro. I think this causes problems
Raymond Toy [Fri, 16 Nov 2007 19:44:06 +0000] 
Don't compile with safety 0 on Allegro.  I think this causes problems
on x86 because it doesn't quite keep the precision right.

6 years agoAdd ADD-QD-D-t, MUL-QD-D-T, and SQR-QD-T to declaim block.
Raymond Toy [Sat, 10 Nov 2007 21:29:54 +0000] 
Add ADD-QD-D-t, MUL-QD-D-T, and SQR-QD-T to declaim block.

6 years agoMerge the changes from the THREE-ARG-BRANCH to HEAD.
Raymond Toy [Wed, 7 Nov 2007 21:38:10 +0000] 
Merge the changes from the THREE-ARG-BRANCH to HEAD.

6 years agoAdd Pade approximation for exp. From Richard Fateman.
Raymond Toy [Fri, 26 Oct 2007 15:48:15 +0000] 
Add Pade approximation for exp.  From Richard Fateman.

Experiments show that it is 25% faster than exp-qd/reduce.  However,
it loses 3 bits of accuracy compared with exp-qd/reduce.

6 years agoCompare against pi/4 quad-double, not double-float.
Raymond Toy [Thu, 18 Oct 2007 14:38:56 +0000] 
Compare against pi/4 quad-double, not double-float.

6 years agoMAKE-QD-DD is only defined for CMUCL, so don't unconditionally inline
Raymond Toy [Thu, 18 Oct 2007 14:38:11 +0000] 
MAKE-QD-DD is only defined for CMUCL, so don't unconditionally inline
it.

6 years agoAdd another implementation of REM-PI/2-INT. This extracts just the
Raymond Toy [Wed, 17 Oct 2007 03:44:12 +0000] 
Add another implementation of REM-PI/2-INT.  This extracts just the
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.

6 years agoqd-fun.lisp:
Raymond Toy [Tue, 16 Oct 2007 17:09:46 +0000] 
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.

6 years agoo Add default implementation of float-infinity-p, float-nan-p,
Raymond Toy [Tue, 16 Oct 2007 17:05:13 +0000] 
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.

6 years agoRemove duplicate TIME-MUL.
Raymond Toy [Tue, 16 Oct 2007 14:21:13 +0000] 
Remove duplicate TIME-MUL.

6 years agoOops. QDI package no longer exists. Use OCTI.
Raymond Toy [Tue, 16 Oct 2007 13:46:01 +0000] 
Oops.  QDI package no longer exists.  Use OCTI.

6 years agoOops. %MAKE-QD-D is a macro and not a function for some Lisps, so we
Raymond Toy [Tue, 16 Oct 2007 13:44:00 +0000] 
Oops.  %MAKE-QD-D is a macro and not a function for some Lisps, so we
can't multiple-value-call it.  Rearrange code accordingly.

6 years agoRemove CMUCL'isms.
Raymond Toy [Tue, 16 Oct 2007 13:42:49 +0000] 
Remove CMUCL'isms.

6 years agoqd-package.lisp:
Raymond Toy [Tue, 16 Oct 2007 02:39:21 +0000] 
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*
.

6 years agoo Oops. Fix up a few IN-PACKAGE's for the new package names.
Raymond Toy [Mon, 15 Oct 2007 18:54:02 +0000] 
o Oops.  Fix up a few IN-PACKAGE's for the new package names.

6 years agoo Oops. Fix up a few IN-PACKAGE's for the new package names.
Raymond Toy [Mon, 15 Oct 2007 18:53:43 +0000] 
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.

6 years agoo Rename QUAD-DOUBLE-INTERNAL package to OCT-INTERNAL, with nickname
Raymond Toy [Mon, 15 Oct 2007 18:21:46 +0000] 
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.

6 years agoqd.lisp:
Raymond Toy [Mon, 15 Oct 2007 15:45:33 +0000] 
qd.lisp:
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.

6 years agoo Fix some typos accurate-sin-qd and accurate-cos-qd.
Raymond Toy [Mon, 15 Oct 2007 03:26:38 +0000] 
o Fix some typos accurate-sin-qd and accurate-cos-qd.
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.

6 years agoAdd +2/pi-bits+, 1584 bits of 2/pi.
Raymond Toy [Sun, 14 Oct 2007 18:38:14 +0000] 
Add +2/pi-bits+, 1584 bits of 2/pi.

6 years agoo New routine to compute x mod pi/2 accurately, using many bits of
Raymond Toy [Sat, 13 Oct 2007 20:14:45 +0000] 
o New routine to compute x mod pi/2 accurately, using many bits of
  2/pi.
o Implement accurate sin and cos routines to use this new routine.
  (Not used yet.)

6 years agoRedo implementation of INTEGER-DECODE-QD. It used to return way too
Raymond Toy [Sat, 13 Oct 2007 15:34:51 +0000] 
Redo implementation of INTEGER-DECODE-QD.  It used to return way too
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.

6 years agoUse package #:oct, not #:qd.
Raymond Toy [Sat, 13 Oct 2007 02:14:43 +0000] 
Use package #:oct, not #:qd.

6 years agoCorrect the timing info. I accidentally ran the C++ version on a
Raymond Toy [Thu, 11 Oct 2007 18:59:05 +0000] 
Correct the timing info.  I accidentally ran the C++ version on a
different (slower) machine.  The results make some sense now.

6 years agoqd-const.lisp:
Raymond Toy [Thu, 11 Oct 2007 17:47:08 +0000] 
qd-const.lisp:
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.

6 years agoInitial version.
Raymond Toy [Thu, 11 Oct 2007 16:29:08 +0000] 
Initial version.

6 years agoIgnore *.lib and *.fas too. (Files from clisp)
Raymond Toy [Wed, 10 Oct 2007 15:25:41 +0000] 
Ignore *.lib and *.fas too.  (Files from clisp)

6 years agoqd-io.lisp:
Raymond Toy [Wed, 10 Oct 2007 15:24:07 +0000] 
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

6 years agoo Move logb-finite before first use.
Raymond Toy [Wed, 10 Oct 2007 15:21:47 +0000] 
o Move logb-finite before first use.
o Declare arg as double-float, not float.

6 years agoA new version of MAKE-FLOAT that converts the number to rational
Raymond Toy [Mon, 24 Sep 2007 21:32:15 +0000] 
A new version of MAKE-FLOAT that converts the number to rational
before converting to a quad-double.  This reduces round-off errors.
This still needs work, I think.

6 years agoMinor optimization converting a rational to a qd-real. If the
Raymond Toy [Mon, 24 Sep 2007 21:30:07 +0000] 
Minor optimization converting a rational to a qd-real.  If the
denominator is 1, skip the qd-real division.

6 years agoUse more bits (265 instead of 212) when converting a rational to a
Raymond Toy [Mon, 24 Sep 2007 02:37:31 +0000] 
Use more bits (265 instead of 212) when converting a rational to a
quad-double.  This fixes the issue that converting 10^100 to a
quad-double isn't as accurate as it could be.

6 years agoAdd RATIONALIZE methods. Algorithm graciously provided by Bruno
Raymond Toy [Thu, 20 Sep 2007 21:04:05 +0000] 
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..

6 years agoMAKE-QD should handle rationals better instead of converting them to
Raymond Toy [Wed, 19 Sep 2007 17:30:04 +0000] 
MAKE-QD should handle rationals better instead of converting them to
doubles and then converting the qd-real.  Convert the numerator and
denominator to qd-real, and the divide.  (This should be done better.)

qd-class.lisp:
o Change method to work on floats, instead of reals.

qd-methods.lisp:
o Add method to handle rationals.

6 years agoAdd method RATIONAL to convert a quad-double to a rational.
Raymond Toy [Tue, 18 Sep 2007 12:46:36 +0000] 
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.

6 years agoqd-rep.lisp:
Raymond Toy [Tue, 18 Sep 2007 11:20:16 +0000] 
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.

6 years agoqd-test.lisp:
Raymond Toy [Tue, 18 Sep 2007 03:05:56 +0000] 
qd-test.lisp:
o Add optional arg to enable/disable printing of results.  Default is
  on.

rt-tests.lisp:
o Don't print results.

6 years agoNew SCALE-FLOAT-QD implementation that shouldn't suffer from premature
Raymond Toy [Mon, 17 Sep 2007 19:04:23 +0000] 
New SCALE-FLOAT-QD implementation that shouldn't suffer from premature
overflow/underflow.  (Still issue if the exponent is very large or
very small, though, but not if the exponent is < 2000 or so.)

6 years agoo Convert THREE-SUM2 to a macro instead of a function (to speed things
Raymond Toy [Mon, 17 Sep 2007 17:15:04 +0000] 
o Convert THREE-SUM2 to a macro instead of a function (to speed things
  up for Allegro and other Lisps that don't inline).
o Update code for the THREE-SUM2 macro.

6 years agoo Fix typo in ADD-QD-DD that was introduced in the THREE-SUM macro
Raymond Toy [Mon, 17 Sep 2007 14:06:20 +0000] 
o Fix typo in ADD-QD-DD that was introduced in the THREE-SUM macro
  conversion.
o Slightly simplify ADD-QD-DD too.

6 years agoo Replace THREE-SUM with a macro to make sure it's inlined
Raymond Toy [Mon, 17 Sep 2007 03:08:25 +0000] 
o Replace THREE-SUM with a macro to make sure it's inlined
  everywhere.
o Update code for new THREE-SUM macro.

6 years agoMake %MAKE-QD-D a macro to make sure it's inlined.
Raymond Toy [Mon, 17 Sep 2007 03:07:27 +0000] 
Make %MAKE-QD-D a macro to make sure it's inlined.

6 years agoo Remove old code.
Raymond Toy [Sun, 16 Sep 2007 14:23:24 +0000] 
o Remove old code.
o Inline float-infinity-p.