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-2014 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 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 /** SCIP main data structure */
52 struct Scip
53 {
54  /* INIT */
55  SCIP_MEM* mem; /**< block memory buffers */
56  SCIP_SET* set; /**< global SCIP settings */
57  SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */
58  SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */
59  SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */
60  SCIP_CLOCK* totaltime; /**< total SCIP running time */
61 
62  /* PROBLEM */
63  SCIP_STAT* stat; /**< dynamic problem statistics */
64  SCIP_PROB* origprob; /**< original problem data */
65  SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */
66 
67  /* TRANSFORMED */
68  SCIP_EVENTFILTER* eventfilter; /**< event filter for global (not variable dependent) events */
69  SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */
70  SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */
71  SCIP_LP* lp; /**< LP data */
72  SCIP_NLP* nlp; /**< NLP data */
73  SCIP_RELAXATION* relaxation; /**< global relaxation data */
74  SCIP_PRIMAL* primal; /**< primal data and solution storage */
75  SCIP_TREE* tree; /**< branch and bound tree */
76  SCIP_CONFLICT* conflict; /**< conflict analysis data */
77  SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */
78  SCIP_PROB* transprob; /**< transformed problem after presolve */
79 
80  /* SOLVING */
81  SCIP_PRICESTORE* pricestore; /**< storage for priced variables */
82  SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */
83  SCIP_CUTPOOL* cutpool; /**< global cut pool */
84  SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */
85 };
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif
92