Fixing the killer sudoku
authorHamed Gorjiara <hgorjiar@uci.edu>
Wed, 25 Jul 2018 05:11:02 +0000 (22:11 -0700)
committerHamed Gorjiara <hgorjiar@uci.edu>
Wed, 25 Jul 2018 05:11:02 +0000 (22:11 -0700)
killerSudoku/csolversudoku.py

index d6a169c685c1eacf9d973562590606d57e87ca70..9391c6a6eb166c5e840a2bab1b589a7741703675 100644 (file)
@@ -27,7 +27,7 @@ def generateKillerSudokuConstraints(N, killerRules):
                                        sj = csolverlb.getElementRange(solver,ej)
                                        d = [si,sj]
                                        domain = (c_void_p *len(d))(*d)
-                                       equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS), domain, c_uint(2))
+                                       equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS))
                                        inp = [ei,ej]
                                        inputs = (c_void_p*len(inp))(*inp)
                                        b = csolverlb.applyPredicate(solver,equals, inputs, c_uint(2))
@@ -47,13 +47,13 @@ def generateKillerSudokuConstraints(N, killerRules):
                overflow = csolverlb.getBooleanVar(solver, c_uint(2));
                esum = csolverlb.getElementConst(solver, c_uint(3), c_long(sumCage))
                setSum = csolverlb.getElementRange(solver, esum)
-               f1 = csolverlb.createFunctionOperator(solver, ps.ArithOp.SATC_ADD, domains, c_uint(len(d)), setSum, ps.OverFlowBehavior.SATC_OVERFLOWSETSFLAG);
+               f1 = csolverlb.createFunctionOperator(solver, ps.ArithOp.SATC_ADD, setSum, ps.OverFlowBehavior.SATC_OVERFLOWSETSFLAG);
                inputs = (c_void_p*len(elements))(*elements)
                added = csolverlb.applyFunction(solver, f1, inputs, len(elements), overflow);
                
                d = [setSum,setSum]
                domain = (c_void_p *len(d))(*d)
-               equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS), domain, c_uint(len(d)))
+               equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS))
                inp = [added,esum]
                inputs = (c_void_p*len(inp))(*inp)
                b = csolverlb.applyPredicate(solver,equals, inputs, c_uint(len(inp)))
@@ -78,7 +78,7 @@ def generateKillerSudokuConstraints(N, killerRules):
                                sconst = csolverlb.getElementRange(solver,econst)
                                d = [s1,sconst]
                                domain = (c_void_p *len(d))(*d)
-                               equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS), domain, c_uint(2))
+                               equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS))
                                inp = [elem,econst]
                                inputs = (c_void_p*len(inp))(*inp)
                                constr.append( csolverlb.applyPredicate(solver,equals, inputs, c_uint(2)))