Ops, i sent a wrong version. Here is the last one, with added suport
for rings over transcendental extensions:


def coerce_ring_from_singular(r):
    cha=str(r.charstr())
    vars=str(r.varstr()).rsplit(',')
    ch=cha.partition(',')[0]
    if ch=='real':
        fiel=RR
    elif ch=='0':
        fiel=QQ
    elif ch=='complex':
        fiel=ComplexField()
    else:
        fiel=GF(sage_eval(ch))
    if ',' in cha and ch!='complex' and ch!='real':
        generator=cha.partition(',')[2]
        fielx=PolynomialRing(fiel,generator)
        minpoly=r.ringlist()[1][4][1]
        minpoly=minpoly.sage_polystring()
        minpoly=sage_eval(minpoly,locals=fielx.gens_dict())
        if minpoly==0:
            fiel=fielx.fraction_field()
        else:
            if ch=='0':
                fiel=NumberField(minpoly,generator)
            else:
 
fiel=GF(sage_eval(ch)^minpoly.degree(),generator,modulus=minpoly)
    R=PolynomialRing(fiel,vars)
    return R
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to