Scippy

SCIP

Solving Constraint Integer Programs

primal.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2017 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file primal.h
17  * @ingroup INTERNALAPI
18  * @brief internal methods for collecting primal CIP solutions and primal informations
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PRIMAL_H__
25 #define __SCIP_PRIMAL_H__
26 
27 
28 #include "scip/def.h"
29 #include "blockmemshell/memory.h"
30 #include "scip/type_retcode.h"
31 #include "scip/type_set.h"
32 #include "scip/type_event.h"
33 #include "scip/type_lp.h"
34 #include "scip/type_var.h"
35 #include "scip/type_prob.h"
36 #include "scip/type_sol.h"
37 #include "scip/type_primal.h"
38 #include "scip/type_tree.h"
39 #include "scip/type_reopt.h"
40 #include "scip/type_heur.h"
41 
42 #include "scip/struct_primal.h"
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 /** creates primal data */
49 extern
51  SCIP_PRIMAL** primal /**< pointer to primal data */
52  );
53 
54 /** frees primal data */
55 extern
57  SCIP_PRIMAL** primal, /**< pointer to primal data */
58  BMS_BLKMEM* blkmem /**< block memory */
59  );
60 
61 /** clears primal data */
62 extern
64  SCIP_PRIMAL** primal, /**< pointer to primal data */
65  BMS_BLKMEM* blkmem /**< block memory */
66  );
67 
68 /** sets the cutoff bound in primal data and in LP solver */
69 extern
71  SCIP_PRIMAL* primal, /**< primal data */
72  BMS_BLKMEM* blkmem, /**< block memory */
73  SCIP_SET* set, /**< global SCIP settings */
74  SCIP_STAT* stat, /**< problem statistics data */
75  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
76  SCIP_PROB* transprob, /**< tranformed problem data */
77  SCIP_PROB* origprob, /**< original problem data */
78  SCIP_TREE* tree, /**< branch and bound tree */
79  SCIP_REOPT* reopt, /**< reoptimization data structure */
80  SCIP_LP* lp, /**< current LP data */
81  SCIP_Real cutoffbound, /**< new cutoff bound */
82  SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
83  * better? */
84  );
85 
86 /** sets upper bound in primal data and in LP solver */
87 extern
89  SCIP_PRIMAL* primal, /**< primal data */
90  BMS_BLKMEM* blkmem, /**< block memory */
91  SCIP_SET* set, /**< global SCIP settings */
92  SCIP_STAT* stat, /**< problem statistics data */
93  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
94  SCIP_PROB* prob, /**< transformed problem after presolve */
95  SCIP_TREE* tree, /**< branch and bound tree */
96  SCIP_REOPT* reopt, /**< reoptimization data structure */
97  SCIP_LP* lp, /**< current LP data */
98  SCIP_Real upperbound /**< new upper bound */
99  );
100 
101 /** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
102 extern
104  SCIP_PRIMAL* primal, /**< primal data */
105  BMS_BLKMEM* blkmem, /**< block memory */
106  SCIP_SET* set, /**< global SCIP settings */
107  SCIP_STAT* stat, /**< problem statistics data */
108  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
109  SCIP_PROB* transprob, /**< tranformed problem data */
110  SCIP_PROB* origprob, /**< original problem data */
111  SCIP_TREE* tree, /**< branch and bound tree */
112  SCIP_REOPT* reopt, /**< reoptimization data structure */
113  SCIP_LP* lp /**< current LP data */
114  );
115 
116 /** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
117 extern
119  SCIP_PRIMAL* primal, /**< primal data */
120  BMS_BLKMEM* blkmem, /**< block memory */
121  SCIP_SET* set, /**< global SCIP settings */
122  SCIP_STAT* stat, /**< problem statistics data */
123  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
124  SCIP_PROB* transprob, /**< tranformed problem data */
125  SCIP_PROB* origprob, /**< original problem data */
126  SCIP_TREE* tree, /**< branch and bound tree */
127  SCIP_REOPT* reopt, /**< reoptimization data structure */
128  SCIP_LP* lp /**< current LP data */
129  );
130 
131 /** adds additional objective offset in origanal space to all existing solution (in original space) */
132 extern
134  SCIP_PRIMAL* primal, /**< primal data */
135  SCIP_SET* set, /**< global SCIP settings */
136  SCIP_Real addval /**< additional objective offset in original space */
137  );
138 
139 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
140  * was set from the user as objective limit
141  */
142 extern
144  SCIP_PRIMAL* primal, /**< primal data */
145  SCIP_SET* set, /**< global SCIP settings */
146  SCIP_PROB* transprob, /**< tranformed problem data */
147  SCIP_PROB* origprob /**< original problem data */
148  );
149 
150 /** returns the primal ray thats proves unboundedness */
151 extern
153  SCIP_PRIMAL* primal /**< primal data */
154  );
155 
156 /** update the primal ray thats proves unboundedness */
157 extern
159  SCIP_PRIMAL* primal, /**< primal data */
160  SCIP_SET* set, /**< global SCIP settings */
161  SCIP_STAT* stat, /**< dynamic SCIP statistics */
162  SCIP_SOL* primalray, /**< the new primal ray */
163  BMS_BLKMEM* blkmem /**< block memory */
164  );
165 
166 /** adds primal solution to solution storage by copying it */
167 extern
169  SCIP_PRIMAL* primal, /**< primal data */
170  BMS_BLKMEM* blkmem, /**< block memory */
171  SCIP_SET* set, /**< global SCIP settings */
172  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
173  SCIP_STAT* stat, /**< problem statistics data */
174  SCIP_PROB* origprob, /**< original problem */
175  SCIP_PROB* transprob, /**< transformed problem after presolve */
176  SCIP_TREE* tree, /**< branch and bound tree */
177  SCIP_REOPT* reopt, /**< reoptimization data structure */
178  SCIP_LP* lp, /**< current LP data */
179  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
180  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
181  SCIP_SOL* sol, /**< primal CIP solution */
182  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
183  );
184 
185 /** adds primal solution to solution storage, frees the solution afterwards */
186 extern
188  SCIP_PRIMAL* primal, /**< primal data */
189  BMS_BLKMEM* blkmem, /**< block memory */
190  SCIP_SET* set, /**< global SCIP settings */
191  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
192  SCIP_STAT* stat, /**< problem statistics data */
193  SCIP_PROB* origprob, /**< original problem */
194  SCIP_PROB* transprob, /**< transformed problem after presolve */
195  SCIP_TREE* tree, /**< branch and bound tree */
196  SCIP_REOPT* reopt, /**< reoptimization data structure */
197  SCIP_LP* lp, /**< current LP data */
198  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
199  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
200  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
201  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
202  );
203 
204 /** adds primal solution to solution candidate storage of original problem space */
205 extern
207  SCIP_PRIMAL* primal, /**< primal data */
208  BMS_BLKMEM* blkmem, /**< block memory */
209  SCIP_SET* set, /**< global SCIP settings */
210  SCIP_STAT* stat, /**< problem statistics data */
211  SCIP_PROB* prob, /**< original problem data */
212  SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
213  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
214  );
215 
216 /** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
217 extern
219  SCIP_PRIMAL* primal, /**< primal data */
220  BMS_BLKMEM* blkmem, /**< block memory */
221  SCIP_SET* set, /**< global SCIP settings */
222  SCIP_STAT* stat, /**< problem statistics data */
223  SCIP_PROB* prob, /**< original problem data */
224  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
225  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
226  );
227 
228 /** adds current LP/pseudo solution to solution storage */
229 extern
231  SCIP_PRIMAL* primal, /**< primal data */
232  BMS_BLKMEM* blkmem, /**< block memory */
233  SCIP_SET* set, /**< global SCIP settings */
234  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
235  SCIP_STAT* stat, /**< problem statistics data */
236  SCIP_PROB* origprob, /**< original problem */
237  SCIP_PROB* transprob, /**< transformed problem after presolve */
238  SCIP_TREE* tree, /**< branch and bound tree */
239  SCIP_REOPT* reopt, /**< reoptimization data structure */
240  SCIP_LP* lp, /**< current LP data */
241  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
242  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
243  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
244  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
245  );
246 
247 /** checks primal solution; if feasible, adds it to storage by copying it */
248 extern
250  SCIP_PRIMAL* primal, /**< primal data */
251  BMS_BLKMEM* blkmem, /**< block memory */
252  SCIP_SET* set, /**< global SCIP settings */
253  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
254  SCIP_STAT* stat, /**< problem statistics data */
255  SCIP_PROB* origprob, /**< original problem */
256  SCIP_PROB* transprob, /**< transformed problem after presolve */
257  SCIP_TREE* tree, /**< branch and bound tree */
258  SCIP_REOPT* reopt, /**< reoptimization data structure */
259  SCIP_LP* lp, /**< current LP data */
260  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
261  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
262  SCIP_SOL* sol, /**< primal CIP solution */
263  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
264  SCIP_Bool completely, /**< Should all violations be checked? */
265  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
266  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
267  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
268  SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
269  );
270 
271 /** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
272 extern
274  SCIP_PRIMAL* primal, /**< primal data */
275  BMS_BLKMEM* blkmem, /**< block memory */
276  SCIP_SET* set, /**< global SCIP settings */
277  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
278  SCIP_STAT* stat, /**< problem statistics data */
279  SCIP_PROB* origprob, /**< original problem */
280  SCIP_PROB* transprob, /**< transformed problem after presolve */
281  SCIP_TREE* tree, /**< branch and bound tree */
282  SCIP_REOPT* reopt, /**< reoptimization data structure */
283  SCIP_LP* lp, /**< current LP data */
284  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
285  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
286  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
287  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
288  SCIP_Bool completely, /**< Should all violations be checked? */
289  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
290  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
291  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
292  SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
293  );
294 
295 /** checks current LP/pseudo solution; if feasible, adds it to storage */
296 extern
298  SCIP_PRIMAL* primal, /**< primal data */
299  BMS_BLKMEM* blkmem, /**< block memory */
300  SCIP_SET* set, /**< global SCIP settings */
301  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
302  SCIP_STAT* stat, /**< problem statistics data */
303  SCIP_PROB* origprob, /**< original problem */
304  SCIP_PROB* transprob, /**< transformed problem after presolve */
305  SCIP_TREE* tree, /**< branch and bound tree */
306  SCIP_REOPT* reopt, /**< reoptimization data structure */
307  SCIP_LP* lp, /**< current LP data */
308  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
309  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
310  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
311  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
312  SCIP_Bool completely, /**< Should all violations be checked? */
313  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
314  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
315  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
316  );
317 
318 /** inserts solution into the global array of all existing primal solutions */
319 extern
321  SCIP_PRIMAL* primal, /**< primal data */
322  SCIP_SET* set, /**< global SCIP settings */
323  SCIP_SOL* sol /**< primal CIP solution */
324  );
325 
326 /** removes solution from the global array of all existing primal solutions */
327 extern
328 void SCIPprimalSolFreed(
329  SCIP_PRIMAL* primal, /**< primal data */
330  SCIP_SOL* sol /**< primal CIP solution */
331  );
332 
333 /** updates all existing primal solutions after a change in a variable's objective value */
334 extern
336  SCIP_PRIMAL* primal, /**< primal data */
337  SCIP_VAR* var, /**< problem variable */
338  SCIP_Real oldobj, /**< old objective value */
339  SCIP_Real newobj /**< new objective value */
340  );
341 
342 /** retransforms all existing solutions to original problem space */
343 extern
345  SCIP_PRIMAL* primal, /**< primal data */
346  SCIP_SET* set, /**< global SCIP settings */
347  SCIP_STAT* stat, /**< problem statistics data */
348  SCIP_PROB* origprob, /**< original problem */
349  SCIP_PROB* transprob /**< transformed problem */
350  );
351 
352 /** tries to transform original solution to the transformed problem space */
353 extern
355  SCIP_PRIMAL* primal, /**< primal data */
356  SCIP_SOL* sol, /**< primal solution */
357  BMS_BLKMEM* blkmem, /**< block memory */
358  SCIP_SET* set, /**< global SCIP settings */
359  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
360  SCIP_STAT* stat, /**< problem statistics data */
361  SCIP_PROB* origprob, /**< original problem */
362  SCIP_PROB* transprob, /**< transformed problem after presolve */
363  SCIP_TREE* tree, /**< branch and bound tree */
364  SCIP_REOPT* reopt, /**< reoptimization data structure */
365  SCIP_LP* lp, /**< current LP data */
366  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
367  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
368  SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
369  * if the method is called multiple times in a row, an array with size >=
370  * number of active variables should be given for performance reasons */
371  SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
372  * if the method is called multiple times in a row, an array with size >=
373  * number of active variables should be given for performance reasons */
374  int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
375  * variables */
376  SCIP_Bool* added /**< pointer to store whether the solution was added */
377  );
378 
379 #ifdef __cplusplus
380 }
381 #endif
382 
383 #endif
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:189
SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
Definition: primal.c:564
SCIP_RETCODE SCIPprimalAddOrigSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
Definition: primal.c:1265
void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
Definition: primal.c:507
SCIP_RETCODE SCIPprimalTryCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1578
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_RETCODE SCIPprimalAddCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool *stored)
Definition: primal.c:1404
type definitions for global SCIP settings
SCIP_RETCODE SCIPprimalTrySol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1434
type definitions for return codes for SCIP methods
SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
Definition: primal.c:554
type definitions for collecting reoptimization information
type definitions for LP management
SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
Definition: primal.c:264
type definitions for primal heuristics
SCIP_RETCODE SCIPprimalTrySolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1504
SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:402
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
Definition: primal.c:1613
type definitions for problem variables
type definitions for managing events
#define SCIP_Bool
Definition: def.h:61
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob)
Definition: primal.c:1684
type definitions for branch and bound tree
SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: primal.c:541
type definitions for storing primal CIP solutions
type definitions for storing and manipulating the main problem
SCIP_RETCODE SCIPprimalSetUpperbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
Definition: primal.c:371
void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: primal.c:1665
SCIP_RETCODE SCIPprimalAddSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
Definition: primal.c:1142
SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:441
SCIP_RETCODE SCIPprimalTransformSol(SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
Definition: primal.c:1709
#define SCIP_Real
Definition: def.h:135
SCIP_RETCODE SCIPprimalAddSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
Definition: primal.c:1210
datastructures for collecting primal CIP solutions and primal informations
type definitions for collecting primal CIP solutions and primal informations
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPprimalAddOrigSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL **sol, SCIP_Bool *stored)
Definition: primal.c:1320
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:392
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
Definition: primal.c:1635
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:146
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
Definition: primal.c:117
memory allocation routines