Scippy

    SCIP

    Solving Constraint Integer Programs

    pub_lpexact.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_lpexact.h
    26 * @ingroup PUBLICCOREAPI
    27 * @brief public methods for LP management
    28 * @author Leon Eifler
    29 */
    30
    31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    32
    33#ifndef __SCIP_PUB_LPEXACT_H__
    34#define __SCIP_PUB_LPEXACT_H__
    35
    36
    37#include "lpi/type_lpi.h"
    39#include "scip/def.h"
    40#include "scip/type_cons.h"
    41#include "scip/type_lp.h"
    42#include "scip/type_lpexact.h"
    43#include "scip/type_rational.h"
    44#include "scip/type_sepa.h"
    45#include "scip/type_var.h"
    46#include "scip/type_misc.h"
    47
    48#ifdef __cplusplus
    49extern "C" {
    50#endif
    51
    52/** comparison method for sorting rows by non-decreasing index */
    53SCIP_EXPORT
    54SCIP_DECL_SORTPTRCOMP(SCIProwExactComp);
    55
    56/** gets variable this column represents */
    57SCIP_EXPORT
    59 SCIP_COLEXACT* col /**< LP column */
    60 );
    61
    62/** returns the left hand side of the row */
    63SCIP_EXPORT
    65 SCIP_ROWEXACT* row /**< LP row */
    66 );
    67
    68/** returns the right hand side of the row */
    69SCIP_EXPORT
    71 SCIP_ROWEXACT* row /**< LP row */
    72 );
    73
    74/** returns the constant of the row */
    75SCIP_EXPORT
    77 SCIP_ROWEXACT* row /**< LP row */
    78 );
    79
    80/** gets the length of a row */
    81SCIP_EXPORT
    83 SCIP_ROWEXACT* row /**< LP row */
    84 );
    85
    86/** gets array with coefficients of nonzero entries */
    87SCIP_EXPORT
    89 SCIP_ROWEXACT* row /**< LP row */
    90 );
    91
    92/** returns TRUE iff row is member of current LP */
    93SCIP_EXPORT
    95 SCIP_ROWEXACT* row /**< LP row */
    96 );
    97
    98/** sorts row entries such that LP columns precede non-LP columns and inside both parts lower column indices precede
    99 * higher ones
    100 */
    101SCIP_EXPORT
    103 SCIP_ROWEXACT* row /**< row to be sorted */
    104 );
    105
    106/** gets array of exact columns */
    107SCIP_EXPORT
    109 SCIP_ROWEXACT* row /**< LP row */
    110 );
    111
    112/** locks an unmodifiable row, which forbids further changes; has no effect on modifiable rows */
    113SCIP_EXPORT
    115 SCIP_ROWEXACT* row /**< LP row */
    116 );
    117
    118/** unlocks a lock of an unmodifiable row; a row with no sealed lock may be modified; has no effect on modifiable rows */
    119SCIP_EXPORT
    121 SCIP_ROWEXACT* row /**< LP row */
    122 );
    123
    124/** returns fp row corresponding to exact row, if it exists. Otherwise returns NULL */
    125SCIP_EXPORT
    127 SCIP_ROWEXACT* row /**< SCIP row */
    128 );
    129
    130/** returns rhs-relaxation part of exact row, if it exists. Otherwise returns NULL */
    131SCIP_EXPORT
    133 SCIP_ROWEXACT* row /**< SCIP row */
    134 );
    135
    136/** true if row can be relaxed (possibly as two fp rows) */
    137SCIP_EXPORT
    139 SCIP_ROWEXACT* row /**< SCIP row */
    140 );
    141
    142/** returns whether the exact LP is in diving mode */
    143SCIP_EXPORT
    145 SCIP_LPEXACT* lpexact /**< current exact LP data */
    146 );
    147
    148#ifdef __cplusplus
    149}
    150#endif
    151
    152#endif
    common defines and data types used in all packages of SCIP
    #define SCIP_Bool
    Definition: def.h:91
    SCIP_COLEXACT ** SCIProwExactGetCols(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5026
    SCIP_RATIONAL * SCIProwExactGetRhs(SCIP_ROWEXACT *row)
    Definition: lpexact.c:6266
    SCIP_DECL_SORTPTRCOMP(SCIProwExactComp)
    Definition: lpexact.c:77
    void SCIProwExactUnlock(SCIP_ROWEXACT *row)
    Definition: lpexact.c:7957
    SCIP_Bool SCIProwExactIsInLP(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5036
    SCIP_ROW * SCIProwExactGetRow(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5069
    SCIP_Bool SCIProwExactHasFpRelax(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5089
    SCIP_RATIONAL * SCIProwExactGetConstant(SCIP_ROWEXACT *row)
    Definition: lpexact.c:6277
    SCIP_VAR * SCIPcolExactGetVar(SCIP_COLEXACT *col)
    Definition: lpexact.c:6052
    SCIP_RATIONAL * SCIProwExactGetLhs(SCIP_ROWEXACT *row)
    Definition: lpexact.c:6255
    void SCIProwExactLock(SCIP_ROWEXACT *row)
    Definition: lpexact.c:7943
    SCIP_Bool SCIPlpExactDiving(SCIP_LPEXACT *lpexact)
    Definition: lpexact.c:8423
    SCIP_ROW * SCIProwExactGetRowRhs(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5079
    SCIP_RATIONAL ** SCIProwExactGetVals(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5016
    void SCIProwExactSort(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5755
    int SCIProwExactGetNNonz(SCIP_ROWEXACT *row)
    Definition: lpexact.c:5006
    type definitions for constraints and constraint handlers
    type definitions for LP management
    type definitions for exact LP management
    type definitions for specific LP solvers interface
    type definitions for specific exact LP solvers interface
    type definitions for miscellaneous datastructures
    type definitions for rational numbers
    type definitions for separators
    type definitions for problem variables