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