SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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-2026 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:98
SCIP_COLEXACT ** SCIProwExactGetCols(SCIP_ROWEXACT *row)
Definition lpexact.c:5026
SCIP_RATIONAL * SCIProwExactGetRhs(SCIP_ROWEXACT *row)
Definition lpexact.c:6266
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
struct SCIP_Row SCIP_ROW
Definition type_lp.h:105
type definitions for exact LP management
struct SCIP_LpExact SCIP_LPEXACT
struct SCIP_RowExact SCIP_ROWEXACT
struct SCIP_ColExact SCIP_COLEXACT
type definitions for specific LP solvers interface
type definitions for specific exact LP solvers interface
type definitions for miscellaneous datastructures
#define SCIP_DECL_SORTPTRCOMP(x)
Definition type_misc.h:189
type definitions for rational numbers
struct SCIP_Rational SCIP_RATIONAL
type definitions for separators
type definitions for problem variables
struct SCIP_Var SCIP_VAR
Definition type_var.h:166