- Timestamp:
- Mar 8, 2006, 12:08:34 PM (18 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 20284a2694d99a2af28ffd526fdda9fcbb02c2ee
- Parents:
- 84b997a5443864cb92c365fa58b9f86932037a19
- Location:
- modules/openmath
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/openmath/cas/singular.py
r84b997a rde9824 114 114 implementation.groebner=groebnerfunc 115 115 116 def dmplQ(a): 117 if isinstance(a,OMA) and a.func==DMPLsym: 118 return True 119 else: 120 return False 121 122 123 def 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 146 def 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 116 165 def min_ass_func(dmpl): 117 166 r=OM2ring(dmpl.args[0]) … … 119 168 i=OM2ideal_raw(dmpl) 120 169 l=singular.minAssGTZ(i) 170 return cd.list1.OM2list([ideal2OM(i) for i in l]) 171 @input_convert 172 def min_ass_func2(i): 173 174 l=singular.minAssGTZ(i) 121 175 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 180 cd.primdec.implementation.minAss=input_convert(output_convert(singular.minAssGTZ)) 181 182 cd.primdec.implementation.minAssGTZ=input_convert(output_convert(singular.minAssGTZ)) 183 184 cd.primdec.implementation.primdecGTZ=input_convert(output_convert(singular.primdecGTZ)) 185 186 123 187 optimize(poly2OM) 124 188 optimize(term2OM) -
modules/openmath/singulartest.sing
r84b997a rde9824 4 4 LIB "primdec.lib"; 5 5 //LIB "poly.lib"; 6 6 ideal p1=x2,y; 7 ideal p2=(x-1),(y-5)^2; 8 ideal p3=(x)^2; 9 ideal big=intersect(intersect(p1,p2),p3); 7 10 ideal i2=cyclic(5); 8 11 … … 34 37 r=singular.r 35 38 inter=singular_globals_proxy() 39 40 41 36 42 easy=ideal2OM(singular.i) 37 43 call=OMA(cd.primdec.implementation.minAss, [easy]) 38 44 print call 39 45 print context.evaluate(call) 40 41 46 r.set() 42 47 48 49 easy=ideal2OM(singular.i) 50 call=OMA(cd.primdec.implementation.primdecGTZ, [easy]) 51 print call 52 print context.evaluate(call) 53 r.set() 54 55 56 easy=ideal2OM(singular.i) 57 call=OMA(cd.primdec.implementation.minAssGTZ, [ideal2OM(singular.big)]) 58 print call 59 print context.evaluate(call) 60 r.set() 61 62 easy=ideal2OM(singular.i) 63 call=OMA(cd.primdec.implementation.primdecGTZ, [ideal2OM(singular.big)]) 64 print call 65 print context.evaluate(call) 66 r.set() 43 67 cyc5=ideal2OM(singular.i2) 44 68 ord=ordering2OM(singular.r)
Note: See TracChangeset
for help on using the changeset viewer.