Scippy

SCIP

Solving Constraint Integer Programs

scip.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 scip.h
26 * @ingroup PUBLICCOREAPI
27 * @brief SCIP callable library
28 * @author Tobias Achterberg
29 * @author Timo Berthold
30 * @author Thorsten Koch
31 * @author Alexander Martin
32 * @author Marc Pfetsch
33 * @author Kati Wolter
34 */
35
36/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
37
38#ifndef __SCIP_SCIP_H__
39#define __SCIP_SCIP_H__
40
41
42#include <stdio.h>
43
44#include "scip/def.h"
46#include "scip/type_retcode.h"
47#include "scip/type_result.h"
48#include "scip/type_clock.h"
49#include "scip/type_misc.h"
50#include "scip/type_timing.h"
51#include "scip/type_paramset.h"
52#include "scip/type_event.h"
53#include "scip/type_lp.h"
54#include "scip/type_nlp.h"
55#include "scip/type_var.h"
56#include "scip/type_prob.h"
57#include "scip/type_tree.h"
58#include "scip/type_scip.h"
59
60#include "scip/type_bandit.h"
61#include "scip/type_branch.h"
62#include "scip/type_conflict.h"
63#include "scip/type_cons.h"
64#include "scip/type_dialog.h"
65#include "scip/type_disp.h"
66#include "scip/type_expr.h"
67#include "scip/type_heur.h"
68#include "scip/type_compr.h"
69#include "scip/type_history.h"
70#include "scip/type_nodesel.h"
71#include "scip/type_presol.h"
72#include "scip/type_pricer.h"
73#include "scip/type_reader.h"
74#include "scip/type_relax.h"
75#include "scip/type_reopt.h"
76#include "scip/type_sepa.h"
77#include "scip/type_cutsel.h"
78#include "scip/type_table.h"
79#include "scip/type_prop.h"
80#include "scip/type_nlpi.h"
82#include "scip/type_syncstore.h"
83#include "scip/type_benders.h"
85
86#include "scip/intervalarith.h"
87
88/* include public interfaces, s.t. the user only needs to include scip.h */
89#include "scip/pub_bandit.h"
90#include "scip/pub_benders.h"
91#include "scip/pub_benderscut.h"
92#include "scip/pub_branch.h"
93#include "scip/pub_conflict.h"
94#include "scip/pub_cons.h"
95#include "scip/pub_cutpool.h"
96#include "scip/pub_dcmp.h"
97#include "scip/pub_dialog.h"
98#include "scip/pub_disp.h"
99#include "scip/pub_event.h"
100#include "scip/pub_expr.h"
101#include "scip/pub_fileio.h"
102#include "scip/pub_heur.h"
103#include "scip/pub_compr.h"
104#include "scip/pub_history.h"
105#include "scip/pub_implics.h"
106#include "scip/pub_lp.h"
107#include "scip/pub_nlp.h"
108#include "scip/pub_matrix.h"
109#include "scip/pub_message.h"
110#include "scip/pub_misc.h"
111#include "scip/pub_nodesel.h"
112#include "scip/pub_paramset.h"
113#include "scip/pub_presol.h"
114#include "scip/pub_pricer.h"
115#include "scip/pub_reader.h"
116#include "scip/pub_relax.h"
117#include "scip/pub_reopt.h"
118#include "scip/pub_sepa.h"
119#include "scip/pub_cutsel.h"
120#include "scip/pub_prop.h"
121#include "scip/pub_sol.h"
122#include "scip/pub_table.h"
123#include "scip/pub_tree.h"
124#include "scip/pub_var.h"
125#include "lpi/lpi.h"
126
127/* include global presolving, cuts, and heuristics methods */
128#include "scip/presolve.h"
129#include "scip/cuts.h"
130#include "scip/heuristics.h"
131
132#include "scip/scip_bandit.h"
133#include "scip/scip_benders.h"
134#include "scip/scip_branch.h"
135#include "scip/scip_compr.h"
136#include "scip/scip_concurrent.h"
137#include "scip/scip_conflict.h"
138#include "scip/scip_cons.h"
139#include "scip/scip_copy.h"
140#include "scip/scip_cut.h"
142#include "scip/scip_debug.h"
143#include "scip/scip_dcmp.h"
144#include "scip/scip_dialog.h"
145#include "scip/scip_disp.h"
146#include "scip/scip_event.h"
147#include "scip/scip_expr.h"
148#include "scip/scip_general.h"
149#include "scip/scip_heur.h"
150#include "scip/scip_lp.h"
151#include "scip/scip_mem.h"
152#include "scip/scip_message.h"
153#include "scip/scip_nlp.h"
154#include "scip/scip_nlpi.h"
155#include "scip/scip_nodesel.h"
156#include "scip/scip_numerics.h"
157#include "scip/scip_param.h"
158#include "scip/scip_presol.h"
159#include "scip/scip_pricer.h"
160#include "scip/scip_prob.h"
161#include "scip/scip_probing.h"
162#include "scip/scip_prop.h"
163#include "scip/scip_randnumgen.h"
164#include "scip/scip_reader.h"
165#include "scip/scip_relax.h"
166#include "scip/scip_reopt.h"
167#include "scip/scip_sepa.h"
168#include "scip/scip_cutsel.h"
169#include "scip/scip_sol.h"
170#include "scip/scip_solve.h"
172#include "scip/scip_table.h"
173#include "scip/scip_timing.h"
174#include "scip/scip_tree.h"
175#include "scip/scip_validation.h"
176#include "scip/scip_var.h"
177
178
179#endif
methods for the aggregation rows
common defines and data types used in all packages of SCIP
methods commonly used by primal heuristics
interval arithmetics for provable bounds
interface methods for specific LP solvers
memory allocation routines
methods commonly used for presolving
public methods for bandit algorithms
public methods for Benders' decomposition
public methods for Benders' decomposition cuts
public methods for branching rules
public methods for tree compressions
public methods for conflict analysis handlers
public methods for managing constraints
public methods for storing cuts in a cut pool
public methods for cut selectors
public methods for decompositions
public methods for user interface dialog
public methods for displaying runtime statistics
public methods for managing events
public functions to work with algebraic expressions
wrapper functions to map file i/o to standard or zlib file i/o
public methods for primal heuristics
public methods for branching and inference history structure
public methods for implications, variable bounds, and cliques
public methods for LP management
public methods for matrix
public methods for message output
public data structures and miscellaneous methods
public methods for NLP management
public methods for node selectors
public methods for handling parameter settings
public methods for presolvers
public methods for variable pricers
public methods for propagators
public methods for input file readers
public methods for relaxation handlers
public methods for reoptimization
public methods for separators
public methods for primal CIP solutions
public methods for displaying statistic tables
public methods for branch and bound tree
public methods for problem variables
public methods for bandit algorithms
public methods for Benders decomposition
public methods for branching rule plugins and branching
public methods for compression plugins
public methods for concurrent solving mode
public methods for conflict handler plugins and conflict analysis
public methods for constraint handler plugins and constraints
public methods for problem copies
public methods for cuts and aggregation rows
public methods for cut selector plugins
public methods for data structures
public methods for decompositions
public methods for debugging
public methods for dialog handler plugins
public methods for display handler plugins
public methods for event handler plugins and event handlers
public functions to work with algebraic expressions
general public methods
public methods for primal heuristic plugins and divesets
public methods for the LP relaxation, rows and columns
public methods for memory management
public methods for message handling
public methods for nonlinear relaxation
public methods for NLPI solver interfaces
public methods for node selector plugins
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for presolving plugins
public methods for variable pricer plugins
public methods for global and local (sub)problems
public methods for the probing mode
public methods for propagator plugins
public methods for random numbers
public methods for reader plugins
public methods for relaxator plugins
public methods for reoptimization
public methods for separator plugins
public methods for solutions
public solving methods
public methods for querying solving statistics
public methods for statistics table plugins
public methods for timing
public methods for the branch-and-bound tree
public methods for validation
public methods for SCIP variables
type definitions for bandit selection algorithms
type definitions for Benders' decomposition methods
type definitions for Benders' decomposition cut
type definitions for branching rules
type definitions for clocks and timing issues
type definitions for tree compression
type definitions for concurrent solvers
type definitions for conflict analysis
type definitions for constraints and constraint handlers
type definitions for cut selectors
type definitions for user interface dialog
type definitions for displaying runtime statistics
type definitions for managing events
type and macro definitions related to algebraic expressions
type definitions for primal heuristics
type definitions for branching and inference history
type definitions for LP management
type definitions for miscellaneous datastructures
type definitions for NLP management
type definitions for NLP solver interfaces
type definitions for node selectors
type definitions for handling parameter settings
type definitions for presolvers
type definitions for variable pricers
type definitions for storing and manipulating the main problem
type definitions for propagators
type definitions for input file readers
type definitions for relaxators
type definitions for collecting reoptimization information
result codes for SCIP callback methods
type definitions for return codes for SCIP methods
type definitions for SCIP's main datastructure
type definitions for separators
the type definitions for the synchronization store
type definitions for displaying statistics tables
timing definitions for SCIP
type definitions for branch and bound tree
type definitions for problem variables