Scippy

SCIP

Solving Constraint Integer Programs

nlpioracle.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-2022 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 nlpioracle.h
17  * @ingroup PUBLICCOREAPI
18  * @brief methods to store an NLP and request function, gradient, and Hessian values
19  * @author Stefan Vigerske
20  *
21  * A common part of many NLPIs that takes care of the problem storage and function, gradient, and Hessian evaluation.
22  */
23 
24 #ifndef __SCIP_NLPIORACLE_H__
25 #define __SCIP_NLPIORACLE_H__
26 
27 #include "scip/type_message.h"
29 
30 /**@defgroup NLPIOracle NLPI Oracle
31  * @ingroup DataStructures
32  * @brief NLP representation used by various NLP solver interface implementations
33  *
34  *@{
35  */
36 
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 typedef struct SCIP_NlpiOracle SCIP_NLPIORACLE; /**< NLPI oracle data structure */
43 
44 /** creates an NLPIORACLE data structure */
45 SCIP_EXPORT
47  SCIP* scip, /**< SCIP data structure */
48  SCIP_NLPIORACLE** oracle /**< pointer to store NLPIORACLE data structure */
49  );
50 
51 /** frees an NLPIORACLE data structure */
52 SCIP_EXPORT
54  SCIP* scip, /**< SCIP data structure */
55  SCIP_NLPIORACLE** oracle /**< pointer to NLPIORACLE data structure */
56  );
57 
58 /** sets the problem name (used for printing) */
59 SCIP_EXPORT
61  SCIP* scip, /**< SCIP data structure */
62  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
63  const char* name /**< name of problem */
64  );
65 
66 /** gets the problem name, or NULL if none set */
67 SCIP_EXPORT
69  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
70  );
71 
72 /** adds variables */
73 SCIP_EXPORT
75  SCIP* scip, /**< SCIP data structure */
76  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
77  int nvars, /**< number of variables to add */
78  const SCIP_Real* lbs, /**< array with lower bounds of new variables, or NULL if all -infinity */
79  const SCIP_Real* ubs, /**< array with upper bounds of new variables, or NULL if all +infinity */
80  const char** varnames /**< array with names of new variables, or NULL if no names should be stored */
81  );
82 
83 /** adds constraints
84  *
85  * linear coefficients: row(=constraint) oriented matrix;
86  * quadratic coefficients: row oriented matrix for each constraint
87  */
88 SCIP_EXPORT
90  SCIP* scip, /**< SCIP data structure */
91  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
92  int nconss, /**< number of constraints to add */
93  const SCIP_Real* lhss, /**< array with left-hand sides of constraints, or NULL if all -infinity */
94  const SCIP_Real* rhss, /**< array with right-hand sides of constraints, or NULL if all +infinity */
95  const int* nlininds, /**< number of linear coefficients for each constraint, may be NULL in case of no linear part */
96  int* const* lininds, /**< indices of variables for linear coefficients for each constraint, may be NULL in case of no linear part */
97  SCIP_Real* const* linvals, /**< values of linear coefficient for each constraint, may be NULL in case of no linear part */
98  SCIP_EXPR** exprs, /**< NULL if no nonlinear parts, otherwise exprs[.] gives nonlinear part,
99  * or NULL if no nonlinear part in this constraint */
100  const char** consnames /**< names of new constraints, or NULL if no names should be stored */
101  );
102 
103 /** sets or overwrites objective, a minimization problem is expected
104  *
105  * May change sparsity pattern.
106  */
107 SCIP_EXPORT
109  SCIP* scip, /**< SCIP data structure */
110  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
111  const SCIP_Real constant, /**< constant part of objective */
112  int nlin, /**< number of linear variable coefficients */
113  const int* lininds, /**< indices of linear variables, or NULL if no linear part */
114  const SCIP_Real* linvals, /**< coefficients of linear variables, or NULL if no linear part */
115  SCIP_EXPR* expr /**< expression of nonlinear part, or NULL if no nonlinear part */
116  );
117 
118 /** change variable bounds */
119 SCIP_EXPORT
121  SCIP* scip, /**< SCIP data structure */
122  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
123  int nvars, /**< number of variables to change bounds */
124  const int* indices, /**< array with indices of variables to change bounds */
125  const SCIP_Real* lbs, /**< array with new lower bounds, or NULL if all should be -infty */
126  const SCIP_Real* ubs /**< array with new upper bounds, or NULL if all should be +infty */
127  );
128 
129 /** change constraint sides */
130 SCIP_EXPORT
132  SCIP* scip, /**< SCIP data structure */
133  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
134  int nconss, /**< number of constraints to change sides */
135  const int* indices, /**< array with indices of constraints to change sides */
136  const SCIP_Real* lhss, /**< array with new left-hand sides, or NULL if all should be -infty */
137  const SCIP_Real* rhss /**< array with new right-hand sides, or NULL if all should be +infty */
138  );
139 
140 /** deletes a set of variables */
141 SCIP_EXPORT
143  SCIP* scip, /**< SCIP data structure */
144  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
145  int* delstats /**< array with deletion status of vars in input (1 if var should be deleted, 0 if not);
146  * new position of var in output (-1 if var was deleted) */
147  );
148 
149 /** deletes a set of constraints */
150 SCIP_EXPORT
152  SCIP* scip, /**< SCIP data structure */
153  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
154  int* delstats /**< array with deletion status of rows in input (1 if row should be deleted, 0 if not);
155  * new position of row in output (-1 if row was deleted) */
156  );
157 
158 /** changes (or adds) linear coefficients in one constraint or objective */
159 SCIP_EXPORT
161  SCIP* scip, /**< SCIP data structure */
162  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
163  int considx, /**< index of constraint where linear coefficients should be changed, or -1 for objective */
164  int nentries, /**< number of coefficients to change */
165  const int* varidxs, /**< array with indices of variables which coefficients should be changed */
166  const SCIP_Real* newcoefs /**< array with new coefficients of variables */
167  );
168 
169 /** replaces expression of one constraint or objective */
170 SCIP_EXPORT
172  SCIP* scip, /**< SCIP data structure */
173  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
174  int considx, /**< index of constraint where expression should be changed, or -1 for objective */
175  SCIP_EXPR* expr /**< new expression, or NULL */
176  );
177 
178 /** changes the constant value in the objective function
179  */
180 SCIP_EXPORT
182  SCIP* scip, /**< SCIP data structure */
183  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
184  SCIP_Real objconstant /**< new value for objective constant */
185  );
186 
187 /** gives the current number of variables */
188 SCIP_EXPORT
190  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
191  );
192 
193 /** gives the current number of constraints */
194 SCIP_EXPORT
196  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
197  );
198 
199 /** gives the variables lower bounds */
200 SCIP_EXPORT
202  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
203  );
204 
205 /** gives the variables upper bounds */
206 SCIP_EXPORT
208  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
209  );
210 
211 /** gives the variables names, or NULL if not set */
212 SCIP_EXPORT
214  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
215  );
216 
217 /** indicates whether variable appears nonlinear in any objective or constraint */
218 SCIP_EXPORT
220  SCIP* scip, /**< SCIP data structure */
221  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
222  int varidx /**< the variable to check */
223  );
224 
225 /** returns number of linear and nonlinear appearances of variables in objective and constraints */
226 SCIP_EXPORT
228  SCIP* scip, /**< SCIP data structure */
229  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
230  const int** lincounts, /**< buffer to return pointer to array of counts of linear appearances */
231  const int** nlcounts /**< buffer to return pointer to array of counts of nonlinear appearances */
232  );
233 
234 /** gives constant term of objective */
235 SCIP_EXPORT
237  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
238  );
239 
240 /** gives left-hand side of a constraint */
241 SCIP_EXPORT
243  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
244  int considx /**< constraint index */
245  );
246 
247 /** gives right-hand side of a constraint */
248 SCIP_EXPORT
250  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
251  int considx /**< constraint index */
252  );
253 
254 /** gives name of a constraint, may be NULL */
255 SCIP_EXPORT
257  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
258  int considx /**< constraint index */
259  );
260 
261 /** indicates whether constraint is nonlinear */
262 SCIP_EXPORT
264  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
265  int considx /**< index of constraint for which nonlinearity status is returned, or -1 for objective */
266  );
267 
268 /** gives the evaluation capabilities that are shared among all expressions in the problem */
269 SCIP_EXPORT
271  SCIP* scip, /**< SCIP data structure */
272  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
273  );
274 
275 /** evaluates the objective function in a given point */
276 SCIP_EXPORT
278  SCIP* scip, /**< SCIP data structure */
279  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
280  const SCIP_Real* x, /**< point where to evaluate */
281  SCIP_Real* objval /**< pointer to store objective value */
282  );
283 
284 /** evaluates one constraint function in a given point */
285 SCIP_EXPORT
287  SCIP* scip, /**< SCIP data structure */
288  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
289  int considx, /**< index of constraint to evaluate */
290  const SCIP_Real* x, /**< point where to evaluate */
291  SCIP_Real* conval /**< pointer to store constraint value */
292  );
293 
294 /** evaluates all constraint functions in a given point */
295 SCIP_EXPORT
297  SCIP* scip, /**< SCIP data structure */
298  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
299  const SCIP_Real* x, /**< point where to evaluate */
300  SCIP_Real* convals /**< pointer to store constraint values */
301  );
302 
303 /** computes the objective gradient in a given point
304  *
305  * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
306  */
307 SCIP_EXPORT
309  SCIP* scip, /**< SCIP data structure */
310  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
311  const SCIP_Real* x, /**< point where to evaluate */
312  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
313  SCIP_Real* objval, /**< pointer to buffer objective value */
314  SCIP_Real* objgrad /**< pointer to buffer (dense) objective gradient */
315  );
316 
317 /** computes a constraints gradient in a given point
318  *
319  * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
320  */
321 SCIP_EXPORT
323  SCIP* scip, /**< SCIP data structure */
324  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
325  const int considx, /**< index of constraint to compute gradient for */
326  const SCIP_Real* x, /**< point where to evaluate */
327  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
328  SCIP_Real* conval, /**< pointer to store constraint value */
329  SCIP_Real* congrad /**< pointer to store (dense) constraint gradient */
330  );
331 
332 /** gets sparsity pattern (rowwise) of Jacobian matrix
333  *
334  * Note that internal data is returned in *offset and *col, thus the user does not need to allocate memory there.
335  * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
336  */
337 SCIP_EXPORT
339  SCIP* scip, /**< SCIP data structure */
340  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
341  const int** offset, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
342  const int** col /**< pointer to store pointer that stores the indices of variables that appear in each row,
343  * offsets[nconss] gives length of col, can be NULL */
344  );
345 
346 /** evaluates the Jacobian matrix in a given point
347  *
348  * The values in the Jacobian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetJacobianSparsity().
349  * The user need to call SCIPnlpiOracleGetJacobianSparsity() at least ones before using this function.
350  *
351  * @return SCIP_INVALIDDATA, if the Jacobian could not be evaluated (domain error, etc.)
352  */
353 SCIP_EXPORT
355  SCIP* scip, /**< SCIP data structure */
356  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
357  const SCIP_Real* x, /**< point where to evaluate */
358  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
359  SCIP_Real* convals, /**< pointer to store constraint values, can be NULL */
360  SCIP_Real* jacobi /**< pointer to store sparse jacobian values */
361  );
362 
363 /** gets sparsity pattern of the Hessian matrix of the Lagrangian
364  *
365  * Note that internal data is returned in *offset and *col, thus the user must not to allocate memory there.
366  * Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary.
367  * Only elements of the lower left triangle and the diagonal are counted.
368  */
369 SCIP_EXPORT
371  SCIP* scip, /**< SCIP data structure */
372  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
373  const int** offset, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
374  const int** col /**< pointer to store pointer that stores the indices of variables that appear in each row,
375  * offsets[nconss] gives length of col, can be NULL */
376  );
377 
378 /** evaluates the Hessian matrix of the Lagrangian in a given point
379  *
380  * The values in the Hessian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetHessianLagSparsity().
381  * The user must call SCIPnlpiOracleGetHessianLagSparsity() at least ones before using this function.
382  * Only elements of the lower left triangle and the diagonal are computed.
383  *
384  * @return SCIP_INVALIDDATA, if the Hessian could not be evaluated (domain error, etc.)
385  */
386 SCIP_EXPORT
388  SCIP* scip, /**< SCIP data structure */
389  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
390  const SCIP_Real* x, /**< point where to evaluate */
391  SCIP_Bool isnewx_obj, /**< has the point x changed since the last call to an objective evaluation function? */
392  SCIP_Bool isnewx_cons, /**< has the point x changed since the last call to the constraint evaluation function? */
393  SCIP_Real objfactor, /**< weight for objective function */
394  const SCIP_Real* lambdas, /**< array with weights (Lagrangian multipliers) for the constraints */
395  SCIP_Real* hessian /**< pointer to store sparse hessian values */
396  );
397 
398 /** resets clock that measures evaluation time */
399 SCIP_EXPORT
401  SCIP* scip, /**< SCIP data structure */
402  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
403  );
404 
405 /** gives time spend in evaluation since last reset of clock
406  *
407  * Gives 0 if the eval clock is disabled.
408  */
409 SCIP_EXPORT
411  SCIP* scip, /**< SCIP data structure */
412  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
413  );
414 
415 /** prints the problem to a file. */
416 SCIP_EXPORT
418  SCIP* scip, /**< SCIP data structure */
419  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
420  FILE* file /**< file to print to, or NULL for standard output */
421  );
422 
423 /** prints the problem to a file in GAMS format
424  *
425  * If there are variable (equation, resp.) names with more than 9 characters, then variable (equation, resp.) names are prefixed with an unique identifier.
426  * This is to make it easier to identify variables solution output in the listing file.
427  * Names with more than 64 characters are shorten to 64 letters due to GAMS limits.
428  */
429 SCIP_EXPORT
431  SCIP* scip, /**< SCIP data structure */
432  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
433  SCIP_Real* initval, /**< starting point values for variables or NULL */
434  FILE* file /**< file to print to, or NULL for standard output */
435  );
436 
437 /** @} */
438 
439 #ifdef __cplusplus
440 }
441 #endif
442 
443 #endif
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *objval, SCIP_Real *objgrad)
Definition: nlpioracle.c:1959
SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, int nentries, const int *varidxs, const SCIP_Real *newcoefs)
Definition: nlpioracle.c:1548
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, const SCIP_Real *x, SCIP_Real *conval)
Definition: nlpioracle.c:1903
type definitions for expression interpreter
SCIP_RETCODE SCIPnlpiOracleEvalHessianLag(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx_obj, SCIP_Bool isnewx_cons, SCIP_Real objfactor, const SCIP_Real *lambdas, SCIP_Real *hessian)
Definition: nlpioracle.c:2371
SCIP_RETCODE SCIPnlpiOracleAddConstraints(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const SCIP_Real *lhss, const SCIP_Real *rhss, const int *nlininds, int *const *lininds, SCIP_Real *const *linvals, SCIP_EXPR **exprs, const char **consnames)
Definition: nlpioracle.c:1158
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_RETCODE SCIPnlpiOracleSetProblemName(SCIP *scip, SCIP_NLPIORACLE *oracle, const char *name)
Definition: nlpioracle.c:1036
SCIP_Real SCIPnlpiOracleGetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2434
SCIP_RETCODE SCIPnlpiOracleSetObjective(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real constant, int nlin, const int *lininds, const SCIP_Real *linvals, SCIP_EXPR *expr)
Definition: nlpioracle.c:1219
unsigned int SCIP_EXPRINTCAPABILITY
SCIP_RETCODE SCIPnlpiOraclePrintProblem(SCIP *scip, SCIP_NLPIORACLE *oracle, FILE *file)
Definition: nlpioracle.c:2445
SCIP_Real SCIPnlpiOracleGetConstraintRhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:1812
SCIP_VAR ** x
Definition: circlepacking.c:54
int SCIPnlpiOracleGetNConstraints(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1717
int SCIPnlpiOracleGetNVars(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1707
SCIP_RETCODE SCIPnlpiOracleResetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2418
char * SCIPnlpiOracleGetConstraintName(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:1825
SCIP_RETCODE SCIPnlpiOracleChgVarBounds(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
Definition: nlpioracle.c:1248
SCIP_Real SCIPnlpiOracleGetObjectiveConstant(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1788
SCIP_RETCODE SCIPnlpiOracleGetJacobianSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **offset, const int **col)
Definition: nlpioracle.c:2018
SCIP_RETCODE SCIPnlpiOracleAddVars(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
Definition: nlpioracle.c:1072
SCIP_RETCODE SCIPnlpiOracleChgExpr(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, SCIP_EXPR *expr)
Definition: nlpioracle.c:1644
SCIP_Real SCIPnlpiOracleGetConstraintLhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:1799
SCIP_RETCODE SCIPnlpiOracleEvalConstraintGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const int considx, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *conval, SCIP_Real *congrad)
Definition: nlpioracle.c:1988
SCIP_RETCODE SCIPnlpiOracleEvalJacobian(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *convals, SCIP_Real *jacobi)
Definition: nlpioracle.c:2150
SCIP_RETCODE SCIPnlpiOracleDelVarSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1320
char ** varnames
Definition: nlpioracle.c:62
#define SCIP_Bool
Definition: def.h:84
const char * SCIPnlpiOracleGetProblemName(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1060
SCIP_RETCODE SCIPnlpiOracleCreate(SCIP *scip, SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:974
const SCIP_Real * SCIPnlpiOracleGetVarLbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1727
SCIP_Bool SCIPnlpiOracleIsConstraintNonlinear(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:1838
const SCIP_Real * SCIPnlpiOracleGetVarUbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1737
SCIP_RETCODE SCIPnlpiOracleFree(SCIP *scip, SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:1004
SCIP_Bool SCIPnlpiOracleIsVarNonlinear(SCIP *scip, SCIP_NLPIORACLE *oracle, int varidx)
Definition: nlpioracle.c:1757
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *objval)
Definition: nlpioracle.c:1878
SCIP_RETCODE SCIPnlpiOraclePrintProblemGams(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real *initval, FILE *file)
Definition: nlpioracle.c:2513
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *convals)
Definition: nlpioracle.c:1927
#define SCIP_Real
Definition: def.h:177
SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **offset, const int **col)
Definition: nlpioracle.c:2277
SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1855
type definitions for message output methods
char ** SCIPnlpiOracleGetVarNames(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1747
SCIP_RETCODE SCIPnlpiOracleChgConsSides(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
Definition: nlpioracle.c:1285
SCIP_RETCODE SCIPnlpiOracleDelConsSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1462
void SCIPnlpiOracleGetVarCounts(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **lincounts, const int **nlcounts)
Definition: nlpioracle.c:1772
SCIP_RETCODE SCIPnlpiOracleChgObjConstant(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real objconstant)
Definition: nlpioracle.c:1690