Skip to content

Commit 5580e12

Browse files
committed
BUG: use np.ravel avoid to run out of vars range
1 parent 68f2e44 commit 5580e12

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/pyscipopt/scip.pxi

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2468,17 +2468,15 @@ cdef class _VarArray:
24682468

24692469
def __cinit__(self, object vars):
24702470
if isinstance(vars, Variable):
2471-
self.size = 1
24722471
vars = [vars]
2473-
elif isinstance(vars, (list, tuple)):
2474-
self.size = len(vars)
2475-
elif isinstance(vars, MatrixVariable):
2476-
self.size = vars.size
2472+
elif isinstance(vars, (list, tuple, MatrixVariable)):
2473+
vars = np.ravel(vars)
24772474
else:
24782475
raise TypeError(f"Expected Variable or list of Variable, got {type(vars)}.")
24792476

2477+
self.size = len(vars)
24802478
self.ptr = <SCIP_VAR**> malloc(self.size * sizeof(SCIP_VAR*)) if self.size else NULL
2481-
for i, var in enumerate(np.ravel(vars)):
2479+
for i, var in enumerate(vars):
24822480
if not isinstance(var, Variable):
24832481
raise TypeError(f"Expected Variable, got {type(var)}.")
24842482
self.ptr[i] = (<Variable>var).scip_var

0 commit comments

Comments
 (0)