On 29/02/2012 19:54, firebird wrote:
I am having performance problems when using SAGE matrices with
Cyclotomic Fields.  Processing in GAP appears almost instant, whereas
the similar computation takes of the order  of a minute in SAGE. Am I
missing something?

Sage:
F.<s>=CyclotomicField(29)
m=[]
n=20
for i in range(n):
   row=[]
   for j in range(n):
     row.append(s**(i*j))
   m.append(row)
mat=matrix(m)
There are shorter ways of creating this matrix.  I did it with
mat=Matrix(20,20,[s^(i*j) for i in range(20) for j in range(20)])
This isn't the only way, do
Matrix?
to see the documentation if you're interested in other possibilities, (useing a function to define the matrix entries might be even shorter).

print mat.det()
I agree this is slow, about 5 minutes on my system. I did a few smaller matrices and the time gets worse very rapidly as you increase the number of rows.


GAP:
n:=20;
m:=List([1..n],i->List([1..n],j->E(29)^(i*j)));
Print(Determinant(m),"\n");
This is incredibly fast. Is it possible that gap is recognising this as a special determinant and just applying a standard formula? I changed a couple of random elements in the matrix to small integers and then the computation took a bit longer. It might be interesting to try a 20x20 matrix with random small entries over your field to see how long it takes.

If its not exploiting the structure of the matrix and is just much quicker than sage then I suppose the question to answer would be if this is caused by Sage taking many more field operations to do the computation or if it is slower at doing the individual field operations.




I am new to Sage and still find negotiating the documentation tricky.
Where, for example, might I find a list of methods corresponding to
class matrix?

Once you've defined your matrix you can type "mat." and then press tab and it will list all the available methods.

I hope this is of some use

Alastair

--
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to