Scippy

    SCIP

    Solving Constraint Integer Programs

    type_compr.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_compr.h
    26 * @ingroup TYPEDEFINITIONS
    27 * @brief type definitions for tree compression
    28 * @author Jakob Witzig
    29 *
    30 * This file defines the interface for tree compression implemented in C.
    31 */
    32
    33/** @defgroup DEFPLUGINS_COMPRESSION Default tree compressions
    34 * @ingroup DEFPLUGINS
    35 * @brief implementation files (.c files) of the default tree compressions of SCIP
    36 */
    37
    38/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    39
    40#ifndef __SCIP_TYPE_COMPR_H__
    41#define __SCIP_TYPE_COMPR_H__
    42
    43#include "scip/def.h"
    44#include "scip/type_scip.h"
    45#include "scip/type_result.h"
    46#include "scip/type_timing.h"
    47
    48#ifdef __cplusplus
    49extern "C" {
    50#endif
    51
    52typedef struct SCIP_Compr SCIP_COMPR; /**< tree compression */
    53typedef struct SCIP_ComprData SCIP_COMPRDATA; /**< locally defined tree compression data */
    54
    55
    56/** copy method for compression plugins (called when SCIP copies plugins)
    57 *
    58 * input:
    59 * - scip : SCIP main data structure
    60 * - compr : the compression technique itself
    61 */
    62#define SCIP_DECL_COMPRCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    63
    64/** destructor of tree compression to free user data (called when SCIP is exiting)
    65 *
    66 * input:
    67 * - scip : SCIP main data structure
    68 * - compr : the compression technique itself
    69 */
    70#define SCIP_DECL_COMPRFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    71
    72/** initialization method of tree compression (called after problem was transformed)
    73 *
    74 * input:
    75 * - scip : SCIP main data structure
    76 * - compr : the compression technique itself
    77 */
    78#define SCIP_DECL_COMPRINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    79
    80/** deinitialization method of tree compression (called before transformed problem is freed)
    81 *
    82 * input:
    83 * - scip : SCIP main data structure
    84 * - compr : the compression technique itself
    85 */
    86#define SCIP_DECL_COMPREXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    87
    88/** solving process initialization method of tree compressionc (called when branch and bound process is about to begin)
    89 *
    90 * This method is called when the presolving was finished and the branch and bound process is about to begin.
    91 * The tree compression may use this call to initialize its branch and bound specific data.
    92 *
    93 * input:
    94 * - scip : SCIP main data structure
    95 * - compr : the compression technique itself
    96 */
    97#define SCIP_DECL_COMPRINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    98
    99/** solving process deinitialization method of tree compression (called before branch and bound process data is freed)
    100 *
    101 * This method is called before the branch and bound process is freed.
    102 * The tree compression should use this call to clean up its branch and bound data.
    103 *
    104 * input:
    105 * - scip : SCIP main data structure
    106 * - compr : the compression technique itself
    107 */
    108#define SCIP_DECL_COMPREXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr)
    109
    110/** execution method of tree compression technique
    111 *
    112 * Try to compress the current search tree. The method is called in the node processing loop.
    113 *
    114 * input:
    115 * - scip : SCIP main data structure
    116 * - compr : the compression technique itself
    117 * - result : pointer to store the result of the heuristic call
    118 *
    119 * possible return values for *result:
    120 * - SCIP_SUCCESS : the tree could be compressed
    121 * - SCIP_DIDNITFIND : the method could not compress the tree
    122 * - SCIP_DIDNOTRUN : the compression was skipped
    123 */
    124#define SCIP_DECL_COMPREXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_COMPR* compr, SCIP_RESULT* result)
    125
    126#ifdef __cplusplus
    127}
    128#endif
    129
    130#endif
    common defines and data types used in all packages of SCIP
    struct SCIP_ComprData SCIP_COMPRDATA
    Definition: type_compr.h:53
    result codes for SCIP callback methods
    type definitions for SCIP's main datastructure
    timing definitions for SCIP