Scippy

SCIP

Solving Constraint Integer Programs

pub_lp.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-2020 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 visit scipopt.org. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file pub_lp.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for LP management
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PUB_LP_H__
25 #define __SCIP_PUB_LP_H__
26 
27 
28 #include "lpi/type_lpi.h"
29 #include "scip/def.h"
30 #include "scip/type_cons.h"
31 #include "scip/type_lp.h"
32 #include "scip/type_sepa.h"
33 #include "scip/type_var.h"
34 #include "scip/type_misc.h"
35 
36 #ifdef NDEBUG
37 #include "scip/struct_lp.h"
38 #endif
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 
45 /**@addtogroup PublicColumnMethods
46  *
47  * @{
48  */
49 
50 /** sorts column entries such that LP rows precede non-LP rows and inside both parts lower row indices precede higher ones
51  */
53 void SCIPcolSort(
54  SCIP_COL* col /**< column to be sorted */
55  );
56 
57 /** gets objective value of column */
60  SCIP_COL* col /**< LP column */
61  );
62 
63 /** gets lower bound of column */
66  SCIP_COL* col /**< LP column */
67  );
68 
69 /** gets upper bound of column */
72  SCIP_COL* col /**< LP column */
73  );
74 
75 /** gets best bound of column with respect to the objective function */
78  SCIP_COL* col /**< LP column */
79  );
80 
81 /** gets the primal LP solution of a column */
84  SCIP_COL* col /**< LP column */
85  );
86 
87 /** gets the minimal LP solution value, this column ever assumed */
90  SCIP_COL* col /**< LP column */
91  );
92 
93 /** gets the maximal LP solution value, this column ever assumed */
96  SCIP_COL* col /**< LP column */
97  );
98 
99 /** gets the basis status of a column in the LP solution; only valid for LPs with status SCIP_LPSOLSTAT_OPTIMAL
100  * and with SCIPisLPSolBasic(scip) == TRUE; returns SCIP_BASESTAT_ZERO for columns not in the current SCIP_LP
101  */
104  SCIP_COL* col /**< LP column */
105  );
106 
107 /** gets variable this column represents */
110  SCIP_COL* col /**< LP column */
111  );
112 
113 /** gets unique index of col */
115 int SCIPcolGetIndex(
116  SCIP_COL* col /**< LP col */
117  );
118 
119 /** returns whether the associated variable is of integral type (binary, integer, implicit integer) */
122  SCIP_COL* col /**< LP column */
123  );
124 
125 /** returns TRUE iff column is removable from the LP (due to aging or cleanup) */
128  SCIP_COL* col /**< LP column */
129  );
130 
131 /** gets position of column in current LP, or -1 if it is not in LP */
133 int SCIPcolGetLPPos(
134  SCIP_COL* col /**< LP column */
135  );
136 
137 /** gets depth in the tree where the column entered the LP, or -1 if it is not in LP */
140  SCIP_COL* col /**< LP column */
141  );
142 
143 /** returns TRUE iff column is member of current LP */
146  SCIP_COL* col /**< LP column */
147  );
148 
149 /** get number of nonzero entries in column vector */
151 int SCIPcolGetNNonz(
152  SCIP_COL* col /**< LP column */
153  );
154 
155 /** get number of nonzero entries in column vector, that correspond to rows currently in the SCIP_LP;
156  *
157  * @warning This method is only applicable on columns, that are completely linked to their rows (e.g. a column
158  * that is in the current LP and the LP was solved, or a column that was in a solved LP and didn't change afterwards
159  */
162  SCIP_COL* col /**< LP column */
163  );
164 
165 /** gets array with rows of nonzero entries */
168  SCIP_COL* col /**< LP column */
169  );
170 
171 /** gets array with coefficients of nonzero entries */
174  SCIP_COL* col /**< LP column */
175  );
176 
177 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
178  * given column, or -1 if strong branching was never applied to the column in current run
179  */
182  SCIP_COL* col /**< LP column */
183  );
184 
185 /** gets number of times, strong branching was applied in current run on the given column */
188  SCIP_COL* col /**< LP column */
189  );
190 
191 /** gets the age of a column, i.e., the total number of successive times a column was in the LP and was 0.0 in the solution */
193 int SCIPcolGetAge(
194  SCIP_COL* col /**< LP column */
195  );
196 
197 /** gets opposite bound type of given bound type */
200  SCIP_BOUNDTYPE boundtype /**< type of bound (lower or upper) */
201  );
202 
203 #ifdef NDEBUG
204 
205 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
206  * speed up the algorithms.
207  */
208 
209 #define SCIPcolGetObj(col) (col)->obj
210 #define SCIPcolGetLb(col) (col)->lb
211 #define SCIPcolGetUb(col) (col)->ub
212 #define SCIPcolGetBestBound(col) ((col)->obj >= 0.0 ? (col)->lb : (col)->ub)
213 #define SCIPcolGetPrimsol(col) ((col)->lppos >= 0 ? (col)->primsol : 0.0)
214 #define SCIPcolGetMinPrimsol(col) ((col)->minprimsol)
215 #define SCIPcolGetMaxPrimsol(col) ((col)->maxprimsol)
216 #define SCIPcolGetBasisStatus(col) ((SCIP_BASESTAT)(col)->basisstatus)
217 #define SCIPcolGetVar(col) (col)->var
218 #define SCIPcolGetIndex(col) (col)->index
219 #define SCIPcolIsIntegral(col) (col)->integral
220 #define SCIPcolIsRemovable(col) (col)->removable
221 #define SCIPcolGetLPPos(col) (col)->lppos
222 #define SCIPcolGetLPDepth(col) (col)->lpdepth
223 #define SCIPcolIsInLP(col) ((col)->lppos >= 0)
224 #define SCIPcolGetNNonz(col) (col)->len
225 #define SCIPcolGetNLPNonz(col) (col)->nlprows
226 #define SCIPcolGetRows(col) (col)->rows
227 #define SCIPcolGetVals(col) (col)->vals
228 #define SCIPcolGetStrongbranchNode(col) (col)->sbnode
229 #define SCIPcolGetNStrongbranchs(col) (col)->nsbcalls
230 #define SCIPcolGetAge(col) (col)->age
231 #define SCIPboundtypeOpposite(boundtype) \
232  ((boundtype) == SCIP_BOUNDTYPE_LOWER ? SCIP_BOUNDTYPE_UPPER : SCIP_BOUNDTYPE_LOWER)
233 
234 #endif
235 
236 /**@} */
237 
238 
239 
240 /**@addtogroup PublicRowMethods
241  *
242  * @{
243  */
244 
245 /** comparison method for sorting rows by non-decreasing index */
247 SCIP_DECL_SORTPTRCOMP(SCIProwComp);
248 
249 /** locks an unmodifiable row, which forbids further changes; has no effect on modifiable rows */
251 void SCIProwLock(
252  SCIP_ROW* row /**< LP row */
253  );
254 
255 /** unlocks a lock of an unmodifiable row; a row with no sealed lock may be modified; has no effect on modifiable rows */
257 void SCIProwUnlock(
258  SCIP_ROW* row /**< LP row */
259  );
260 
261 /** returns the scalar product of the coefficient vectors of the two given rows */
264  SCIP_ROW* row1, /**< first LP row */
265  SCIP_ROW* row2 /**< second LP row */
266  );
267 
268 /** returns the degree of parallelism between the hyperplanes defined by the two row vectors v, w:
269  * p = |v*w|/(|v|*|w|);
270  * the hyperplanes are parallel, iff p = 1, they are orthogonal, iff p = 0
271  */
274  SCIP_ROW* row1, /**< first LP row */
275  SCIP_ROW* row2, /**< second LP row */
276  char orthofunc /**< function used for calc. scalar prod. ('e'uclidean, 'd'iscrete) */
277  );
278 
279 /** returns the degree of orthogonality between the hyperplanes defined by the two row vectors v, w:
280  * o = 1 - |v*w|/(|v|*|w|);
281  * the hyperplanes are orthogonal, iff p = 1, they are parallel, iff p = 0
282  */
285  SCIP_ROW* row1, /**< first LP row */
286  SCIP_ROW* row2, /**< second LP row */
287  char orthofunc /**< function used for calc. scalar prod. ('e'uclidean, 'd'iscrete) */
288  );
289 
290 /** sorts row entries such that LP columns precede non-LP columns and inside both parts lower column indices precede
291  * higher ones
292  */
294 void SCIProwSort(
295  SCIP_ROW* row /**< row to be sorted */
296  );
297 
298 /** get number of nonzero entries in row vector */
300 int SCIProwGetNNonz(
301  SCIP_ROW* row /**< LP row */
302  );
303 
304 /** get number of nonzero entries in row vector, that correspond to columns currently in the SCIP_LP;
305  *
306  * @warning This method is only applicable on rows, that are completely linked to their columns (e.g. a row
307  * that is in the current LP and the LP was solved, or a row that was in a solved LP and didn't change afterwards
308  */
311  SCIP_ROW* row /**< LP row */
312  );
313 
314 /** gets array with columns of nonzero entries */
317  SCIP_ROW* row /**< LP row */
318  );
319 
320 /** gets array with coefficients of nonzero entries */
323  SCIP_ROW* row /**< LP row */
324  );
325 
326 /** gets constant shift of row */
329  SCIP_ROW* row /**< LP row */
330  );
331 
332 /** gets Euclidean norm of row vector */
335  SCIP_ROW* row /**< LP row */
336  );
337 
338 /** gets sum norm of row vector (sum of absolute values of coefficients) */
341  SCIP_ROW* row /**< LP row */
342  );
343 
344 /** returns the left hand side of the row */
347  SCIP_ROW* row /**< LP row */
348  );
349 
350 /** returns the right hand side of the row */
353  SCIP_ROW* row /**< LP row */
354  );
355 
356 /** gets the dual LP solution of a row */
359  SCIP_ROW* row /**< LP row */
360  );
361 
362 /** gets the dual Farkas coefficient of a row in an infeasible LP */
365  SCIP_ROW* row /**< LP row */
366  );
367 
368 /** gets the basis status of a row in the LP solution; only valid for LPs with status SCIP_LPSOLSTAT_OPTIMAL
369  * and with SCIPisLPSolBasic(scip) == TRUE; returns SCIP_BASESTAT_BASIC for rows not in the current SCIP_LP
370  */
373  SCIP_ROW* row /**< LP row */
374  );
375 
376 /** returns the name of the row */
378 const char* SCIProwGetName(
379  SCIP_ROW* row /**< LP row */
380  );
381 
382 /** gets unique index of row */
384 int SCIProwGetIndex(
385  SCIP_ROW* row /**< LP row */
386  );
387 
388 /** gets age of row */
390 int SCIProwGetAge(
391  SCIP_ROW* row /**< LP row */
392  );
393 
394 /** gets rank of row */
396 int SCIProwGetRank(
397  SCIP_ROW* row /**< LP row */
398  );
399 
400 /** returns TRUE iff the activity of the row (without the row's constant) is always integral in a feasible solution */
403  SCIP_ROW* row /**< LP row */
404  );
405 
406 /** returns TRUE iff row is only valid locally */
409  SCIP_ROW* row /**< LP row */
410  );
411 
412 /** returns TRUE iff row is modifiable during node processing (subject to column generation) */
415  SCIP_ROW* row /**< LP row */
416  );
417 
418 /** returns TRUE iff row is removable from the LP (due to aging or cleanup) */
421  SCIP_ROW* row /**< LP row */
422  );
423 
424 /** returns type of origin that created the row */
427  SCIP_ROW* row /**< LP row */
428  );
429 
430 /** returns origin constraint handler that created the row (NULL if not available) */
433  SCIP_ROW* row /**< LP row */
434  );
435 
436 /** returns origin constraint that created the row (NULL if not available) */
439  SCIP_ROW* row /**< LP row */
440  );
441 
442 /** returns origin separator that created the row (NULL if not available) */
445  SCIP_ROW* row /**< LP row */
446  );
447 
448 /** returns TRUE iff row is member of the global cut pool */
451  SCIP_ROW* row /**< LP row */
452  );
453 
454 /** gets position of row in current LP, or -1 if it is not in LP */
456 int SCIProwGetLPPos(
457  SCIP_ROW* row /**< LP row */
458  );
459 
460 /** gets depth in the tree where the row entered the LP, or -1 if it is not in LP */
463  SCIP_ROW* row /**< LP row */
464  );
465 
466 /** returns TRUE iff row is member of current LP */
469  SCIP_ROW* row /**< LP row */
470  );
471 
472 /** returns the number of times that this row has been sharp in an optimal LP solution */
475  SCIP_ROW* row /**< row */
476  );
477 
478 /** returns the number of LPs since this row has been created */
481  SCIP_ROW* row /**< row */
482  );
483 
484 /** changes the rank of LP row */
486 void SCIProwChgRank(
487  SCIP_ROW* row, /**< LP row */
488  int rank /**< new value for rank */
489  );
490 
491 #ifdef NDEBUG
492 
493 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
494  * speed up the algorithms.
495  */
496 
497 #define SCIProwGetNNonz(row) (row)->len
498 #define SCIProwGetNLPNonz(row) (row)->nlpcols
499 #define SCIProwGetCols(row) (row)->cols
500 #define SCIProwGetVals(row) (row)->vals
501 #define SCIProwGetConstant(row) (row)->constant
502 #define SCIProwGetNorm(row) sqrt((row)->sqrnorm)
503 #define SCIProwGetSumNorm(row) (row)->sumnorm
504 #define SCIProwGetLhs(row) (row)->lhs
505 #define SCIProwGetRhs(row) (row)->rhs
506 #define SCIProwGetDualsol(row) ((row)->lppos >= 0 ? (row)->dualsol : 0.0)
507 #define SCIProwGetDualfarkas(row) ((row)->lppos >= 0 ? (row)->dualfarkas : 0.0)
508 #define SCIProwGetBasisStatus(row) ((SCIP_BASESTAT) (row)->basisstatus)
509 #define SCIProwGetName(row) (row)->name
510 #define SCIProwGetIndex(row) (row)->index
511 #define SCIProwGetAge(row) (row)->age
512 #define SCIProwGetRank(row) (row)->rank
513 #define SCIProwIsIntegral(row) (row)->integral
514 #define SCIProwIsLocal(row) (row)->local
515 #define SCIProwIsModifiable(row) (row)->modifiable
516 #define SCIProwIsRemovable(row) (row)->removable
517 #define SCIProwGetOrigintype(row) (row)->origintype
518 #define SCIProwGetOriginCons(row) ((SCIP_CONS*) ((SCIP_ROWORIGINTYPE) row->origintype == SCIP_ROWORIGINTYPE_CONS ? (row)->origin : NULL))
519 #define SCIProwGetOriginSepa(row) ((SCIP_SEPA*) ((SCIP_ROWORIGINTYPE) row->origintype == SCIP_ROWORIGINTYPE_SEPA ? (row)->origin : NULL))
520 #define SCIProwIsInGlobalCutpool(row) (row)->inglobalcutpool
521 #define SCIProwGetLPPos(row) (row)->lppos
522 #define SCIProwGetLPDepth(row) (row)->lpdepth
523 #define SCIProwIsInLP(row) ((row)->lppos >= 0)
524 #define SCIProwGetActiveLPCount(row) ((row)->activeinlpcounter)
525 #define SCIProwGetNLPsAfterCreation(row) ((row)->nlpsaftercreation)
526 #define SCIProwChgRank(row, cutrank) ((row)->rank = (cutrank))
527 
528 #endif
529 
530 /**@} */
531 
532 #ifdef __cplusplus
533 }
534 #endif
535 
536 #endif
SCIP_EXPORT SCIP_Longint SCIProwGetActiveLPCount(SCIP_ROW *row)
Definition: lp.c:17394
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition: type_lp.h:50
SCIP_EXPORT SCIP_Bool SCIProwIsLocal(SCIP_ROW *row)
Definition: lp.c:17250
SCIP_EXPORT SCIP_Longint SCIPcolGetStrongbranchNode(SCIP_COL *col)
Definition: lp.c:17022
SCIP_EXPORT SCIP_Real SCIProwGetDualsol(SCIP_ROW *row)
Definition: lp.c:17161
SCIP_EXPORT int SCIProwGetNLPNonz(SCIP_ROW *row)
Definition: lp.c:17076
type definitions for miscellaneous datastructures
enum SCIP_BaseStat SCIP_BASESTAT
Definition: type_lpi.h:87
SCIP_EXPORT SCIP_Bool SCIProwIsRemovable(SCIP_ROW *row)
Definition: lp.c:17270
SCIP_EXPORT SCIP_Real * SCIPcolGetVals(SCIP_COL *col)
Definition: lp.c:17010
enum SCIP_RowOriginType SCIP_ROWORIGINTYPE
Definition: type_lp.h:69
SCIP_EXPORT SCIP_Bool SCIPcolIsIntegral(SCIP_COL *col)
Definition: lp.c:16921
SCIP_EXPORT int SCIProwGetNNonz(SCIP_ROW *row)
Definition: lp.c:17062
#define SCIP_EXPORT
Definition: def.h:100
SCIP_EXPORT int SCIPcolGetNNonz(SCIP_COL *col)
Definition: lp.c:16975
SCIP_EXPORT SCIP_Real SCIPcolGetMaxPrimsol(SCIP_COL *col)
Definition: lp.c:16878
SCIP_EXPORT SCIP_Real SCIProwGetOrthogonality(SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
Definition: lp.c:7776
SCIP_EXPORT SCIP_Real SCIProwGetConstant(SCIP_ROW *row)
Definition: lp.c:17107
SCIP_EXPORT SCIP_ROW ** SCIPcolGetRows(SCIP_COL *col)
Definition: lp.c:17000
SCIP_EXPORT int SCIProwGetRank(SCIP_ROW *row)
Definition: lp.c:17230
SCIP_EXPORT SCIP_Real SCIPcolGetBestBound(SCIP_COL *col)
Definition: lp.c:16842
SCIP_EXPORT SCIP_Real SCIPcolGetObj(SCIP_COL *col)
Definition: lp.c:16812
SCIP_EXPORT int SCIProwGetLPPos(SCIP_ROW *row)
Definition: lp.c:17350
SCIP_EXPORT SCIP_Bool SCIProwIsModifiable(SCIP_ROW *row)
Definition: lp.c:17260
SCIP_EXPORT SCIP_Real SCIPcolGetLb(SCIP_COL *col)
Definition: lp.c:16822
SCIP_EXPORT SCIP_CONS * SCIProwGetOriginCons(SCIP_ROW *row)
Definition: lp.c:17290
SCIP_EXPORT SCIP_Real SCIProwGetNorm(SCIP_ROW *row)
Definition: lp.c:17117
SCIP_EXPORT SCIP_Real SCIPcolGetMinPrimsol(SCIP_COL *col)
Definition: lp.c:16868
type definitions for LP management
SCIP_EXPORT SCIP_Bool SCIProwIsInLP(SCIP_ROW *row)
Definition: lp.c:17372
SCIP_EXPORT SCIP_BOUNDTYPE SCIPboundtypeOpposite(SCIP_BOUNDTYPE boundtype)
Definition: lp.c:17052
SCIP_EXPORT SCIP_COL ** SCIProwGetCols(SCIP_ROW *row)
Definition: lp.c:17087
SCIP_EXPORT void SCIPcolSort(SCIP_COL *col)
Definition: lp.c:3424
SCIP_EXPORT SCIP_Real * SCIProwGetVals(SCIP_ROW *row)
Definition: lp.c:17097
SCIP_EXPORT int SCIProwGetIndex(SCIP_ROW *row)
Definition: lp.c:17210
SCIP_EXPORT int SCIPcolGetNLPNonz(SCIP_COL *col)
Definition: lp.c:16989
type definitions for specific LP solvers interface
SCIP_EXPORT SCIP_Longint SCIProwGetNLPsAfterCreation(SCIP_ROW *row)
Definition: lp.c:17404
SCIP_EXPORT SCIP_Real SCIPcolGetPrimsol(SCIP_COL *col)
Definition: lp.c:16855
SCIP_EXPORT SCIP_Real SCIPcolGetUb(SCIP_COL *col)
Definition: lp.c:16832
type definitions for problem variables
SCIP_EXPORT SCIP_SEPA * SCIProwGetOriginSepa(SCIP_ROW *row)
Definition: lp.c:17325
SCIP_EXPORT SCIP_BASESTAT SCIProwGetBasisStatus(SCIP_ROW *row)
Definition: lp.c:17189
SCIP_EXPORT SCIP_Real SCIProwGetDualfarkas(SCIP_ROW *row)
Definition: lp.c:17174
SCIP_EXPORT int SCIPcolGetNStrongbranchs(SCIP_COL *col)
Definition: lp.c:17032
#define SCIP_Bool
Definition: def.h:70
SCIP_EXPORT int SCIProwGetAge(SCIP_ROW *row)
Definition: lp.c:17220
SCIP_EXPORT SCIP_Real SCIProwGetSumNorm(SCIP_ROW *row)
Definition: lp.c:17129
SCIP_EXPORT SCIP_Bool SCIProwIsIntegral(SCIP_ROW *row)
Definition: lp.c:17240
SCIP_EXPORT int SCIProwGetLPDepth(SCIP_ROW *row)
Definition: lp.c:17361
SCIP_EXPORT SCIP_Bool SCIPcolIsRemovable(SCIP_COL *col)
Definition: lp.c:16932
SCIP_EXPORT SCIP_Real SCIProwGetLhs(SCIP_ROW *row)
Definition: lp.c:17141
SCIP_EXPORT void SCIProwChgRank(SCIP_ROW *row, int rank)
Definition: lp.c:17383
SCIP_EXPORT void SCIProwSort(SCIP_ROW *row)
Definition: lp.c:6004
SCIP_EXPORT SCIP_VAR * SCIPcolGetVar(SCIP_COL *col)
Definition: lp.c:16901
SCIP_EXPORT int SCIPcolGetAge(SCIP_COL *col)
Definition: lp.c:17042
SCIP_EXPORT SCIP_Real SCIProwGetScalarProduct(SCIP_ROW *row1, SCIP_ROW *row2)
Definition: lp.c:6996
SCIP_EXPORT SCIP_Real SCIProwGetParallelism(SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
Definition: lp.c:7712
SCIP_EXPORT SCIP_Bool SCIProwIsInGlobalCutpool(SCIP_ROW *row)
Definition: lp.c:17340
type definitions for separators
SCIP_EXPORT SCIP_Bool SCIPcolIsInLP(SCIP_COL *col)
Definition: lp.c:16964
SCIP_EXPORT int SCIPcolGetLPDepth(SCIP_COL *col)
Definition: lp.c:16953
data structures for LP management
#define SCIP_Real
Definition: def.h:163
SCIP_EXPORT void SCIProwUnlock(SCIP_ROW *row)
Definition: lp.c:5381
SCIP_EXPORT SCIP_CONSHDLR * SCIProwGetOriginConshdlr(SCIP_ROW *row)
Definition: lp.c:17305
SCIP_EXPORT const char * SCIProwGetName(SCIP_ROW *row)
Definition: lp.c:17200
#define SCIP_Longint
Definition: def.h:148
SCIP_EXPORT SCIP_BASESTAT SCIPcolGetBasisStatus(SCIP_COL *col)
Definition: lp.c:16890
SCIP_EXPORT SCIP_DECL_SORTPTRCOMP(SCIProwComp)
Definition: lp.c:936
SCIP_EXPORT SCIP_Real SCIProwGetRhs(SCIP_ROW *row)
Definition: lp.c:17151
common defines and data types used in all packages of SCIP
SCIP_EXPORT void SCIProwLock(SCIP_ROW *row)
Definition: lp.c:5366
type definitions for constraints and constraint handlers
SCIP_EXPORT int SCIPcolGetIndex(SCIP_COL *col)
Definition: lp.c:16911
SCIP_EXPORT int SCIPcolGetLPPos(SCIP_COL *col)
Definition: lp.c:16942
SCIP_EXPORT SCIP_ROWORIGINTYPE SCIProwGetOrigintype(SCIP_ROW *row)
Definition: lp.c:17280