Scippy

SCIP

Solving Constraint Integer Programs

scip_expr.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-2021 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file scip_expr.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for expression handlers
19  * @author Tobias Achterberg
20  * @author Timo Berthold
21  * @author Thorsten Koch
22  * @author Alexander Martin
23  * @author Marc Pfetsch
24  * @author Kati Wolter
25  * @author Gregor Hendel
26  * @author Leona Gottwald
27  */
28 
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
30 
31 #ifndef __SCIP_SCIP_EXPR_H__
32 #define __SCIP_SCIP_EXPR_H__
33 
34 
35 #include "nlpi/type_expr.h"
36 #include "scip/def.h"
37 #include "scip/type_retcode.h"
38 #include "scip/type_scip.h"
39 #include "scip/type_sol.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /**@addtogroup PublicExpressionTreeMethods
46  *
47  * @{
48  */
49 
50 /** replaces array of variables in expression tree by corresponding transformed variables
51  *
52  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
53  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
54  *
55  * @pre This method can be called if @p scip is in one of the following stages:
56  * - \ref SCIP_STAGE_TRANSFORMING
57  * - \ref SCIP_STAGE_TRANSFORMED
58  * - \ref SCIP_STAGE_INITPRESOLVE
59  * - \ref SCIP_STAGE_PRESOLVING
60  * - \ref SCIP_STAGE_EXITPRESOLVE
61  * - \ref SCIP_STAGE_PRESOLVED
62  * - \ref SCIP_STAGE_INITSOLVE
63  * - \ref SCIP_STAGE_SOLVING
64  * - \ref SCIP_STAGE_SOLVED
65  * - \ref SCIP_STAGE_EXITSOLVE
66  * - \ref SCIP_STAGE_FREETRANS
67  *
68  * See \ref SCIP_Stage "SCIP_STAGE" for a complete list of all possible solving stages.
69  */
72  SCIP* scip, /**< SCIP data structure */
73  SCIP_EXPRTREE* tree /**< expression tree */
74  );
75 
76 /** evaluates an expression tree for a primal solution or LP solution
77  *
78  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
79  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
80  *
81  * @pre This method can be called if @p scip is in one of the following stages:
82  * - \ref SCIP_STAGE_PROBLEM
83  * - \ref SCIP_STAGE_TRANSFORMING
84  * - \ref SCIP_STAGE_TRANSFORMED
85  * - \ref SCIP_STAGE_INITPRESOLVE
86  * - \ref SCIP_STAGE_PRESOLVING
87  * - \ref SCIP_STAGE_EXITPRESOLVE
88  * - \ref SCIP_STAGE_PRESOLVED
89  * - \ref SCIP_STAGE_INITSOLVE
90  * - \ref SCIP_STAGE_SOLVING
91  * - \ref SCIP_STAGE_SOLVED
92  * - \ref SCIP_STAGE_EXITSOLVE
93  * - \ref SCIP_STAGE_FREETRANS
94  *
95  * See \ref SCIP_Stage "SCIP_STAGE" for a complete list of all possible solving stages.
96  */
99  SCIP* scip, /**< SCIP data structure */
100  SCIP_EXPRTREE* tree, /**< expression tree */
101  SCIP_SOL* sol, /**< a solution, or NULL for current LP solution */
102  SCIP_Real* val /**< buffer to store value */
103  );
104 
105 /** evaluates an expression tree w.r.t. current global bounds
106  *
107  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
108  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
109  *
110  * @pre This method can be called if @p scip is in one of the following stages:
111  * - \ref SCIP_STAGE_PROBLEM
112  * - \ref SCIP_STAGE_TRANSFORMING
113  * - \ref SCIP_STAGE_TRANSFORMED
114  * - \ref SCIP_STAGE_INITPRESOLVE
115  * - \ref SCIP_STAGE_PRESOLVING
116  * - \ref SCIP_STAGE_EXITPRESOLVE
117  * - \ref SCIP_STAGE_PRESOLVED
118  * - \ref SCIP_STAGE_INITSOLVE
119  * - \ref SCIP_STAGE_SOLVING
120  * - \ref SCIP_STAGE_SOLVED
121  * - \ref SCIP_STAGE_EXITSOLVE
122  * - \ref SCIP_STAGE_FREETRANS
123  *
124  * See \ref SCIP_Stage "SCIP_STAGE" for a complete list of all possible solving stages.
125  */
128  SCIP* scip, /**< SCIP data structure */
129  SCIP_EXPRTREE* tree, /**< expression tree */
130  SCIP_Real infinity, /**< value to use for infinity */
131  SCIP_INTERVAL* val /**< buffer to store result */
132  );
133 
134 /** evaluates an expression tree w.r.t. current local bounds
135  *
136  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
137  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
138  *
139  * @pre This method can be called if @p scip is in one of the following stages:
140  * - \ref SCIP_STAGE_PROBLEM
141  * - \ref SCIP_STAGE_TRANSFORMING
142  * - \ref SCIP_STAGE_TRANSFORMED
143  * - \ref SCIP_STAGE_INITPRESOLVE
144  * - \ref SCIP_STAGE_PRESOLVING
145  * - \ref SCIP_STAGE_EXITPRESOLVE
146  * - \ref SCIP_STAGE_PRESOLVED
147  * - \ref SCIP_STAGE_INITSOLVE
148  * - \ref SCIP_STAGE_SOLVING
149  * - \ref SCIP_STAGE_SOLVED
150  * - \ref SCIP_STAGE_EXITSOLVE
151  * - \ref SCIP_STAGE_FREETRANS
152  *
153  * See \ref SCIP_Stage "SCIP_STAGE" for a complete list of all possible solving stages.
154  */
157  SCIP* scip, /**< SCIP data structure */
158  SCIP_EXPRTREE* tree, /**< expression tree */
159  SCIP_Real infinity, /**< value to use for infinity */
160  SCIP_INTERVAL* val /**< buffer to store result */
161  );
162 
163 /**@} */
164 
165 #ifdef __cplusplus
166 }
167 #endif
168 
169 #endif
SCIP_EXPORT SCIP_RETCODE SCIPevalExprtreeSol(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_SOL *sol, SCIP_Real *val)
Definition: scip_expr.c:114
#define infinity
Definition: gastrans.c:71
#define SCIP_EXPORT
Definition: def.h:100
SCIP_EXPORT SCIP_RETCODE SCIPevalExprtreeGlobalBounds(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *val)
Definition: scip_expr.c:169
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
type definitions for return codes for SCIP methods
type definitions for SCIP&#39;s main datastructure
SCIP_EXPORT SCIP_RETCODE SCIPgetExprtreeTransformedVars(SCIP *scip, SCIP_EXPRTREE *tree)
Definition: scip_expr.c:75
type definitions for storing primal CIP solutions
type definitions for expressions and expression trees
#define SCIP_Real
Definition: def.h:163
SCIP_EXPORT SCIP_RETCODE SCIPevalExprtreeLocalBounds(SCIP *scip, SCIP_EXPRTREE *tree, SCIP_Real infinity, SCIP_INTERVAL *val)
Definition: scip_expr.c:234
common defines and data types used in all packages of SCIP