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