1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 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 visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file struct_scip.h 17 * @ingroup INTERNALAPI 18 * @brief SCIP main data structure 19 * @author Tobias Achterberg 20 */ 21 22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 23 24 #ifndef __SCIP_STRUCT_SCIP_H__ 25 #define __SCIP_STRUCT_SCIP_H__ 26 27 28 #include "scip/def.h" 29 #include "scip/type_set.h" 30 #include "scip/type_stat.h" 31 #include "scip/type_clock.h" 32 #include "scip/type_dcmp.h" 33 #include "scip/type_event.h" 34 #include "scip/type_interrupt.h" 35 #include "scip/type_mem.h" 36 #include "scip/type_lp.h" 37 #include "scip/type_nlp.h" 38 #include "scip/type_implics.h" 39 #include "scip/type_prob.h" 40 #include "scip/type_primal.h" 41 #include "scip/type_relax.h" 42 #include "scip/type_tree.h" 43 #include "scip/type_pricestore.h" 44 #include "scip/type_sepastore.h" 45 #include "scip/type_conflictstore.h" 46 #include "scip/type_cutpool.h" 47 #include "scip/type_branch.h" 48 #include "scip/type_conflict.h" 49 #include "scip/type_dialog.h" 50 #include "scip/type_reopt.h" 51 #include "scip/type_concurrent.h" 52 #include "scip/type_syncstore.h" 53 54 #ifdef __cplusplus 55 extern "C" { 56 #endif 57 58 /** SCIP main data structure */ 59 struct Scip 60 { 61 /* INIT */ 62 SCIP_MEM* mem; /**< block memory buffers */ 63 SCIP_SET* set; /**< global SCIP settings */ 64 SCIP_INTERRUPT* interrupt; /**< CTRL-C interrupt data */ 65 SCIP_DIALOGHDLR* dialoghdlr; /**< dialog handler for user interface */ 66 SCIP_MESSAGEHDLR* messagehdlr; /**< message handler for output handling, or NULL */ 67 SCIP_CLOCK* totaltime; /**< total SCIP running time */ 68 69 /* PROBLEM */ 70 SCIP_STAT* stat; /**< dynamic problem statistics */ 71 SCIP_PROB* origprob; /**< original problem data */ 72 SCIP_PRIMAL* origprimal; /**< primal data and solution storage for solution candidates */ 73 SCIP_DECOMPSTORE* decompstore; /**< decomposition storage data structure */ 74 75 /* REOPTIMIZATION */ 76 SCIP_REOPT* reopt; /**< reoptimization data */ 77 78 /* TRANSFORMED */ 79 SCIP_EVENTFILTER* eventfilter; /**< event filter for global (not variable dependent) events */ 80 SCIP_EVENTQUEUE* eventqueue; /**< event queue to cache events and process them later (bound change events) */ 81 SCIP_BRANCHCAND* branchcand; /**< storage for branching candidates */ 82 SCIP_LP* lp; /**< LP data */ 83 SCIP_NLP* nlp; /**< NLP data */ 84 SCIP_RELAXATION* relaxation; /**< global relaxation data */ 85 SCIP_PRIMAL* primal; /**< primal data and solution storage */ 86 SCIP_TREE* tree; /**< branch and bound tree */ 87 SCIP_CONFLICT* conflict; /**< conflict analysis data */ 88 SCIP_CLIQUETABLE* cliquetable; /**< collection of cliques */ 89 SCIP_PROB* transprob; /**< transformed problem after presolve */ 90 91 /* SOLVING */ 92 SCIP_PRICESTORE* pricestore; /**< storage for priced variables */ 93 SCIP_SEPASTORE* sepastore; /**< storage for separated cuts */ 94 SCIP_SEPASTORE* sepastoreprobing; /**< storage for separated cuts during probing mode */ 95 SCIP_CONFLICTSTORE* conflictstore; /**< storage for conflicts */ 96 SCIP_CUTPOOL* cutpool; /**< global cut pool */ 97 SCIP_CUTPOOL* delayedcutpool; /**< global delayed cut pool */ 98 99 /* PARALLEL */ 100 SCIP_SYNCSTORE* syncstore; /**< the data structure for storing synchronization information */ 101 SCIP_CONCURRENT* concurrent; /**< data required for concurrent solve */ 102 }; 103 104 #ifdef __cplusplus 105 } 106 #endif 107 108 #endif 109