Building maxima with 'flonum as 'long-float or 'double-double.
Subject: Building maxima with 'flonum as 'long-float or 'double-double.
From: Douglas Crosher
Date: Fri, 11 Nov 2011 01:09:37 +1100
Some further changes have been pushed for the support of building maxima with 'flonum as 'long-float or 'double-double.
The translated Fortran code also needs to be modified. In the past, modified translated lisp files with the 'double-float type
replaced by 'long-float were distributed separately, but these changes are incompatible with the main maxima code which requires
support for the 'double-float type.
A new approach has the potential to suit the standard build using a 'flonum type of 'double-float and also 'long-float and the CMUCL
'double-double types. The Fortran doubles can be translated to the CL maxima 'flonum type and Fortran double constants translated
to CL floats with an 'E' exponent tag so that they are read in the default float format which will be the 'flonum type. Further the
Fortran doubles can be emitted in there full precision rather then being rounded off to lower precision during translation. The
f2cl translator has been modified to support this, so it is a simple matter to rebuild the translated lisp files.
Patches to the main lisp files translated from Fortran are temporarily available at the link below in case anyone is interested:
http://www.scieneer.com/files/maxima-lf-patch2.txt.gz
Patches to f2cl are available below. Note this could use some cleaning up, and there are other approaches that would give the same
result:
http://www.scieneer.com/files/f2cl-patch2.txt.gz
Regards
Douglas Crosher