Skip to content

Commit

Permalink
use of flatlist
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimosts committed Sep 19, 2023
1 parent de0059f commit 1c5ef0e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 20 deletions.
10 changes: 4 additions & 6 deletions cpmpy/solvers/exact.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@
from ..transformations.normalize import toplevel_list
from ..expressions.globalconstraints import DirectConstraint
from ..exceptions import NotSupportedError
from ..expressions.utils import flatlist

import numpy as np
import numbers

Expand Down Expand Up @@ -589,13 +591,9 @@ def solution_hint(self, cpm_vars, vals):
:param vals: list of (corresponding) values for the variables
"""

if not hasattr(cpm_vars, "flat"):
cpm_vars = np.array(cpm_vars)
cpm_vars=cpm_vars.flat
cpm_vars = flatlist(cpm_vars)

if not hasattr(vals, "flat"):
vals = np.array(vals)
vals=vals.flat
vals = flatlist(vals)

try:
pkg_resources.require("exact>=1.1.5")
Expand Down
10 changes: 3 additions & 7 deletions cpmpy/solvers/ortools.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
from ..expressions.globalconstraints import DirectConstraint
from ..expressions.variables import _NumVarImpl, _IntVarImpl, _BoolVarImpl, NegBoolView, boolvar
from ..expressions.globalconstraints import GlobalConstraint
from ..expressions.utils import is_num, is_any_list, eval_comparison
from ..expressions.utils import is_num, is_any_list, eval_comparison, flatlist
from ..transformations.decompose_global import decompose_in_tree
from ..transformations.get_variables import get_variables
from ..transformations.flatten_model import flatten_constraint, flatten_objective
Expand Down Expand Up @@ -521,13 +521,9 @@ def solution_hint(self, cpm_vars, vals):
"""
self.ort_model.ClearHints() # because add just appends

if not hasattr(cpm_vars, "flat"):
cpm_vars = np.array(cpm_vars)
cpm_vars=cpm_vars.flat
cpm_vars = flatlist(cpm_vars)

if not hasattr(vals, "flat"):
vals = np.array(vals)
vals=vals.flat
vals = flatlist(vals)

assert (len(cpm_vars) == len(vals)), "Variables and values must have the same size for hinting"

Expand Down
10 changes: 3 additions & 7 deletions cpmpy/solvers/pysat.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
from ..expressions.core import Expression, Comparison, Operator, BoolVal
from ..expressions.variables import _BoolVarImpl, NegBoolView, boolvar
from ..expressions.globalconstraints import DirectConstraint
from ..expressions.utils import is_any_list, is_int
from ..expressions.utils import is_any_list, is_int, flatlist
from ..transformations.decompose_global import decompose_in_tree
from ..transformations.get_variables import get_variables
from ..transformations.flatten_model import flatten_constraint
Expand Down Expand Up @@ -316,13 +316,9 @@ def solution_hint(self, cpm_vars, vals):
:param vals: list of (corresponding) values for the variables
"""

if not hasattr(cpm_vars, "flat"):
cpm_vars = np.array(cpm_vars)
cpm_vars=cpm_vars.flat
cpm_vars = flatlist(cpm_vars)

if not hasattr(vals, "flat"):
vals = np.array(vals)
vals=vals.flat
vals = flatlist(vals)

literals = []
for (cpm_var, val) in zip(cpm_vars, vals):
Expand Down

0 comments on commit 1c5ef0e

Please sign in to comment.