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 type_table.h 26 * @ingroup TYPEDEFINITIONS 27 * @brief type definitions for displaying statistics tables 28 * @author Tristan Gally 29 * 30 * This file defines the interface for statistics tables implemented in C. 31 * 32 * - \ref TABLE "Instructions for implementing a statistics table" 33 * - \ref TABLES "List of available statistics tables" 34 * - \ref scip::ObjTable "C++ wrapper class 35 */ 36 37 /** @defgroup DEFPLUGINS_TABLE Default Tables 38 * @ingroup DEFPLUGINS 39 * @brief implementation files (.c files) of the default statistics tables of SCIP 40 */ 41 42 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 43 44 #ifndef __SCIP_TYPE_TABLE_H__ 45 #define __SCIP_TYPE_TABLE_H__ 46 47 #include <stdio.h> 48 49 #include "scip/def.h" 50 #include "scip/type_retcode.h" 51 #include "scip/type_scip.h" 52 53 #ifdef __cplusplus 54 extern "C" { 55 #endif 56 57 typedef struct SCIP_Table SCIP_TABLE; /**< statistics table data structure */ 58 typedef struct SCIP_TableData SCIP_TABLEDATA; /**< statistics table specific data */ 59 60 61 /** copy method for statistics table plugins (called when SCIP copies plugins) 62 * 63 * input: 64 * - scip : SCIP main data structure 65 * - table : the statistics table itself 66 */ 67 #define SCIP_DECL_TABLECOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 68 69 /** destructor of statistics table to free user data (called when SCIP is exiting) 70 * 71 * input: 72 * - scip : SCIP main data structure 73 * - table : the statistics table itself 74 */ 75 #define SCIP_DECL_TABLEFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 76 77 /** initialization method of statistics table (called after problem was transformed) 78 * 79 * input: 80 * - scip : SCIP main data structure 81 * - table : the statistics table itself 82 */ 83 #define SCIP_DECL_TABLEINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 84 85 /** deinitialization method of statistics table (called before transformed problem is freed) 86 * 87 * input: 88 * - scip : SCIP main data structure 89 * - table : the statistics table itself 90 */ 91 #define SCIP_DECL_TABLEEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 92 93 /** solving process initialization method of statistics table (called when branch and bound process is about to begin) 94 * 95 * This method is called when the presolving was finished and the branch and bound process is about to begin. 96 * The statistics table may use this call to initialize its branch and bound specific data. 97 * 98 * input: 99 * - scip : SCIP main data structure 100 * - table : the statistics table itself 101 */ 102 #define SCIP_DECL_TABLEINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 103 104 /** solving process deinitialization method of statistics table (called before branch and bound process data is freed) 105 * 106 * This method is called before the branch and bound process is freed. 107 * The statistics table should use this call to clean up its branch and bound data. 108 * 109 * input: 110 * - scip : SCIP main data structure 111 * - table : the display column itself 112 */ 113 #define SCIP_DECL_TABLEEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table) 114 115 /** output method of statistics table to output file stream 'file' 116 * 117 * input: 118 * - scip : SCIP main data structure 119 * - table : the statistics table itself 120 * - file : file stream for output 121 */ 122 #define SCIP_DECL_TABLEOUTPUT(x) SCIP_RETCODE x (SCIP* scip, SCIP_TABLE* table, FILE* file) 123 124 #ifdef __cplusplus 125 } 126 #endif 127 128 #endif 129