Scippy

SCIP

Solving Constraint Integer Programs

struct_scip.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 struct_scip.h
26 * @ingroup INTERNALAPI
27 * @brief SCIP main data structure
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_STRUCT_SCIP_H__
34#define __SCIP_STRUCT_SCIP_H__
35
36
37#include "scip/def.h"
38#include "scip/type_set.h"
39#include "scip/type_stat.h"
40#include "scip/type_clock.h"
41#include "scip/type_dcmp.h"
42#include "scip/type_event.h"
43#include "scip/type_iisfinder.h"
44#include "scip/type_interrupt.h"
45#include "scip/type_mem.h"
46#include "scip/type_message.h"
47#include "scip/type_lp.h"
48#include "scip/type_lpexact.h"
49#include "scip/type_nlp.h"
50#include "scip/type_implics.h"
51#include "scip/type_prob.h"
52#include "scip/type_primal.h"
53#include "scip/type_relax.h"
54#include "scip/type_tree.h"
56#include "scip/type_sepastore.h"
58#include "scip/type_cutpool.h"
59#include "scip/type_branch.h"
60#include "scip/type_conflict.h"
61#include "scip/type_dialog.h"
62#include "scip/type_reopt.h"
64#include "scip/type_syncstore.h"
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70/** SCIP main data structure */
71struct Scip
72{
73 /* INIT */
74 SCIP_MEM* mem; /**< block memory buffers */
75 SCIP_SET* set; /**< global SCIP settings */
76 SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */
77 SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */
78 SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */
79 SCIP_CLOCK* totaltime; /**< total SCIP running time */
80
81 /* PROBLEM */
82 SCIP_STAT* stat; /**< dynamic problem statistics */
83 SCIP_PROB* origprob; /**< original problem data */
84 SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */
85 SCIP_DECOMPSTORE* decompstore; /**< decomposition storage data structure */
86
87 /* REOPTIMIZATION */
88 SCIP_REOPT* reopt; /**< reoptimization data */
89
90 /* TRANSFORMED */
91 SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */
92 SCIP_EVENTFILTER* eventfilter; /**< global event filter */
93 SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */
94 SCIP_LP* lp; /**< LP data */
95 SCIP_LPEXACT* lpexact; /**< exact LP data */
96 SCIP_NLP* nlp; /**< NLP data */
97 SCIP_RELAXATION* relaxation; /**< global relaxation data */
98 SCIP_PRIMAL* primal; /**< primal data and solution storage */
99 SCIP_TREE* tree; /**< branch and bound tree */
100 SCIP_CONFLICT* conflict; /**< conflict analysis data */
101 SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */
102 SCIP_PROB* transprob; /**< transformed problem after presolve */
103
104 /* SOLVING */
105 SCIP_PRICESTORE* pricestore; /**< storage for priced variables */
106 SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */
107 SCIP_SEPASTORE* sepastoreprobing; /**< storage for separated cuts during probing mode */
108 SCIP_SEPASTOREEXACT* sepastoreexact; /**< storage for exact cuts */
109 SCIP_CONFLICTSTORE* conflictstore; /**< storage for conflicts */
110 SCIP_CUTPOOL* cutpool; /**< global cut pool */
111 SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */
112
113 /* PARALLEL */
114 SCIP_SYNCSTORE* syncstore; /**< the data structure for storing synchronization information */
115 SCIP_CONCURRENT* concurrent; /**< data required for concurrent solve */
116
117 /* IIS */
118 SCIP_IIS* iis; /**< the data structure for storing IIS information */
119};
120
121#ifdef __cplusplus
122}
123#endif
124
125#endif
common defines and data types used in all packages of SCIP
SCIP_CUTPOOL * cutpool
Definition: struct_scip.h:110
SCIP_PROB * origprob
Definition: struct_scip.h:83
SCIP_CONCURRENT * concurrent
Definition: struct_scip.h:115
SCIP_MEM * mem
Definition: struct_scip.h:74
SCIP_SEPASTOREEXACT * sepastoreexact
Definition: struct_scip.h:108
SCIP_INTERRUPT * interrupt
Definition: struct_scip.h:76
SCIP_REOPT * reopt
Definition: struct_scip.h:88
SCIP_BRANCHCAND * branchcand
Definition: struct_scip.h:93
SCIP_STAT * stat
Definition: struct_scip.h:82
SCIP_EVENTFILTER * eventfilter
Definition: struct_scip.h:92
SCIP_SYNCSTORE * syncstore
Definition: struct_scip.h:114
SCIP_EVENTQUEUE * eventqueue
Definition: struct_scip.h:91
SCIP_SEPASTORE * sepastoreprobing
Definition: struct_scip.h:107
SCIP_MESSAGEHDLR * messagehdlr
Definition: struct_scip.h:78
SCIP_CONFLICTSTORE * conflictstore
Definition: struct_scip.h:109
SCIP_CUTPOOL * delayedcutpool
Definition: struct_scip.h:111
SCIP_IIS * iis
Definition: struct_scip.h:118
SCIP_SET * set
Definition: struct_scip.h:75
SCIP_PRICESTORE * pricestore
Definition: struct_scip.h:105
SCIP_LPEXACT * lpexact
Definition: struct_scip.h:95
SCIP_DECOMPSTORE * decompstore
Definition: struct_scip.h:85
SCIP_LP * lp
Definition: struct_scip.h:94
SCIP_RELAXATION * relaxation
Definition: struct_scip.h:97
SCIP_PRIMAL * origprimal
Definition: struct_scip.h:84
SCIP_PROB * transprob
Definition: struct_scip.h:102
SCIP_CLOCK * totaltime
Definition: struct_scip.h:79
SCIP_DIALOGHDLR * dialoghdlr
Definition: struct_scip.h:77
SCIP_CLIQUETABLE * cliquetable
Definition: struct_scip.h:101
SCIP_SEPASTORE * sepastore
Definition: struct_scip.h:106
SCIP_PRIMAL * primal
Definition: struct_scip.h:98
SCIP_NLP * nlp
Definition: struct_scip.h:96
SCIP_TREE * tree
Definition: struct_scip.h:99
SCIP_CONFLICT * conflict
Definition: struct_scip.h:100
type definitions for branching rules
type definitions for clocks and timing issues
type definition of concurrent data
type definitions for conflict analysis
type definitions for conflict store
type definitions for storing cuts in a cut pool
type definitions for decompositions and the decomposition store
type definitions for user interface dialog
type definitions for managing events
type definitions for IIS
type definitions for implications, variable bounds, and cliques
type definitions for catching the user CTRL-C interrupt
type definitions for LP management
type definitions for exact LP management
type definitions for block memory pools and memory buffers
type definitions for message output methods
type definitions for NLP management
type definitions for storing priced variables
type definitions for collecting primal CIP solutions and primal informations
type definitions for storing and manipulating the main problem
type definitions for relaxators
type definitions for collecting reoptimization information
type definitions for storing separated cuts
type definitions for global SCIP settings
type definitions for problem statistics
the type definitions for the synchronization store
type definitions for branch and bound tree