#8909: Coercion from Gap to cyclotomic fields; usage of GAP to improve 
computation
of invariant rings
---------------------------+------------------------------------------------
   Reporter:  SimonKing    |       Owner:  was                                  
  
       Type:  enhancement  |      Status:  new                                  
  
   Priority:  major        |   Milestone:  sage-4.4.2                           
  
  Component:  interfaces   |    Keywords:  gap, cyclotomic fields, invariant 
rings
     Author:  Simon King   |    Upstream:  N/A                                  
  
   Reviewer:               |      Merged:                                       
  
Work_issues:               |  
---------------------------+------------------------------------------------
 When coercing from GAP to a cyclotomic field, it was assumed that the
 generator of a cyclotomic field is ''always'' called ``E(n)``. But this is
 not necessarily the case, in particular when the object in GAP was created
 from Sage.

 Moreover, GAP prints an additional exclamation mark in front of numbers if
 they are part of a matrix defined over a cyclotomic field.

 For these two reasons, the following example used to fail, but now works
 with the patch:
 {{{
             sage: F=CyclotomicField(8)
             sage: z=F.gen()
             sage: a=gap(z+1/z); a
             -zeta8^3+zeta8
             sage: F(a)
             -zeta8^3 + zeta8
             sage: b=gap(Matrix(F,[[z^2,1],[0,a+1]])); b
             [ [ zeta8^2, !1 ], [ !0, -zeta8^3+zeta8+1 ] ]
             sage: b[1,2]
             !1
             sage: F(b[1,2])
             1
             sage: Matrix(b,F)
             [             zeta8^2                    1]
             [                   0 -zeta8^3 + zeta8 + 1]
 }}}

 The idea was
  * to remove the exclamation mark when it is attempted to coerce into the
 rationals
  * to test whether the generator name in GAP happens to coincide with the
 generator name in Sage (here: ``zeta8``).

 The motivation for working on it is my attempt to improve the computation
 of non-modular invariant rings of finite groups: There is a doc test using
 a finite matrix group over a cyclotomic field.

 One massive bottle neck for the computation of invariant rings with
 Singular is the computation of the Reynolds operator. It requires to
 enumerate the group elements, and Singular is not good at this task.

 The patch uses GAP to enumerate the group elements and uses this to
 construct the Reynolds operator in Singular. For complicated groups, this
 should save a massive amount of resources.

 With the patch, the enumeration of group elements in Singular has the
 status of a backup: If the transformation of the matrix group into GAP
 fails or if the transformation of the resulting GAP matrices back into
 Sage fails, then the old algorithm is used.

 I think this ticket is about "interfaces". I hope this labelling is
 correct.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8909>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
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-trac?hl=en.

Reply via email to