axiom-developer
[Top][All Lists]

## [Axiom-developer] Re: Embedding Axiom (Hickey and fold/unfold) Folding a

 From: Martin Baker Subject: [Axiom-developer] Re: Embedding Axiom (Hickey and fold/unfold) Folding and generalization Date: Sat, 21 Nov 2009 22:44:44 +0000 User-agent: KMail/1.11.0 (Linux/2.6.27.37-0.1-default; KDE/4.2.2; x86_64; ; )

```Tim,

Thank you for these replies, I am learning a lot here.

I think it helps to get a wider perspective.

Part of what prompted my question is when I was thinking about how to
implement the exterior product I thought about possible options, for instance
rules:

<e1, e2…en | ei/\ei=0, ei/\ej= -ej/\ei>

or an algorithm:

And(b1::SINT,b2::SINT) ~= 0 => z
c := c1 * c2
bz := Or(b1::SINT,b2::SINT)
for i in 0..n-1 | bit?(b1,i) repeat
k := 0
for j in i+1..n-1 | bit?(b1, j) repeat k := k+1
for j in 0..i-1   | bit?(bz, j) repeat k := k+1
if odd? k then c := -c
z.bz := z.bz + c
z

or a multiplication table:

0      e1^e2
-e1^e2 0

Out of these options, the rules just seems to be operating at a higher level?
In that it would seem relatively easy to translate from the rules to the
algorithm but a lot more difficult to go from the algorithm to the rules
(could Concordia do it?).  Also, unlike the algorithm, there is no need to
introduce the concept of time. I wonder which type would be the best for
making a test for equivalence?

I take your point that the rules are not necessarily better for parallel
processing and they don't scale up very well, I wonder if there would be some
something like that?

Another point is that there are no 'side effects' to this function but we are
trying to add one in by caching the multiplication table!

I don't have any answers but its interesting to speculate,

thanks,

Martin

```