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-2016 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file struct_scip.h
17  * @brief SCIP main data structure
18  * @author Tobias Achterberg
19  */
20 
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
22 
23 #ifndef __SCIP_STRUCT_SCIP_H__
24 #define __SCIP_STRUCT_SCIP_H__
25 
26 
27 #include "scip/def.h"
28 #include "scip/type_set.h"
29 #include "scip/type_stat.h"
30 #include "scip/type_clock.h"
31 #include "scip/type_interrupt.h"
32 #include "scip/type_mem.h"
33 #include "scip/type_event.h"
34 #include "scip/type_lp.h"
35 #include "scip/type_nlp.h"
36 #include "scip/type_implics.h"
37 #include "scip/type_prob.h"
38 #include "scip/type_primal.h"
39 #include "scip/type_tree.h"
40 #include "scip/type_pricestore.h"
41 #include "scip/type_sepastore.h"
42 #include "scip/type_cutpool.h"
43 #include "scip/type_branch.h"
44 #include "scip/type_conflict.h"
45 #include "scip/type_dialog.h"
46 #include "scip/type_reopt.h"
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
52 /** SCIP main data structure */
53 struct Scip
54 {
55  /* INIT */
56  SCIP_MEM* mem; /**< block memory buffers */
57  SCIP_SET* set; /**< global SCIP settings */
58  SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */
59  SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */
60  SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */
61  SCIP_CLOCK* totaltime; /**< total SCIP running time */
62 
63  /* PROBLEM */
64  SCIP_STAT* stat; /**< dynamic problem statistics */
65  SCIP_PROB* origprob; /**< original problem data */
66  SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */
67 
68  /* REOPTIMIZATION */
69  SCIP_REOPT* reopt; /**< reoptimization data */
70 
71  /* TRANSFORMED */
72  SCIP_EVENTFILTER* eventfilter; /**< event filter for global (not variable dependent) events */
73  SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */
74  SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */
75  SCIP_LP* lp; /**< LP data */
76  SCIP_NLP* nlp; /**< NLP data */
77  SCIP_RELAXATION* relaxation; /**< global relaxation data */
78  SCIP_PRIMAL* primal; /**< primal data and solution storage */
79  SCIP_TREE* tree; /**< branch and bound tree */
80  SCIP_CONFLICT* conflict; /**< conflict analysis data */
81  SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */
82  SCIP_PROB* transprob; /**< transformed problem after presolve */
83 
84  /* SOLVING */
85  SCIP_PRICESTORE* pricestore; /**< storage for priced variables */
86  SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */
87  SCIP_CUTPOOL* cutpool; /**< global cut pool */
88  SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */
89 };
90 
91 #ifdef __cplusplus
92 }
93 #endif
94 
95 #endif
SCIP_STAT * stat
Definition: struct_scip.h:64
type definitions for implications, variable bounds, and cliques
SCIP_CONFLICT * conflict
Definition: struct_scip.h:80
type definitions for NLP management
SCIP_PRIMAL * origprimal
Definition: struct_scip.h:66
SCIP_EVENTQUEUE * eventqueue
Definition: struct_scip.h:73
SCIP_CLOCK * totaltime
Definition: struct_scip.h:61
SCIP_PRIMAL * primal
Definition: struct_scip.h:78
SCIP_CUTPOOL * delayedcutpool
Definition: struct_scip.h:88
SCIP_BRANCHCAND * branchcand
Definition: struct_scip.h:74
type definitions for storing priced variables
type definitions for global SCIP settings
SCIP_PROB * transprob
Definition: struct_scip.h:82
type definitions for collecting reoptimization information
type definitions for branching rules
SCIP_PROB * origprob
Definition: struct_scip.h:65
type definitions for problem statistics
SCIP_DIALOGHDLR * dialoghdlr
Definition: struct_scip.h:59
type definitions for LP management
SCIP_PRICESTORE * pricestore
Definition: struct_scip.h:85
SCIP_MEM * mem
Definition: struct_scip.h:56
SCIP_EVENTFILTER * eventfilter
Definition: struct_scip.h:72
SCIP_INTERRUPT * interrupt
Definition: struct_scip.h:58
type definitions for storing cuts in a cut pool
SCIP_REOPT * reopt
Definition: struct_scip.h:69
type definitions for storing separated cuts
type definitions for conflict analysis
type definitions for managing events
SCIP_CUTPOOL * cutpool
Definition: struct_scip.h:87
SCIP_CLIQUETABLE * cliquetable
Definition: struct_scip.h:81
SCIP_SEPASTORE * sepastore
Definition: struct_scip.h:86
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
SCIP_MESSAGEHDLR * messagehdlr
Definition: struct_scip.h:60
type definitions for user interface dialog
SCIP_NLP * nlp
Definition: struct_scip.h:76
SCIP_TREE * tree
Definition: struct_scip.h:79
SCIP_RELAXATION * relaxation
Definition: struct_scip.h:77
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:75
type definitions for catching the user CTRL-C interrupt