Scippy

SCIP

Solving Constraint Integer Programs

type_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-2024 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 type_lp.h
26 * @brief type definitions for LP management
27 * @author Tobias Achterberg
28 */
29
30/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
31
32#ifndef __SCIP_TYPE_LP_H__
33#define __SCIP_TYPE_LP_H__
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39/** solution status after solving LP */
41{
42 SCIP_LPSOLSTAT_NOTSOLVED = 0, /**< LP was not solved, no solution exists */
43 SCIP_LPSOLSTAT_OPTIMAL = 1, /**< LP was solved to optimality */
44 SCIP_LPSOLSTAT_INFEASIBLE = 2, /**< LP is primal infeasible */
45 SCIP_LPSOLSTAT_UNBOUNDEDRAY = 3, /**< LP has a primal unbounded ray */
46 SCIP_LPSOLSTAT_OBJLIMIT = 4, /**< objective limit was reached during optimization */
47 SCIP_LPSOLSTAT_ITERLIMIT = 5, /**< iteration limit was reached during optimization */
48 SCIP_LPSOLSTAT_TIMELIMIT = 6, /**< time limit was reached during optimization */
49 SCIP_LPSOLSTAT_ERROR = 7 /**< an error occured during optimization */
50};
52
53/** type of variable bound: lower or upper bound */
55{
56 SCIP_BOUNDTYPE_LOWER = 0, /**< lower bound */
57 SCIP_BOUNDTYPE_UPPER = 1 /**< upper bound */
58};
60
61/** type of row side: left hand or right hand side */
63{
64 SCIP_SIDETYPE_LEFT = 0, /**< left hand side */
65 SCIP_SIDETYPE_RIGHT = 1 /**< right hand side */
66};
68
69/** type of origin of row */
71{
72 SCIP_ROWORIGINTYPE_UNSPEC = 0, /**< unspecified origin of row */
73 SCIP_ROWORIGINTYPE_CONSHDLR = 1, /**< row created by a constraint handler */
74 SCIP_ROWORIGINTYPE_CONS = 2, /**< row created by a constraint */
75 SCIP_ROWORIGINTYPE_SEPA = 3, /**< row created by separator */
76 SCIP_ROWORIGINTYPE_REOPT = 4 /**< row created by reoptimization */
77};
79
80/** type of LP algorithm */
82{
83 SCIP_LPALGO_PRIMALSIMPLEX = 0, /**< primal simplex */
84 SCIP_LPALGO_DUALSIMPLEX = 1, /**< dual simplex */
85 SCIP_LPALGO_BARRIER = 2, /**< barrier algorithm */
86 SCIP_LPALGO_BARRIERCROSSOVER = 3 /**< barrier algorithm with crossover */
87};
89
90typedef struct SCIP_ColSolVals SCIP_COLSOLVALS; /**< collected values of a column which depend on the LP solution */
91typedef struct SCIP_RowSolVals SCIP_ROWSOLVALS; /**< collected values of a row which depend on the LP solution */
92typedef struct SCIP_LpSolVals SCIP_LPSOLVALS; /**< collected values of the LP data which depend on the LP solution */
93
94/** column of an LP
95 *
96 * - \ref PublicColumnMethods "List of all available methods"
97 */
98typedef struct SCIP_Col SCIP_COL;
99
100/** row of an LP
101 *
102 * - \ref PublicRowMethods "List of all available methods"
103 */
104typedef struct SCIP_Row SCIP_ROW;
105
106/** LP structure
107 *
108 * - \ref PublicLPMethods "List of all available methods"
109 */
110typedef struct SCIP_Lp SCIP_LP;
111
112#ifdef __cplusplus
113}
114#endif
115
116#endif
enum SCIP_RowOriginType SCIP_ROWORIGINTYPE
Definition: type_lp.h:78
SCIP_LPAlgo
Definition: type_lp.h:82
@ SCIP_LPALGO_BARRIER
Definition: type_lp.h:85
@ SCIP_LPALGO_PRIMALSIMPLEX
Definition: type_lp.h:83
@ SCIP_LPALGO_BARRIERCROSSOVER
Definition: type_lp.h:86
@ SCIP_LPALGO_DUALSIMPLEX
Definition: type_lp.h:84
enum SCIP_LPSolStat SCIP_LPSOLSTAT
Definition: type_lp.h:51
SCIP_RowOriginType
Definition: type_lp.h:71
@ SCIP_ROWORIGINTYPE_CONSHDLR
Definition: type_lp.h:73
@ SCIP_ROWORIGINTYPE_REOPT
Definition: type_lp.h:76
@ SCIP_ROWORIGINTYPE_UNSPEC
Definition: type_lp.h:72
@ SCIP_ROWORIGINTYPE_SEPA
Definition: type_lp.h:75
@ SCIP_ROWORIGINTYPE_CONS
Definition: type_lp.h:74
SCIP_BoundType
Definition: type_lp.h:55
@ SCIP_BOUNDTYPE_UPPER
Definition: type_lp.h:57
@ SCIP_BOUNDTYPE_LOWER
Definition: type_lp.h:56
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition: type_lp.h:59
SCIP_SideType
Definition: type_lp.h:63
@ SCIP_SIDETYPE_RIGHT
Definition: type_lp.h:65
@ SCIP_SIDETYPE_LEFT
Definition: type_lp.h:64
SCIP_LPSolStat
Definition: type_lp.h:41
@ SCIP_LPSOLSTAT_ERROR
Definition: type_lp.h:49
@ SCIP_LPSOLSTAT_NOTSOLVED
Definition: type_lp.h:42
@ SCIP_LPSOLSTAT_OPTIMAL
Definition: type_lp.h:43
@ SCIP_LPSOLSTAT_TIMELIMIT
Definition: type_lp.h:48
@ SCIP_LPSOLSTAT_UNBOUNDEDRAY
Definition: type_lp.h:45
@ SCIP_LPSOLSTAT_INFEASIBLE
Definition: type_lp.h:44
@ SCIP_LPSOLSTAT_OBJLIMIT
Definition: type_lp.h:46
@ SCIP_LPSOLSTAT_ITERLIMIT
Definition: type_lp.h:47
enum SCIP_LPAlgo SCIP_LPALGO
Definition: type_lp.h:88
enum SCIP_SideType SCIP_SIDETYPE
Definition: type_lp.h:67