axiom-mail
[Top][All Lists]
Advanced

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

Re: [Axiom-mail] Samples


From: root
Subject: Re: [Axiom-mail] Samples
Date: Thu, 5 Dec 2002 20:09:57 -0500

>       I have now had a close look at Aldor/Algebra (which was by the way
> not so easy to get even working on my SuSE system). However, messed up
> with my Maple experience, I have variouse problems in understanding the
> philosophy behind the type systems and the organization of the
> proceedures.

Axiom has a steep learning curve. It is worth the climb but you only
see that in hindsight. There is a project underway to explore the
use of a novel "zero-learning curve" interface.

> a) From a very modern point of category theory one has to go for a
> function based setting. Stes are just special cases of objects in a
> category. However, Aldor (Axiom?) is an imperative language, not a
> functional one. Is there a chance to restrict the occurence of _objects_
> to instances (at least in own programs)?

I don't know.

> b) Are there Axiom programs available which one can analyse to learn how
> to use the system? (Axiom programs dealing with mathematics, e.g. a
> Groebner package, or something else) I do usually lern by stealing :) The
> Aldor programs in the help/reference documentation are quite trivial...
> but were instructive to see its doing what it should.

All of the algebra source code comes with the system. You can read the
algebra code directly. Catdef.spad defines all of the categories and
is somewhat readable for the first few if you know what a Semigroup and
Monoid are.

In a standard NAG installation all of the algebra source code sits in
/usr/local/axiom/src/algebra. You could look at the dhmatrix.spad file
which defines Denavitt-Hartenburg matrices. These are 4x4 matrices for
translations and rotations. 

Also in a standard NAG installation all of the test code sits in
/usr/local/axiom/src/input. These are test cases for the algebra
code. Look at src/input/bouquet.spad. This defines some really
simple user level functions.

> c) Could someone provide a list of reference application and put it on the
> AXIOM web-site, this would be of tremendous help (for me :)

Reference applications? Aldor is the most likely candidate for reference
applications. Axiom isn't designed to embed in other applications.
Manuel Bronstein <www-sop.inria.fr/cafe/Manuel.Bronstein/libaldor> and
Niklaus Mannhart <www.int.ethz.ch/personal/mannhart>  have done some very
nice work with Aldor. Alternatively you can check out Aldor's home page
(www.aldor.org), in particular the projects link.

> d) Is the algebra layer of AXIOM code already available? If so it is
> readable by someone not pretty familiar with Aldor/Axiom language?
> [By the way if I have to wait for the pamphlet files, this might take very
> long, and Perhaps I could try to document some code during my trail to try
> to nderstand it anyway?]

I've written an Aldor tutorial (www.aldor.org/docs/HTML/chap21.html) 
which will show you how to develop a simple polynomial data type in Aldor.
It is, I hope, a readable introduction.

> e) Is and Aldor program runable in Axiom (later)? In other words, if
> I start to do something bigger in Aldor, can it be reused in Axiom
> later (and vice versa)?

Yes and no. The key difference (there are others) you will discover
is that the input/output syntax differs. Axiom uses a type called
OutputForm whereas Aldor uses C++ like syntax. One could, I suppose,
recreate OutputForm in Aldor. Check with Stephen Watt <address@hidden>
to see if such a thing exists already. If you are careful about the
isolation then writing portable programs is possible.

While the syntax and semantics of Aldor and Spad (Axiom's compiler
language) are very close they differ whenever platform issues arise.
It makes no sense to try to do standalone programs in Axiom. On the
other hand, Axiom has a huge library that Aldor lacks. If you are
trying to do research-level algorithms I'd certainly choose Axiom.
If you want to do stand-alone algorithms but want stronger typing
than you will find in Java, for instance, use Aldor.

> 
> Any poiners to projects, programs, documentation is welcome.

See above.

Tim




reply via email to

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