[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Clifford Algebra Requirements
From: |
Martin Baker |
Subject: |
[Axiom-developer] Clifford Algebra Requirements |
Date: |
Sat, 31 Oct 2009 10:59:43 +0000 |
User-agent: |
KMail/1.11.0 (Linux/2.6.27.37-0.1-default; KDE/4.2.2; x86_64; ; ) |
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