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-2023 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_interrupt.h"
44 #include "scip/type_mem.h"
45 #include "scip/type_lp.h"
46 #include "scip/type_nlp.h"
47 #include "scip/type_implics.h"
48 #include "scip/type_prob.h"
49 #include "scip/type_primal.h"
50 #include "scip/type_relax.h"
51 #include "scip/type_tree.h"
52 #include "scip/type_pricestore.h"
53 #include "scip/type_sepastore.h"
55 #include "scip/type_cutpool.h"
56 #include "scip/type_branch.h"
57 #include "scip/type_conflict.h"
58 #include "scip/type_dialog.h"
59 #include "scip/type_reopt.h"
60 #include "scip/type_concurrent.h"
61 #include "scip/type_syncstore.h"
62 
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66 
67 /** SCIP main data structure */
68 struct Scip
69 {
70  /* INIT */
71  SCIP_MEM* mem; /**< block memory buffers */
72  SCIP_SET* set; /**< global SCIP settings */
73  SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */
74  SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */
75  SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */
76  SCIP_CLOCK* totaltime; /**< total SCIP running time */
77 
78  /* PROBLEM */
79  SCIP_STAT* stat; /**< dynamic problem statistics */
80  SCIP_PROB* origprob; /**< original problem data */
81  SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */
82  SCIP_DECOMPSTORE* decompstore; /**< decomposition storage data structure */
83 
84  /* REOPTIMIZATION */
85  SCIP_REOPT* reopt; /**< reoptimization data */
86 
87  /* TRANSFORMED */
88  SCIP_EVENTFILTER* eventfilter; /**< event filter for global (not variable dependent) events */
89  SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */
90  SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */
91  SCIP_LP* lp; /**< LP data */
92  SCIP_NLP* nlp; /**< NLP data */
93  SCIP_RELAXATION* relaxation; /**< global relaxation data */
94  SCIP_PRIMAL* primal; /**< primal data and solution storage */
95  SCIP_TREE* tree; /**< branch and bound tree */
96  SCIP_CONFLICT* conflict; /**< conflict analysis data */
97  SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */
98  SCIP_PROB* transprob; /**< transformed problem after presolve */
99 
100  /* SOLVING */
101  SCIP_PRICESTORE* pricestore; /**< storage for priced variables */
102  SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */
103  SCIP_SEPASTORE* sepastoreprobing; /**< storage for separated cuts during probing mode */
104  SCIP_CONFLICTSTORE* conflictstore; /**< storage for conflicts */
105  SCIP_CUTPOOL* cutpool; /**< global cut pool */
106  SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */
107 
108  /* PARALLEL */
109  SCIP_SYNCSTORE* syncstore; /**< the data structure for storing synchronization information */
110  SCIP_CONCURRENT* concurrent; /**< data required for concurrent solve */
111 };
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif
SCIP_STAT * stat
Definition: struct_scip.h:79
type definitions for implications, variable bounds, and cliques
SCIP_CONFLICT * conflict
Definition: struct_scip.h:96
type definitions for NLP management
type definitions for conflict store
SCIP_PRIMAL * origprimal
Definition: struct_scip.h:81
SCIP_EVENTQUEUE * eventqueue
Definition: struct_scip.h:89
SCIP_CLOCK * totaltime
Definition: struct_scip.h:76
SCIP_PRIMAL * primal
Definition: struct_scip.h:94
SCIP_CUTPOOL * delayedcutpool
Definition: struct_scip.h:106
SCIP_CONCURRENT * concurrent
Definition: struct_scip.h:110
SCIP_BRANCHCAND * branchcand
Definition: struct_scip.h:90
type definitions for storing priced variables
type definitions for global SCIP settings
SCIP_PROB * transprob
Definition: struct_scip.h:98
type definitions for collecting reoptimization information
type definitions for branching rules
SCIP_PROB * origprob
Definition: struct_scip.h:80
type definitions for problem statistics
SCIP_DIALOGHDLR * dialoghdlr
Definition: struct_scip.h:74
type definitions for LP management
SCIP_PRICESTORE * pricestore
Definition: struct_scip.h:101
SCIP_MEM * mem
Definition: struct_scip.h:71
SCIP_EVENTFILTER * eventfilter
Definition: struct_scip.h:88
SCIP_INTERRUPT * interrupt
Definition: struct_scip.h:73
SCIP_SYNCSTORE * syncstore
Definition: struct_scip.h:109
type definition of concurrent data
type definitions for storing cuts in a cut pool
SCIP_CONFLICTSTORE * conflictstore
Definition: struct_scip.h:104
SCIP_REOPT * reopt
Definition: struct_scip.h:85
type definitions for storing separated cuts
type definitions for relaxators
type definitions for conflict analysis
SCIP_DECOMPSTORE * decompstore
Definition: struct_scip.h:82
type definitions for managing events
SCIP_CUTPOOL * cutpool
Definition: struct_scip.h:105
SCIP_CLIQUETABLE * cliquetable
Definition: struct_scip.h:97
SCIP_SEPASTORE * sepastore
Definition: struct_scip.h:102
type definitions for branch and bound tree
type definitions for clocks and timing issues
type definitions for storing and manipulating the main problem
type definitions for block memory pools and memory buffers
the type definitions for the synchronization store
SCIP_MESSAGEHDLR * messagehdlr
Definition: struct_scip.h:75
type definitions for user interface dialog
SCIP_NLP * nlp
Definition: struct_scip.h:92
type definitions for decompositions and the decomposition store
SCIP_TREE * tree
Definition: struct_scip.h:95
SCIP_RELAXATION * relaxation
Definition: struct_scip.h:93
type definitions for collecting primal CIP solutions and primal informations
common defines and data types used in all packages of SCIP
SCIP_LP * lp
Definition: struct_scip.h:91
SCIP_SEPASTORE * sepastoreprobing
Definition: struct_scip.h:103
type definitions for catching the user CTRL-C interrupt