Alasdair wrote:
> 
> I've been invited to give a little talk to some people about FOSS 
> mathematical tools (mainly computer algebra systems like Axiom, Maxima, 
> Sage), and numerical systems like Scilab, GNU Octave.  Of all the CAS's out 
> there, Axiom is the only one (to my knowledge) which is still alive, so to 
> speak, and which embodies strong typing.  Most CAS's, like Maple and 
> Mathematica, I've seen described as "term rewriting" engines; and types 
> don't enter into them.  What I'm looking for is an example of a fairly 
> elementary problem (one that most mathematicians and university mathematics 
> teachers could relate to) in which Axiom's type system provides the means 
> for a simple and elegant solution, and which for less strongly typed 
> systems would be difficult.

Long ago I needed to compute a resultant.  I had two polynomials
with rational coefficients, something like a^(-2)*x^2 + b.
I tried to use Maxima and Maxima kept treating my polynomials
as rational functions which lead to nonsense result.  
In Axiom/FriCAS I can use types to say exactly what I want.
That said I do not think types make essential differences
for naive users.  Namely, users need adequate control on
performed computations.  Sometimes this may be done via
explicit types.  But similar effects can be obtained
via hidden types.  And even in completely untyped system
one can have options which force treatement of arguments
in specific way.

For me types give systematic understanding of the system.
In Axiom/FriCAS when you type 'a + b' system looks at
types of 'a' and 'b' and chooses '+' apriopriate for
given types.  Intepreter may coerce arguments to get
matching types, but once types are known there is
little extra choice.  In other systems some arguments
may get same special treatment.  In some sense other
systems are much more flexible.  But for the same
reason are harder to understand.

Personally I think that types became useful once users
write their own programs.  AFAICS users releatively
quickly realize that they can do a lot by writing
small programs.  And here types help avoiding errors.

The subject was "An example where Axiom/FriCAS excels?".
I think that one should not put too much emphasis on
types.  More precisely, types are part of system design
and IMO main advantages are indirect.  One property
of Axiom/FriCAS is that basically all mathematical
capabilities are coded in Spad which in turn is
essentially the same as language user use for everyday
interaction with the system.  This is possible because
Spad gives reasonable speed and getting speed without
types would be quite hard.

I would rather stress thing that FriCAS does very well.
For example in 'sci.math.symbolic' was a disscussion
of "hard" integrals proposed by Charlwood.  AFAIK
FriCAS is the only free system which can do all
of first ten (considered the hardest).  Note: when
the examples appeared FriCAS could do 8 of 10 and
two examples exposed bugs which are fixed now.
Also, FriCAS is quite good at integrating in terms
of special functions, see for example:

http://axiom-wiki.newsynthesis.org/FriCASSpecialIntegration

On more basic level, FriCAS can frequently compute GCD,
factor polynomials or solve systems of equations that
other systems are unable to do or need excessive time.


-- 
                              Waldek Hebisch
[email protected] 

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to