Changeset d8e1214 in git


Ignore:
Timestamp:
Jul 25, 2006, 3:23:09 PM (18 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
d961eb8f3d847df637b17d416b318e54617f0cf2
Parents:
f995aabf7dacabab6e24c26c2a358ed2d2925830
Message:
*bricken: + magma support


git-svn-id: file:///usr/local/Singular/svn/trunk@9347 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/cnf2ideal.py

    rf995aa rd8e1214  
    8686    command='option(redTail);\noption(prot);\nstd(i);\n'
    8787    return "\n".join([ring_def,ideal,command,"$;\n"])
     88
     89
     90def 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
     100def gen_Magma(clauses):
     101    start_str=Template("""F:=FiniteField(2);
     102R< $var_list >:=PolynomialRing(F,$nvars,"lex");
     103i:=ideal< R | $ideal
     104>;
     105GroebnerBasis(i);
     106exit;
     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})
    88111   
    89112def gen_poly_PB(clause):
     
    154177    out.write(gen_Singular(clauses))
    155178    out.close()
    156    
     179
     180
     181def  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()   
    157197   
    158198if __name__=='__main__':
     
    175215            convert_file_PB(a, options.invert)
    176216            convert_file_Singular(a, options.invert)
    177            
     217            convert_file_Magma(a, options.invert)
Note: See TracChangeset for help on using the changeset viewer.