[Top][All Lists]

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

[Axiom-developer] [#119 solve returns wrong answers and multiple answers

From: wyscc
Subject: [Axiom-developer] [#119 solve returns wrong answers and multiple answers to same trig problem]
Date: Thu, 10 Mar 2005 23:43:22 -0600


<pre>From: wyscc, Fri, 11 Mar 2005 00:37:00</pre>

>Perhaps a function 'groundIfCan' would be nice :)

The origin implementation of <code>ground</code> in <code>Expression</code> is 
from <code>FunctionSpace</code> (according to Hyperdoc) and may give an error 
if the argument is not from the ground domain. There is a function 
<code>ground?</code> which does the test. A more common (and indeed more 
general) function is <code>retractIfCan</code>, which would give "failed" if 
the retraction cannot be done. There are 8 modemaps for 
<code>retractIfCan</code> in <code>Expression Float</code> and you can retract 
to <code>Algebraic Number, Float, Fraction Integer, Fraction Polynomial Float, 
Integer, Kernel Expression Float, Polynomial Float</code> and 
<code>Symbol</code>.  As far as MathAction goes, I would prefer "failed" rather 
than an error, because an error stops the running of the rest of Axiom script 

>Cannot compute the numerical value of a non-constant expression

>But the Complex Float domain is doing something extra.

The issues here are two: The first two errors are modemap problems. The last 
one is an anticipated error message from algebra code. I suspect that the 
Interpreter did not try to find <code>numeric</code> in the first instance (it 
should), did not find any modemap from <code>POLY FLOAT -> COMPLEX INT</code> 
(there are none, which makes sense), but found <code>complexNumeric</code> in 
the last. In the first one, <code>numeric.o</code> is not loaded because the 
Interpreter somehow is not instructed to look for <code>numeric</code>. Even 
after <code>numeric.o</code> is loaded, the situation is the same: the 
Interpreter stops after locating <code>log: EXPR FLOAT ->EXPR FLOAT</code>. In 
the last case, the Interpreter loads <code> numeric.o</code> if it is not 
there. So it would seem that it is a dependency problem during compiling (which 
presumably provides the database to the Interpreter).


So this treatment agrees with:


which has the same output as <code>log(10.0*q)::Complex Float</code>

By the way, I think this discussion (the second half, involving conversion to 
<code>Float</code>) should be separated into a new page. Perhaps under a title 
like "Numerical Type Conversion".

I still have no clue why after a <code>)clear all</code>, the second 
<code>solve</code> behave the way it did. I have verified that it occurs fairly 
consistently, even in the NAG version. (It occurred even if I had never run the 
first <code>eq1, solve, solve</code> before the <code>)clear all</code> if I 
was working in some session already. But it occurred consistently if I started 
with a new Axiom window and followed the script.)

forwarded from

reply via email to

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