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-2025 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file pub_lp.h
26 * @ingroup PUBLICCOREAPI
27 * @brief public methods for LP management
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_PUB_LP_H__
34#define __SCIP_PUB_LP_H__
35
36
37#include "lpi/type_lpi.h"
38#include "scip/def.h"
39#include "scip/type_cons.h"
40#include "scip/type_lp.h"
41#include "scip/type_lpexact.h"
42#include "scip/type_sepa.h"
43#include "scip/type_var.h"
44#include "scip/type_misc.h"
45
46#ifdef NDEBUG
47#include "scip/struct_lp.h"
48#endif
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54
55/**@addtogroup PublicColumnMethods
56 *
57 * @{
58 */
59
60/** sorts column entries such that LP rows precede non-LP rows and inside both parts lower row indices precede higher ones
61 */
62SCIP_EXPORT
63void SCIPcolSort(
64 SCIP_COL* col /**< column to be sorted */
65 );
66
67/** gets objective value of column */
68SCIP_EXPORT
70 SCIP_COL* col /**< LP column */
71 );
72
73/** gets lower bound of column */
74SCIP_EXPORT
76 SCIP_COL* col /**< LP column */
77 );
78
79/** gets upper bound of column */
80SCIP_EXPORT
82 SCIP_COL* col /**< LP column */
83 );
84
85/** gets best bound of column with respect to the objective function */
86SCIP_EXPORT
88 SCIP_COL* col /**< LP column */
89 );
90
91/** gets the primal LP solution of a column */
92SCIP_EXPORT
94 SCIP_COL* col /**< LP column */
95 );
96
97/** gets the minimal LP solution value, this column ever assumed */
98SCIP_EXPORT
100 SCIP_COL* col /**< LP column */
101 );
102
103/** gets the maximal LP solution value, this column ever assumed */
104SCIP_EXPORT
106 SCIP_COL* col /**< LP column */
107 );
108
109/** gets the basis status of a column in the LP solution; only valid for LPs with status SCIP_LPSOLSTAT_OPTIMAL
110 * and with SCIPisLPSolBasic(scip) == TRUE; returns SCIP_BASESTAT_ZERO for columns not in the current SCIP_LP
111 */
112SCIP_EXPORT
114 SCIP_COL* col /**< LP column */
115 );
116
117/** gets variable this column represents */
118SCIP_EXPORT
120 SCIP_COL* col /**< LP column */
121 );
122
123/** gets unique index of col */
124SCIP_EXPORT
126 SCIP_COL* col /**< LP col */
127 );
128
129/** gets probindex of corresponding variable */
130SCIP_EXPORT
132 SCIP_COL* col /**< LP col */
133 );
134
135/** returns whether the associated variable is of integral type (binary, integer, or implied integral) */
136SCIP_EXPORT
138 SCIP_COL* col /**< LP column */
139 );
140
141/** returns whether the associated variable is implied integral */
142SCIP_EXPORT
144 SCIP_COL* col /**< LP column */
145 );
146
147/** returns TRUE iff column is removable from the LP (due to aging or cleanup) */
148SCIP_EXPORT
150 SCIP_COL* col /**< LP column */
151 );
152
153/** gets position of column in current LP, or -1 if it is not in LP */
154SCIP_EXPORT
156 SCIP_COL* col /**< LP column */
157 );
158
159/** gets depth in the tree where the column entered the LP, or -1 if it is not in LP */
160SCIP_EXPORT
162 SCIP_COL* col /**< LP column */
163 );
164
165/** returns TRUE iff column is member of current LP */
166SCIP_EXPORT
168 SCIP_COL* col /**< LP column */
169 );
170
171/** get number of nonzero entries in column vector */
172SCIP_EXPORT
174 SCIP_COL* col /**< LP column */
175 );
176
177/** get number of nonzero entries in column vector, that correspond to rows currently in the SCIP_LP;
178 *
179 * @warning This method is only applicable on columns, that are completely linked to their rows (e.g. a column
180 * 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
181 */
182SCIP_EXPORT
184 SCIP_COL* col /**< LP column */
185 );
186
187/** gets array with rows of nonzero entries */
188SCIP_EXPORT
190 SCIP_COL* col /**< LP column */
191 );
192
193/** gets array with coefficients of nonzero entries */
194SCIP_EXPORT
196 SCIP_COL* col /**< LP column */
197 );
198
199/** gets node number of the last node in current branch and bound run, where strong branching was used on the
200 * given column, or -1 if strong branching was never applied to the column in current run
201 */
202SCIP_EXPORT
204 SCIP_COL* col /**< LP column */
205 );
206
207/** gets number of times, strong branching was applied in current run on the given column */
208SCIP_EXPORT
210 SCIP_COL* col /**< LP column */
211 );
212
213/** 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 */
214SCIP_EXPORT
215int SCIPcolGetAge(
216 SCIP_COL* col /**< LP column */
217 );
218
219/** gets opposite bound type of given bound type */
220SCIP_EXPORT
222 SCIP_BOUNDTYPE boundtype /**< type of bound (lower or upper) */
223 );
224
225#ifdef NDEBUG
226
227/* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
228 * speed up the algorithms.
229 */
230
231#define SCIPcolGetObj(col) (col)->obj
232#define SCIPcolGetLb(col) (col)->lb
233#define SCIPcolGetUb(col) (col)->ub
234#define SCIPcolGetBestBound(col) ((col)->obj >= 0.0 ? (col)->lb : (col)->ub)
235#define SCIPcolGetPrimsol(col) ((col)->lppos >= 0 ? (col)->primsol : 0.0)
236#define SCIPcolGetMinPrimsol(col) ((col)->minprimsol)
237#define SCIPcolGetMaxPrimsol(col) ((col)->maxprimsol)
238#define SCIPcolGetBasisStatus(col) ((SCIP_BASESTAT)(col)->basisstatus)
239#define SCIPcolGetVar(col) (col)->var
240#define SCIPcolGetIndex(col) (col)->index
241#define SCIPcolIsIntegral(col) (col)->integral
242#define SCIPcolIsRemovable(col) (col)->removable
243#define SCIPcolGetLPPos(col) (col)->lppos
244#define SCIPcolGetLPDepth(col) (col)->lpdepth
245#define SCIPcolIsInLP(col) ((col)->lppos >= 0)
246#define SCIPcolGetNNonz(col) (col)->len
247#define SCIPcolGetNLPNonz(col) (col)->nlprows
248#define SCIPcolGetRows(col) (col)->rows
249#define SCIPcolGetVals(col) (col)->vals
250#define SCIPcolGetStrongbranchNode(col) (col)->sbnode
251#define SCIPcolGetNStrongbranchs(col) (col)->nsbcalls
252#define SCIPcolGetAge(col) (col)->age
253#define SCIPboundtypeOpposite(boundtype) \
254 ((boundtype) == SCIP_BOUNDTYPE_LOWER ? SCIP_BOUNDTYPE_UPPER : SCIP_BOUNDTYPE_LOWER)
255
256#endif
257
258/**@} */
259
260
261
262/**@addtogroup PublicRowMethods
263 *
264 * @{
265 */
266
267/** comparison method for sorting rows by non-decreasing index */
268SCIP_EXPORT
269SCIP_DECL_SORTPTRCOMP(SCIProwComp);
270
271/** locks an unmodifiable row, which forbids further changes; has no effect on modifiable rows */
272SCIP_EXPORT
273void SCIProwLock(
274 SCIP_ROW* row /**< LP row */
275 );
276
277/** unlocks a lock of an unmodifiable row; a row with no sealed lock may be modified; has no effect on modifiable rows */
278SCIP_EXPORT
279void SCIProwUnlock(
280 SCIP_ROW* row /**< LP row */
281 );
282
283/** returns the scalar product of the coefficient vectors of the two given rows */
284SCIP_EXPORT
286 SCIP_ROW* row1, /**< first LP row */
287 SCIP_ROW* row2 /**< second LP row */
288 );
289
290/** returns the degree of parallelism between the hyperplanes defined by the two row vectors v, w:
291 * p = |v*w|/(|v|*|w|);
292 * the hyperplanes are parallel, iff p = 1, they are orthogonal, iff p = 0
293 */
294SCIP_EXPORT
296 SCIP_ROW* row1, /**< first LP row */
297 SCIP_ROW* row2, /**< second LP row */
298 char orthofunc /**< function used for calc. scalar prod. ('e'uclidean, 'd'iscrete) */
299 );
300
301/** returns the degree of orthogonality between the hyperplanes defined by the two row vectors v, w:
302 * o = 1 - |v*w|/(|v|*|w|);
303 * the hyperplanes are orthogonal, iff p = 1, they are parallel, iff p = 0
304 */
305SCIP_EXPORT
307 SCIP_ROW* row1, /**< first LP row */
308 SCIP_ROW* row2, /**< second LP row */
309 char orthofunc /**< function used for calc. scalar prod. ('e'uclidean, 'd'iscrete) */
310 );
311
312/** sorts row entries such that LP columns precede non-LP columns and inside both parts lower column indices precede
313 * higher ones
314 */
315SCIP_EXPORT
316void SCIProwSort(
317 SCIP_ROW* row /**< row to be sorted */
318 );
319
320/** get number of nonzero entries in row vector */
321SCIP_EXPORT
323 SCIP_ROW* row /**< LP row */
324 );
325
326/** get number of nonzero entries in row vector, that correspond to columns currently in the SCIP_LP;
327 *
328 * @warning This method is only applicable on rows, that are completely linked to their columns (e.g. a row
329 * 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
330 */
331SCIP_EXPORT
333 SCIP_ROW* row /**< LP row */
334 );
335
336/** gets array with columns of nonzero entries */
337SCIP_EXPORT
339 SCIP_ROW* row /**< LP row */
340 );
341
342/** gets array with coefficients of nonzero entries */
343SCIP_EXPORT
345 SCIP_ROW* row /**< LP row */
346 );
347
348/** gets constant shift of row */
349SCIP_EXPORT
351 SCIP_ROW* row /**< LP row */
352 );
353
354/** gets Euclidean norm of row vector */
355SCIP_EXPORT
357 SCIP_ROW* row /**< LP row */
358 );
359
360/** gets sum norm of row vector (sum of absolute values of coefficients) */
361SCIP_EXPORT
363 SCIP_ROW* row /**< LP row */
364 );
365
366/** returns the left hand side of the row */
367SCIP_EXPORT
369 SCIP_ROW* row /**< LP row */
370 );
371
372/** returns the right hand side of the row */
373SCIP_EXPORT
375 SCIP_ROW* row /**< LP row */
376 );
377
378/** gets the dual LP solution of a row */
379SCIP_EXPORT
381 SCIP_ROW* row /**< LP row */
382 );
383
384/** gets the dual Farkas coefficient of a row in an infeasible LP */
385SCIP_EXPORT
387 SCIP_ROW* row /**< LP row */
388 );
389
390/** gets the basis status of a row in the LP solution; only valid for LPs with status SCIP_LPSOLSTAT_OPTIMAL
391 * and with SCIPisLPSolBasic(scip) == TRUE; returns SCIP_BASESTAT_BASIC for rows not in the current SCIP_LP
392 */
393SCIP_EXPORT
395 SCIP_ROW* row /**< LP row */
396 );
397
398/** returns the name of the row */
399SCIP_EXPORT
400const char* SCIProwGetName(
401 SCIP_ROW* row /**< LP row */
402 );
403
404/** gets unique index of row */
405SCIP_EXPORT
407 SCIP_ROW* row /**< LP row */
408 );
409
410/** gets age of row */
411SCIP_EXPORT
412int SCIProwGetAge(
413 SCIP_ROW* row /**< LP row */
414 );
415
416/** gets rank of row */
417SCIP_EXPORT
419 SCIP_ROW* row /**< LP row */
420 );
421
422/** returns TRUE if the activity of the row (without the row's constant) is integral for an optimal solution */
423SCIP_EXPORT
425 SCIP_ROW* row /**< LP row */
426 );
427
428/** returns TRUE iff row is only valid locally */
429SCIP_EXPORT
431 SCIP_ROW* row /**< LP row */
432 );
433
434/** returns TRUE iff row is modifiable during node processing (subject to column generation) */
435SCIP_EXPORT
437 SCIP_ROW* row /**< LP row */
438 );
439
440/** returns TRUE iff row is removable from the LP (due to aging or cleanup) */
441SCIP_EXPORT
443 SCIP_ROW* row /**< LP row */
444 );
445
446/** returns type of origin that created the row */
447SCIP_EXPORT
449 SCIP_ROW* row /**< LP row */
450 );
451
452/** returns origin constraint handler that created the row (NULL if not available) */
453SCIP_EXPORT
455 SCIP_ROW* row /**< LP row */
456 );
457
458/** returns origin constraint that created the row (NULL if not available) */
459SCIP_EXPORT
461 SCIP_ROW* row /**< LP row */
462 );
463
464/** returns origin separator that created the row (NULL if not available) */
465SCIP_EXPORT
467 SCIP_ROW* row /**< LP row */
468 );
469
470/** returns TRUE iff row is member of the global cut pool */
471SCIP_EXPORT
473 SCIP_ROW* row /**< LP row */
474 );
475
476/** gets position of row in current LP, or -1 if it is not in LP */
477SCIP_EXPORT
479 SCIP_ROW* row /**< LP row */
480 );
481
482/** gets depth in the tree where the row entered the LP, or -1 if it is not in LP */
483SCIP_EXPORT
485 SCIP_ROW* row /**< LP row */
486 );
487
488/** returns TRUE iff row is member of current LP */
489SCIP_EXPORT
491 SCIP_ROW* row /**< LP row */
492 );
493
494/** returns the number of times that this row has been sharp in an optimal LP solution */
495SCIP_EXPORT
497 SCIP_ROW* row /**< row */
498 );
499
500/** returns the number of LPs since this row has been created */
501SCIP_EXPORT
503 SCIP_ROW* row /**< row */
504 );
505
506/** changes the rank of LP row */
507SCIP_EXPORT
508void SCIProwChgRank(
509 SCIP_ROW* row, /**< LP row */
510 int rank /**< new value for rank */
511 );
512
513/** returns exact row corresponding to fprow, if it exists. Otherwise returns NULL */
514SCIP_EXPORT
516 SCIP_ROW* row /**< SCIP row */
517 );
518
519#ifdef NDEBUG
520
521/* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
522 * speed up the algorithms.
523 */
524
525#define SCIProwGetNNonz(row) (row)->len
526#define SCIProwGetNLPNonz(row) (row)->nlpcols
527#define SCIProwGetCols(row) (row)->cols
528#define SCIProwGetVals(row) (row)->vals
529#define SCIProwGetConstant(row) (row)->constant
530#define SCIProwGetNorm(row) sqrt((row)->sqrnorm)
531#define SCIProwGetSumNorm(row) (row)->sumnorm
532#define SCIProwGetLhs(row) (row)->lhs
533#define SCIProwGetRhs(row) (row)->rhs
534#define SCIProwGetDualsol(row) ((row)->lppos >= 0 ? (row)->dualsol : 0.0)
535#define SCIProwGetDualfarkas(row) ((row)->lppos >= 0 ? (row)->dualfarkas : 0.0)
536#define SCIProwGetBasisStatus(row) ((SCIP_BASESTAT) (row)->basisstatus)
537#define SCIProwGetName(row) (row)->name
538#define SCIProwGetIndex(row) (row)->index
539#define SCIProwGetAge(row) (row)->age
540#define SCIProwGetRank(row) (row)->rank
541#define SCIProwIsIntegral(row) (row)->integral
542#define SCIProwIsLocal(row) (row)->local
543#define SCIProwIsModifiable(row) (row)->modifiable
544#define SCIProwIsRemovable(row) (row)->removable
545#define SCIProwGetOrigintype(row) (row)->origintype
546#define SCIProwGetOriginCons(row) ((SCIP_CONS*) ((SCIP_ROWORIGINTYPE) row->origintype == SCIP_ROWORIGINTYPE_CONS ? (row)->origin : NULL))
547#define SCIProwGetOriginSepa(row) ((SCIP_SEPA*) ((SCIP_ROWORIGINTYPE) row->origintype == SCIP_ROWORIGINTYPE_SEPA ? (row)->origin : NULL))
548#define SCIProwIsInGlobalCutpool(row) (row)->inglobalcutpool
549#define SCIProwGetLPPos(row) (row)->lppos
550#define SCIProwGetLPDepth(row) (row)->lpdepth
551#define SCIProwIsInLP(row) ((row)->lppos >= 0)
552#define SCIProwGetActiveLPCount(row) ((row)->activeinlpcounter)
553#define SCIProwGetNLPsAfterCreation(row) ((row)->nlpsaftercreation)
554#define SCIProwChgRank(row, cutrank) ((row)->rank = (cutrank))
555#define SCIProwGetRowExact(row) (row)->rowexact
556
557#endif
558
559/**@} */
560
561#ifdef __cplusplus
562}
563#endif
564
565#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:141
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
SCIP_Real SCIPcolGetMinPrimsol(SCIP_COL *col)
Definition: lp.c:17392
int SCIPcolGetLPPos(SCIP_COL *col)
Definition: lp.c:17487
int SCIPcolGetVarProbindex(SCIP_COL *col)
Definition: lp.c:17445
SCIP_Bool SCIPcolIsRemovable(SCIP_COL *col)
Definition: lp.c:17477
SCIP_VAR * SCIPcolGetVar(SCIP_COL *col)
Definition: lp.c:17425
SCIP_Bool SCIPcolIsIntegral(SCIP_COL *col)
Definition: lp.c:17455
SCIP_Bool SCIPcolIsImpliedIntegral(SCIP_COL *col)
Definition: lp.c:17466
SCIP_Real SCIPcolGetObj(SCIP_COL *col)
Definition: lp.c:17336
int SCIPcolGetNNonz(SCIP_COL *col)
Definition: lp.c:17520
SCIP_Real * SCIPcolGetVals(SCIP_COL *col)
Definition: lp.c:17555
SCIP_ROW ** SCIPcolGetRows(SCIP_COL *col)
Definition: lp.c:17545
void SCIPcolSort(SCIP_COL *col)
Definition: lp.c:3630
int SCIPcolGetIndex(SCIP_COL *col)
Definition: lp.c:17435
SCIP_Real SCIPcolGetBestBound(SCIP_COL *col)
Definition: lp.c:17366
SCIP_Real SCIPcolGetLb(SCIP_COL *col)
Definition: lp.c:17346
SCIP_Real SCIPcolGetPrimsol(SCIP_COL *col)
Definition: lp.c:17379
SCIP_Real SCIPcolGetUb(SCIP_COL *col)
Definition: lp.c:17356
SCIP_Longint SCIPcolGetStrongbranchNode(SCIP_COL *col)
Definition: lp.c:17567
int SCIPcolGetNLPNonz(SCIP_COL *col)
Definition: lp.c:17534
int SCIPcolGetNStrongbranchs(SCIP_COL *col)
Definition: lp.c:17577
int SCIPcolGetAge(SCIP_COL *col)
Definition: lp.c:17587
SCIP_Bool SCIPcolIsInLP(SCIP_COL *col)
Definition: lp.c:17509
int SCIPcolGetLPDepth(SCIP_COL *col)
Definition: lp.c:17498
SCIP_BASESTAT SCIPcolGetBasisStatus(SCIP_COL *col)
Definition: lp.c:17414
SCIP_BOUNDTYPE SCIPboundtypeOpposite(SCIP_BOUNDTYPE boundtype)
Definition: lp.c:17597
SCIP_Real SCIPcolGetMaxPrimsol(SCIP_COL *col)
Definition: lp.c:17402
SCIP_Bool SCIProwIsIntegral(SCIP_ROW *row)
Definition: lp.c:17785
void SCIProwSort(SCIP_ROW *row)
Definition: lp.c:6232
SCIP_Real SCIProwGetLhs(SCIP_ROW *row)
Definition: lp.c:17686
SCIP_Bool SCIProwIsModifiable(SCIP_ROW *row)
Definition: lp.c:17805
SCIP_Longint SCIProwGetActiveLPCount(SCIP_ROW *row)
Definition: lp.c:17939
SCIP_Real SCIProwGetOrthogonality(SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
Definition: lp.c:8034
SCIP_Real SCIProwGetScalarProduct(SCIP_ROW *row1, SCIP_ROW *row2)
Definition: lp.c:7254
int SCIProwGetLPDepth(SCIP_ROW *row)
Definition: lp.c:17906
SCIP_Real SCIProwGetParallelism(SCIP_ROW *row1, SCIP_ROW *row2, char orthofunc)
Definition: lp.c:7970
SCIP_CONS * SCIProwGetOriginCons(SCIP_ROW *row)
Definition: lp.c:17835
int SCIProwGetNNonz(SCIP_ROW *row)
Definition: lp.c:17607
SCIP_COL ** SCIProwGetCols(SCIP_ROW *row)
Definition: lp.c:17632
SCIP_Bool SCIProwIsInGlobalCutpool(SCIP_ROW *row)
Definition: lp.c:17885
SCIP_Real SCIProwGetRhs(SCIP_ROW *row)
Definition: lp.c:17696
int SCIProwGetAge(SCIP_ROW *row)
Definition: lp.c:17765
int SCIProwGetNLPNonz(SCIP_ROW *row)
Definition: lp.c:17621
SCIP_Real SCIProwGetNorm(SCIP_ROW *row)
Definition: lp.c:17662
int SCIProwGetLPPos(SCIP_ROW *row)
Definition: lp.c:17895
SCIP_Bool SCIProwIsLocal(SCIP_ROW *row)
Definition: lp.c:17795
SCIP_CONSHDLR * SCIProwGetOriginConshdlr(SCIP_ROW *row)
Definition: lp.c:17850
SCIP_Longint SCIProwGetNLPsAfterCreation(SCIP_ROW *row)
Definition: lp.c:17949
void SCIProwLock(SCIP_ROW *row)
Definition: lp.c:5594
SCIP_Bool SCIProwIsRemovable(SCIP_ROW *row)
Definition: lp.c:17815
const char * SCIProwGetName(SCIP_ROW *row)
Definition: lp.c:17745
SCIP_SEPA * SCIProwGetOriginSepa(SCIP_ROW *row)
Definition: lp.c:17870
void SCIProwUnlock(SCIP_ROW *row)
Definition: lp.c:5609
SCIP_Real SCIProwGetSumNorm(SCIP_ROW *row)
Definition: lp.c:17674
SCIP_DECL_SORTPTRCOMP(SCIProwComp)
Definition: lp.c:1079
int SCIProwGetRank(SCIP_ROW *row)
Definition: lp.c:17775
SCIP_Real SCIProwGetDualfarkas(SCIP_ROW *row)
Definition: lp.c:17719
int SCIProwGetIndex(SCIP_ROW *row)
Definition: lp.c:17755
void SCIProwChgRank(SCIP_ROW *row, int rank)
Definition: lp.c:17928
SCIP_Real SCIProwGetConstant(SCIP_ROW *row)
Definition: lp.c:17652
SCIP_ROWEXACT * SCIProwGetRowExact(SCIP_ROW *row)
Definition: lp.c:17959
SCIP_Bool SCIProwIsInLP(SCIP_ROW *row)
Definition: lp.c:17917
SCIP_Real SCIProwGetDualsol(SCIP_ROW *row)
Definition: lp.c:17706
SCIP_Real * SCIProwGetVals(SCIP_ROW *row)
Definition: lp.c:17642
SCIP_ROWORIGINTYPE SCIProwGetOrigintype(SCIP_ROW *row)
Definition: lp.c:17825
SCIP_BASESTAT SCIProwGetBasisStatus(SCIP_ROW *row)
Definition: lp.c:17734
data structures for LP management
type definitions for constraints and constraint handlers
type definitions for LP management
enum SCIP_RowOriginType SCIP_ROWORIGINTYPE
Definition: type_lp.h:79
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition: type_lp.h:60
type definitions for exact LP management
type definitions for specific LP solvers interface
enum SCIP_BaseStat SCIP_BASESTAT
Definition: type_lpi.h:96
type definitions for miscellaneous datastructures
type definitions for separators
type definitions for problem variables