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 table.h 26 * @ingroup INTERNALAPI 27 * @brief internal methods for displaying statistics tables 28 * @author Tristan Gally 29 */ 30 31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 32 33 #ifndef __SCIP_TABLE_H__ 34 #define __SCIP_TABLE_H__ 35 36 37 #include <stdio.h> 38 39 #include "scip/def.h" 40 #include "blockmemshell/memory.h" 41 #include "scip/type_retcode.h" 42 #include "scip/type_set.h" 43 #include "scip/type_table.h" 44 #include "scip/type_paramset.h" 45 #include "scip/pub_table.h" 46 47 #ifdef __cplusplus 48 extern "C" { 49 #endif 50 51 /** copies the given statistics table to a new scip */ 52 SCIP_RETCODE SCIPtableCopyInclude( 53 SCIP_TABLE* table, /**< statistics table */ 54 SCIP_SET* set /**< SCIP_SET of SCIP to copy to */ 55 ); 56 57 /** creates a statistics table */ 58 SCIP_RETCODE SCIPtableCreate( 59 SCIP_TABLE** table, /**< pointer to store statistics table */ 60 SCIP_SET* set, /**< global SCIP settings */ 61 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */ 62 BMS_BLKMEM* blkmem, /**< block memory for parameter settings */ 63 const char* name, /**< name of statistics table */ 64 const char* desc, /**< description of statistics table */ 65 SCIP_Bool active, /**< should the table be activated by default? */ 66 SCIP_DECL_TABLECOPY ((*tablecopy)), /**< copy method of statistics table or NULL if you don't want to copy your plugin into sub-SCIPs */ 67 SCIP_DECL_TABLEFREE ((*tablefree)), /**< destructor of statistics table */ 68 SCIP_DECL_TABLEINIT ((*tableinit)), /**< initialize statistics table */ 69 SCIP_DECL_TABLEEXIT ((*tableexit)), /**< deinitialize statistics table */ 70 SCIP_DECL_TABLEINITSOL ((*tableinitsol)), /**< solving process initialization method of statistics table */ 71 SCIP_DECL_TABLEEXITSOL ((*tableexitsol)), /**< solving process deinitialization method of statistics table */ 72 SCIP_DECL_TABLEOUTPUT ((*tableoutput)), /**< output method */ 73 SCIP_TABLEDATA* tabledata, /**< statistics table data */ 74 int position, /**< position of statistics table */ 75 SCIP_STAGE earlieststage /**< output of the statistics table is only printed from this stage onwards */ 76 ); 77 78 /** frees memory of statistics table */ 79 SCIP_RETCODE SCIPtableFree( 80 SCIP_TABLE** table, /**< pointer to statistics table data structure */ 81 SCIP_SET* set /**< global SCIP settings */ 82 ); 83 84 /** initializes statistics table */ 85 SCIP_RETCODE SCIPtableInit( 86 SCIP_TABLE* table, /**< statistics table */ 87 SCIP_SET* set /**< global SCIP settings */ 88 ); 89 90 /** deinitializes statistics table */ 91 SCIP_RETCODE SCIPtableExit( 92 SCIP_TABLE* table, /**< statistics table */ 93 SCIP_SET* set /**< global SCIP settings */ 94 ); 95 96 /** informs statistics table that the branch and bound process is being started */ 97 SCIP_RETCODE SCIPtableInitsol( 98 SCIP_TABLE* table, /**< statistics table */ 99 SCIP_SET* set /**< global SCIP settings */ 100 ); 101 102 /** informs statistics table that the branch and bound process data is being freed */ 103 SCIP_RETCODE SCIPtableExitsol( 104 SCIP_TABLE* table, /**< statistics table */ 105 SCIP_SET* set /**< global SCIP settings */ 106 ); 107 108 /** output statistics table to screen */ 109 SCIP_RETCODE SCIPtableOutput( 110 SCIP_TABLE* table, /**< statistics table */ 111 SCIP_SET* set, /**< global SCIP settings */ 112 FILE* file /**< output file (or NULL for standard output) */ 113 ); 114 115 #ifdef __cplusplus 116 } 117 #endif 118 119 #endif 120