4 cdef public Model model
8 '''calls destructor and frees memory of relaxation handler'''
12 '''initializes relaxation handler'''
16 '''calls exit method of relaxation handler'''
20 '''informs relaxaton handler that the branch and bound process is being started'''
24 '''informs relaxation handler that the branch and bound process data is being freed'''
28 '''callls execution method of relaxation handler'''
29 print(
"python error in relaxexec: this method needs to be implemented")
33 cdef SCIP_RETCODE PyRelaxCopy (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
36 cdef SCIP_RETCODE PyRelaxFree (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
37 cdef SCIP_RELAXDATA* relaxdata
39 PyRelax = <Relax>relaxdata
44 cdef SCIP_RETCODE PyRelaxInit (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
45 cdef SCIP_RELAXDATA* relaxdata
47 PyRelax = <Relax>relaxdata
51 cdef SCIP_RETCODE PyRelaxExit (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
52 cdef SCIP_RELAXDATA* relaxdata
54 PyRelax = <Relax>relaxdata
58 cdef SCIP_RETCODE PyRelaxInitsol (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
59 cdef SCIP_RELAXDATA* relaxdata
61 PyRelax = <Relax>relaxdata
62 PyRelax.relaxinitsol()
65 cdef SCIP_RETCODE PyRelaxExitsol (SCIP* scip, SCIP_RELAX* relax) noexcept
with gil:
66 cdef SCIP_RELAXDATA* relaxdata
68 PyRelax = <Relax>relaxdata
69 PyRelax.relaxexitsol()
72 cdef SCIP_RETCODE PyRelaxExec (SCIP* scip, SCIP_RELAX* relax, SCIP_Real* lowerbound, SCIP_RESULT* result) noexcept
with gil:
73 cdef SCIP_RELAXDATA* relaxdata
75 PyRelax = <Relax>relaxdata
76 result_dict = PyRelax.relaxexec()
77 assert isinstance(result_dict, dict),
"relaxexec() must return a dictionary."
78 lowerbound[0] = result_dict.get(
"lowerbound", <SCIP_Real>lowerbound[0])
79 result[0] = result_dict.get(
"result", <SCIP_RESULT>result[0])