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