Bertfried,

In addition to the limitations of the current Clifford algebra implementation, 
that you explained, there also seem (to my untrained eye) to be performance 
issues. Also I wanted to get a feel for the general Axiom design methodology 
by picking a specific issue.

The current implementation seems to calculate the product of terms every time 
it is required when a multiplication is called. From a performance point of 
view it would seem much more efficient to calculate a multiplication table in 
the constructor which would make individual multiplications much faster. The 
original author also had this thought as the following comment is in the code:

-- The ei*ej products could instead be precomputed in
-- a (2**n)**2 multiplication table.

The entries in such a table (in the general Grassman case) would be quite 
complicated. Not just a single type but perhaps a sum of types with algebraic 
number multipliers.

I think, if I were designing such a system using a conventional object 
oriented program then, I would create a class for the multiplication table and 
also a class for individual table entries. I don't know if that's how things 
are done in Axiom?

I don't know enough about the mathematics but is seems to me that classes 
(domains) such as mutiplicationTable and multipicationTableEntry might have 
wider application for implementing other algebras?

Here I am really going to show up the gaps in my mathematical education but, 
could these things link back to more fundamental structures, for example could 
there be an inheritance hierarchy like:

ring
field
field which is a compound type
compound type which can be defined by a multiplication table.
clifford (Grassman) algebra

Is there someone who defines the overall structure of Axiom at this level?

What do you think would be the best approach to this?

Martin


_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to