gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] gcl-2.6.11 and maxima-5.33.0 on windows (was Re: 2.6.11)


From: David Billinghurst
Subject: Re: [Gcl-devel] gcl-2.6.11 and maxima-5.33.0 on windows (was Re: 2.6.11)
Date: Mon, 01 Sep 2014 15:50:43 +1000
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

On 1/09/2014 3:18 PM, David Billinghurst wrote:
On 1/09/2014 1:37 PM, David Billinghurst wrote:
On 1/09/2014 1:03 PM, David Billinghurst wrote:

I have problems with maxima-5.33.0 and Version_2_6_11pre on msys/windows.  Simple test case below.

There are issues with maxima-5.34.0 - released a few days ago - and Lisp implementations which compute floating point infinity by default (GCL, ECL).  See http://sourceforge.net/p/maxima/mailman/message/32778820/ for irrelevant details.  To avoid these I have focused on maxima-5.33.0, which works nicely with gcl-2.6.10.

I am comparing two freshly built gcls, using current mingw/msys 32-bit system under Windows XP SP3.
  1. gcl-2.6.10 built from tarball, with configure patched to use system gmp
  2. gcl git Version_2_6_11pre of around 12 hours ago

Both gcls are built using "./configure --enable-ansi  --enable-dynsysgmp"

Then build maxima-5.33.0 from tarball, using the two uninstalled gcl
./configure --enable-gcl --with-gcl=<path to>/gcl-xxx/unixport/saved_ansi_gcl.exe
make
make check

Using gcl-2.6.10, all tests pass.  Using Version_2_6_11pre I get a testsuite failure and then a "hang" in rtest11.mac.

I have started digging.  The first reduced testcase is the maxima command "is(%pi>1);"

Using maxima/gcl-2.6.10 the answer is "true"
With maxima/Version_2_6_11pre the answer is "unknown"

I need to put this aside for now, but may get back to it later today.


A further reduced maxima test case is "?sign1(%e);", or at the lisp level (sign1 '$%e)

Using maxima/gcl-2.6.10 the answer is "pos"
With maxima/Version_2_6_11pre the answer is "pnz"

Digging further, the lisp variables in maxima that contains the floating point value for e and pi are symbols when compiled with Version_2_6_11pre

When compiled with gcl-2.6.10

to_lisp();
MAXIMA> %e-val
2.718281828459045
MAXIMA> (type-of %e-val)
LONG-FLOAT

When compiled with Version_2_6_11pre

to_lisp();
%e-val
|2.718281828459..(pruning extra digits).... |
MAXIMA> (type-of %e-val)
SYMBOL

and similarly for %pi-val

Sorry for spamming the list, but I have made more progress.  Maxima  stores the numerical value of float constants %e. %pi, %phi and %gamma on the property list of these symbols.

They are defined in the maxima file mlisp.lisp to 2048 bits of precision.  I have trimmed the digits for readability

(mdefprop $%e     2.7182818284..<pruning extra digits>...      $numer)

The two versions of gcl treat long decimal numbers differently.  Here is a self contained lisp test case

(setq e  2.7182818...<pruning extra digits>.... )

with gcl-2.6.10
2.718281828459045

with Version_2_6_11pre

Cell error on |2.718281828459045..(pruning extra digits)....|
Unbound variable.The variable |2.71828182845904..(pruning extra digits)....| is unbound



reply via email to

[Prev in Thread] Current Thread [Next in Thread]