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.
