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