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