Alastair

Thanks for the rapid reply.

Your Sage code is far superior to mine.  Very interesting and
instructive!  Looks as though GAP->Sage recipe conversion may be
easier than I thought.

Original is just an example... GAP array is nothing special.
All Sage Cyclotomics is very slow in comparison to GAP:-(

Finally, mat.<tab> looks very useful.

Graham

On Feb 29, 10:35 pm, Alastair Irving <[email protected]>
wrote:
> 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to