Changeset de9824 in git for modules


Ignore:
Timestamp:
Mar 8, 2006, 12:08:34 PM (18 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
20284a2694d99a2af28ffd526fdda9fcbb02c2ee
Parents:
84b997a5443864cb92c365fa58b9f86932037a19
Message:
*bricken: wuah, new functions much easier


git-svn-id: file:///usr/local/Singular/svn/trunk@9001 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
modules/openmath
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • modules/openmath/cas/singular.py

    r84b997a rde9824  
    114114implementation.groebner=groebnerfunc
    115115
     116def dmplQ(a):
     117    if isinstance(a,OMA) and a.func==DMPLsym:
     118        return True
     119    else:
     120        return False
     121
     122
     123def input_convert(f):
     124    def my2OM(a):
     125        """FIXME: very dirty"""
     126        global save_ring
     127
     128
     129        if (dmplQ(a)):
     130            dmpl=a
     131            r=OM2ring(dmpl.args[0])
     132            r.set()
     133            i=OM2ideal_raw(dmpl)
     134            safe_ring=r
     135            return i
     136       
     137        return a
     138           
     139    def wrapper(*args):
     140        return f(*[my2OM(a) for a in args])
     141   
     142   
     143    wrapper.__name__=f.__name__
     144    return wrapper
     145   
     146def output_convert(f):
     147    def my2om(a):
     148        """FIXME: very dirty"""
     149        global save_ring
     150
     151        if isinstance(a,ideal):
     152            return ideal2OM(a)
     153        if (isinstance(a,list)):
     154            return cd.list1.list2OM([my2om(a2) for a2 in a])
     155       
     156        return a
     157           
     158    def wrapper(*args):
     159        return my2om(f(*args))
     160   
     161   
     162    wrapper.__name__=f.__name__
     163    return wrapper
     164   
    116165def min_ass_func(dmpl):
    117166    r=OM2ring(dmpl.args[0])
     
    119168    i=OM2ideal_raw(dmpl)
    120169    l=singular.minAssGTZ(i)
     170    return cd.list1.OM2list([ideal2OM(i) for i in l])
     171@input_convert
     172def min_ass_func2(i):
     173
     174    l=singular.minAssGTZ(i)
    121175    return cd.list1.list2OM([ideal2OM(i) for i in l])
    122 cd.primdec.implementation.minAss=min_ass_func
     176   
     177
     178
     179#cd.primdec.implementation.minAss=min_ass_func2
     180cd.primdec.implementation.minAss=input_convert(output_convert(singular.minAssGTZ))
     181
     182cd.primdec.implementation.minAssGTZ=input_convert(output_convert(singular.minAssGTZ))
     183
     184cd.primdec.implementation.primdecGTZ=input_convert(output_convert(singular.primdecGTZ))
     185
     186
    123187optimize(poly2OM)
    124188optimize(term2OM)
  • modules/openmath/singulartest.sing

    r84b997a rde9824  
    44LIB "primdec.lib";
    55//LIB "poly.lib";
    6 
     6ideal p1=x2,y;
     7ideal p2=(x-1),(y-5)^2;
     8ideal p3=(x)^2;
     9ideal big=intersect(intersect(p1,p2),p3);
    710ideal i2=cyclic(5);
    811
     
    3437r=singular.r
    3538inter=singular_globals_proxy()
     39
     40
     41
    3642easy=ideal2OM(singular.i)
    3743call=OMA(cd.primdec.implementation.minAss, [easy])
    3844print call
    3945print context.evaluate(call)
    40 
    4146r.set()
    4247
     48
     49easy=ideal2OM(singular.i)
     50call=OMA(cd.primdec.implementation.primdecGTZ, [easy])
     51print call
     52print context.evaluate(call)
     53r.set()
     54
     55
     56easy=ideal2OM(singular.i)
     57call=OMA(cd.primdec.implementation.minAssGTZ, [ideal2OM(singular.big)])
     58print call
     59print context.evaluate(call)
     60r.set()
     61
     62easy=ideal2OM(singular.i)
     63call=OMA(cd.primdec.implementation.primdecGTZ, [ideal2OM(singular.big)])
     64print call
     65print context.evaluate(call)
     66r.set()
    4367cyc5=ideal2OM(singular.i2)
    4468ord=ordering2OM(singular.r)
Note: See TracChangeset for help on using the changeset viewer.