Actually I still really encourage you to keep working on this one. Now my main program with large expressions gets killed 5 or so minuets in for eating up all the ram. I'll have a look at this symm function and see if I can devise a better algorithm than bruit force for you guys. so it takes a part of an expression and applies every single possible permutation and adds the expressions or subtracting in some cases if asymmetric is called up then divides by the number of terms. Thus enforcing that the new expression with have the desired symmetry by virtue of its form yet be equivalent to the old expression if its assumed to have that symmetry. Presumably you nest these symm calls inside each other some how and construct even more complex sums to ensure compliance with more complex symmetry. But what do you do with it next? add all the bits up and try to cancel things out treating the indexes as static labels? That would be a sure fire way to get a result. But is that all it's used for? If so there'd have been no need for it to be called for the test program where there was no symmetry to consider. Or is it also used to account for pseudo symmetry that may exist due to the equivalence of dummy indexes? So if dummy indexes in a term have the same dimension you treat them as a symmetric permutation and sum over all of them too? There has to be a better way! regards peter clark Quoting PG CLARK <P.G.Clark@Bradford.ac.uk>:
I can confirm that I was able to successfully compile and run my test code with this patch applied. took about 10 seconds to execute.
Thanks for the help guys
peter
---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.