Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Messed around with pointers, found bug in translatesubsol
  • Loading branch information
Joao-Dionisio committed May 28, 2025
commit bcc2f8894a430b55bc5d0a2ac81e993f9a73629c
22 changes: 12 additions & 10 deletions src/pyscipopt/scip.pxi
Original file line number Diff line number Diff line change
Expand Up @@ -2403,21 +2403,23 @@ cdef class _VarArray:

def __cinit__(self, object vars):
if isinstance(vars, Variable):
self.size = 1
self.ptr = malloc(sizeof(SCIP_VAR*))
self.ptr[0] = vars.scip_var
self.ptr = <SCIP_VAR**> malloc(sizeof(SCIP_VAR*))
self.ptr[0] = (<Variable>vars).scip_var
else:
if not isinstance(vars, (list, tuple)):
raise TypeError("Expected Variable or list of Variable, got %s." % type(vars))

self.size = len(vars)
self.ptr = malloc(self.size * sizeof(SCIP_VAR*))
size = len(vars)
if size == 0:
self.ptr = NULL
else:
self.ptr = <SCIP_VAR**> malloc(size * sizeof(SCIP_VAR*))

for i, var in enumerate(vars):
if not isinstance(var, Variable):
raise TypeError("Expected Variable, got %s." % type(var))
for i, var in enumerate(vars):
if not isinstance(var, Variable):
raise TypeError("Expected Variable, got %s." % type(var))

self.ptr[i] = var.scip_var
self.ptr[i] = (<Variable>var).scip_var

def __dealloc__(self):
if self.ptr != NULL:
Expand Down Expand Up @@ -8266,7 +8268,7 @@ cdef class Model:
solution : Solution
The corresponding solution in the main model
"""
cdef SCIP_VAR** vars = <SCIP_VAR**> malloc(self.getNVars() * sizeof(SCIP_VAR*))
cdef SCIP_VAR** vars = <SCIP_VAR**> malloc(sub_model.getNVars() * sizeof(SCIP_VAR*))
cdef SCIP_SOL* real_sol
cdef SCIP_SOL* subscip_sol = sol.sol
cdef SCIP_HEUR* _heur
Expand Down
Loading