Changeset d8e1214 in git
- Timestamp:
- Jul 25, 2006, 3:23:09 PM (18 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- d961eb8f3d847df637b17d416b318e54617f0cf2
- Parents:
- f995aabf7dacabab6e24c26c2a358ed2d2925830
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/cnf2ideal.py
rf995aa rd8e1214 86 86 command='option(redTail);\noption(prot);\nstd(i);\n' 87 87 return "\n".join([ring_def,ideal,command,"$;\n"]) 88 89 90 def gen_poly_Magma(clause): 91 def num2factor(f): 92 assert(f!=0) 93 if (f>0): 94 return "".join(["x",str(f),""]) 95 else: 96 return "".join(["(1-x",str(-f),")"]) 97 if clause: 98 return("*".join( [num2factor(f) for f in clause])) 99 100 def gen_Magma(clauses): 101 start_str=Template("""F:=FiniteField(2); 102 R< $var_list >:=PolynomialRing(F,$nvars,"lex"); 103 i:=ideal< R | $ideal 104 >; 105 GroebnerBasis(i); 106 exit; 107 """) 108 var_list=", ".join(["x"+str(i+1) for i in xrange(vars)]) 109 ideal=",\n".join([gen_poly_Magma(p) for p in clauses]) 110 return start_str.substitute({"nvars":str(vars), "var_list":var_list, "ideal":ideal}) 88 111 89 112 def gen_poly_PB(clause): … … 154 177 out.write(gen_Singular(clauses)) 155 178 out.close() 156 179 180 181 def convert_file_Magma(cnf,invert): 182 clauses=gen_clauses(process_input(open(cnf))) 183 184 #clauses=gen_clauses(process_input(sys.stdin)) 185 if invert: 186 clauses=[[-i for i in c] for c in clauses] 187 # 188 # print clauses 189 #print gen_Singular(clauses) 190 out_file_name=cnf[:-3]+"magma" 191 if invert: 192 out_file_name=out_file_name[:-6]+"Inverted.magma" 193 out=open(out_file_name,"w") 194 #print out 195 out.write(gen_Magma(clauses)) 196 out.close() 157 197 158 198 if __name__=='__main__': … … 175 215 convert_file_PB(a, options.invert) 176 216 convert_file_Singular(a, options.invert) 177 217 convert_file_Magma(a, options.invert)
Note: See TracChangeset
for help on using the changeset viewer.