Changeset 6178:508217f008d5


Ignore:
Timestamp:
09/05/07 07:26:14 (6 years ago)
Author:
'Martin Albrecht <malb@…
Branch:
default
Message:

merge

Location:
sage
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • sage/interfaces/magma.py

    r6074 r6178  
    417417        return ans 
    418418 
    419      
    420              
    421419    #def new(self, x): 
    422420    #    if isinstance(x, MagmaElement) and x.parent() == self: 
     
    511509            return N 
    512510 
     511    def ideal(self, L): 
     512        """ 
     513        """ 
     514        P = iter(L).next().parent() 
     515        Pn = P._magma_().name() 
     516        k = P.base_ring()  
     517        if k.degree() > 1: 
     518            i = str(k.gen()) 
     519            o = self("BaseRing(%s).1"%Pn).name() 
     520            self.eval("%s := %s"%(i,o)) 
     521        mlist = self(L) 
     522        return self("ideal<%s|%s>"%(Pn,mlist.name())) 
    513523 
    514524class MagmaFunctionElement(FunctionElement): 
  • sage/rings/polynomial/multi_polynomial_ideal.py

    r5650 r6178  
    156156            import sage.interfaces.magma 
    157157            magma = sage.interfaces.magma.magma 
    158         mlist = magma(self.gens()) 
    159         return magma("ideal<%s|%s>"%(self.ring()._magma_().name(),mlist.name())) 
     158        return magma.ideal(self.gens()) 
    160159 
    161160    def _magma_groebner_basis(self): 
     
    176175        R = self.ring() 
    177176        mgb = self._magma_().GroebnerBasis() 
    178         B = Sequence([R(str(mgb[i+1])) for i in range(len(mgb))], R, 
    179                         check=False, immutable=True) 
     177        mgb = [str(mgb[i+1]) for i in range(len(mgb))] 
     178        if R.base_ring().degree() > 1: 
     179            a = str(R.base_ring().gen()) 
     180            mgb = [e.replace("$.1",a) for e in mgb] 
     181        B = Sequence([R(e) for e in mgb], R, check=False, immutable=True) 
    180182        self.__magma_groebner_basis = B 
    181183        return B 
  • sage/rings/polynomial/multi_polynomial_ring_generic.pyx

    r5871 r6178  
    223223 
    224224    def _magma_init_(self): 
    225         B = self.base_ring()._magma_init_() 
     225        """ 
     226        Return a string representation of self MAGMA can understand. 
     227        """ 
     228        try: # we need that for GF(q) arithmetic 
     229            B = self.base_ring()._magma_().name() 
     230        except (RuntimeError,TypeError): 
     231            B = self.base_ring()._magma_init_() 
    226232        R = 'PolynomialRing(%s, %s, %s)'%(B, self.ngens(),self.term_order().magma_str()) 
    227233        return R 
  • sage/rings/ring.pxd

    r4588 r6178  
    3232    cdef public object __polynomial_ring 
    3333    cdef public object __vector_space 
     34    cdef public object __interface 
    3435 
    3536cdef class Algebra(Ring): 
  • sage/rings/ring.pyx

    r5594 r6178  
    10271027 
    10281028    def _magma_init_(self): 
    1029         return 'GF(%s)'%self.order() 
     1029        """ 
     1030        Return string representation of self that MAGMA can 
     1031        understand. 
     1032        """ 
     1033        if self.degree() == 1: 
     1034            return 'GF(%s)'%self.order() 
     1035        B = self.base_ring() 
     1036        p = self.polynomial() 
     1037        return "ext< %s | %s >"%(B._magma_init_(),p._magma_init_()) 
    10301038     
    10311039    def __cmp__(self, other): 
  • sage/structure/sage_object.pyx

    r5137 r6178  
    230230                X._check_valid() 
    231231                return X 
    232             except AttributeError: 
     232            except (AttributeError, TypeError): 
    233233                try: 
    234234                    self.__interface = {} 
Note: See TracChangeset for help on using the changeset viewer.