Scippy

SCIP

Solving Constraint Integer Programs

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