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