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