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-2017 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 email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file nlpioracle.h
17  * @brief methods to store an NLP and request function, gradient, and hessian values
18  * @author Stefan Vigerske
19  *
20  * Not a full NLPI, but implements a common part of many NLPIs that takes care
21  * of the problem storage and function, gradient, and hessian evaluation.
22  */
23 
24 #ifndef __SCIP_NLPI_ORACLE_H__
25 #define __SCIP_NLPI_ORACLE_H__
26 
27 #include "scip/type_message.h"
28 #include "nlpi/type_nlpi.h"
30 
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 typedef struct SCIP_NlpiOracle SCIP_NLPIORACLE; /**< NLPI oracle data structure */
37 
38 /** creates an NLPIORACLE data structure */
39 extern
41  BMS_BLKMEM* blkmem, /**< block memory */
42  SCIP_NLPIORACLE** oracle /**< pointer to store NLPIORACLE data structure */
43  );
44 
45 /** frees an NLPIORACLE data structure */
46 extern
48  SCIP_NLPIORACLE** oracle /**< pointer to NLPIORACLE data structure */
49  );
50 
51 /** sets the value for infinity */
52 extern
54  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
55  SCIP_Real infinity /**< value to use for infinity */
56  );
57 
58 /** gets the value for infinity */
59 extern
61  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
62  );
63 
64 /** sets the problem name (used for printing) */
65 extern
67  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
68  const char* name /**< name of problem */
69  );
70 
71 /** gets the problem name, or NULL if none set */
72 extern
74  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
75  );
76 
77 /** adds variables */
78 extern
80  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
81  int nvars, /**< number of variables to add */
82  const SCIP_Real* lbs, /**< array with lower bounds of new variables, or NULL if all -infinity */
83  const SCIP_Real* ubs, /**< array with upper bounds of new variables, or NULL if all +infinity */
84  const char** varnames /**< array with names of new variables, or NULL if no names should be stored */
85  );
86 
87 /** adds constraints
88  *
89  * linear coefficients: row(=constraint) oriented matrix;
90  * quadratic coefficients: row oriented matrix for each constraint
91  */
92 extern
94  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
95  int nconss, /**< number of constraints to add */
96  const SCIP_Real* lhss, /**< array with left-hand sides of constraints, or NULL if all -infinity */
97  const SCIP_Real* rhss, /**< array with right-hand sides of constraints, or NULL if all +infinity */
98  const int* nlininds, /**< number of linear coefficients for each constraint, may be NULL in case of no linear part */
99  int* const* lininds, /**< indices of variables for linear coefficients for each constraint, may be NULL in case of no linear part */
100  SCIP_Real* const* linvals, /**< values of linear coefficient for each constraint, may be NULL in case of no linear part */
101  const int* nquadelems, /**< number of elements in matrix of quadratic part for each constraint,
102  * may be NULL in case of no quadratic part in any constraint */
103  SCIP_QUADELEM* const* quadelems, /**< quadratic elements specifying quadratic part for each constraint, entry of array may be NULL in case of no quadratic part,
104  * may be NULL in case of no quadratic part in any constraint */
105  int* const* exprvaridxs, /**< NULL if no nonquadratic parts, otherwise epxrvaridxs[.] maps variable indices in expression tree to indices in nlp */
106  SCIP_EXPRTREE* const* exprtrees, /**< NULL if no nonquadratic parts, otherwise exprtrees[.] gives nonquadratic part,
107  * or NULL if no nonquadratic part in this constraint */
108  const char** consnames /**< names of new constraints, or NULL if no names should be stored */
109  );
110 
111 /** sets or overwrites objective, a minimization problem is expected
112  *
113  * May change sparsity pattern.
114  */
115 extern
117  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
118  const SCIP_Real constant, /**< constant part of objective */
119  int nlin, /**< number of linear variable coefficients */
120  const int* lininds, /**< indices of linear variables, or NULL if no linear part */
121  const SCIP_Real* linvals, /**< coefficients of linear variables, or NULL if no linear part */
122  int nquadelems, /**< number of entries in matrix of quadratic part */
123  const SCIP_QUADELEM* quadelems, /**< entries in matrix of quadratic part, may be NULL in case of no quadratic part */
124  const int* exprvaridxs, /**< maps variable indices in expression tree to indices in nlp, or NULL if no nonquadratic part */
125  const SCIP_EXPRTREE* exprtree /**< expression tree of nonquadratic part, or NULL if no nonquadratic part */
126  );
127 
128 /** change variable bounds */
129 extern
131  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
132  int nvars, /**< number of variables to change bounds */
133  const int* indices, /**< array with indices of variables to change bounds */
134  const SCIP_Real* lbs, /**< array with new lower bounds, or NULL if all should be -infty */
135  const SCIP_Real* ubs /**< array with new upper bounds, or NULL if all should be +infty */
136  );
137 
138 /** change constraint sides */
139 extern
141  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
142  int nconss, /**< number of constraints to change sides */
143  const int* indices, /**< array with indices of constraints to change sides */
144  const SCIP_Real* lhss, /**< array with new left-hand sides, or NULL if all should be -infty */
145  const SCIP_Real* rhss /**< array with new right-hand sides, or NULL if all should be +infty */
146  );
147 
148 /** deletes a set of variables */
149 extern
151  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
152  int* delstats /**< array with deletion status of vars in input (1 if var should be deleted, 0 if not);
153  * new position of var in output (-1 if var was deleted) */
154  );
155 
156 /** deletes a set of constraints */
157 extern
159  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
160  int* delstats /**< array with deletion status of rows in input (1 if row should be deleted, 0 if not);
161  * new position of row in output (-1 if row was deleted) */
162  );
163 
164 /** changes (or adds) linear coefficients in one constraint or objective */
165 extern
167  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
168  int considx, /**< index of constraint where linear coefficients should be changed, or -1 for objective */
169  int nentries, /**< number of coefficients to change */
170  const int* varidxs, /**< array with indices of variables which coefficients should be changed */
171  const SCIP_Real* newcoefs /**< array with new coefficients of variables */
172  );
173 
174 /** changes (or adds) coefficients in the quadratic part of one constraint or objective */
175 extern
177  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
178  int considx, /**< index of constraint where quadratic coefficients should be changed, or -1 for objective */
179  int nquadelems, /**< number of entries in quadratic constraint to change */
180  const SCIP_QUADELEM* quadelems /**< new elements in quadratic matrix (replacing already existing ones or adding new ones) */
181  );
182 
183 /** replaces expression tree of one constraint or objective */
184 extern
186  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
187  int considx, /**< index of constraint where expression tree should be changed, or -1 for objective */
188  const int* exprvaridxs, /**< problem indices of variables in expression tree */
189  const SCIP_EXPRTREE* exprtree /**< new expression tree, or NULL */
190  );
191 
192 /** changes one parameter of expression tree of one constraint or objective
193  */
194 extern
196  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
197  int considx, /**< index of constraint where parameter should be changed in expression tree, or -1 for objective */
198  int paramidx, /**< index of parameter */
199  SCIP_Real paramval /**< new value of parameter */
200  );
201 
202 /** changes the constant value in the objective function
203  */
204 extern
206  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
207  SCIP_Real objconstant /**< new value for objective constant */
208  );
209 
210 /** gives the current number of variables */
211 extern
213  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
214  );
215 
216 /** gives the current number of constraints */
217 extern
219  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
220  );
221 
222 /** gives the variables lower bounds */
223 extern
225  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
226  );
227 
228 /** gives the variables upper bounds */
229 extern
231  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
232  );
233 
234 /** gives the variables names, or NULL if not set */
235 extern
237  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
238  );
239 
240 /** Gives maximum degree of a variable w.r.t. objective and all constraints.
241  * The degree of a variable is the degree of the summand where it appears in, and is infinity for nonpolynomial terms.
242  */
243 extern
245  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
246  int varidx /**< the variable for which the degree is returned */
247  );
248 
249 /** Gives maximum degree of all variables w.r.t. objective and all constraints.
250  * The degree of a variable is the degree of the summand where it appears in, and is infinity for nonpolynomial terms.
251  */
252 extern
254  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
255  );
256 
257 /** gives left-hand side of a constraint */
258 extern
260  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
261  int considx /**< constraint index */
262  );
263 
264 /** gives right-hand side of a constraint */
265 extern
267  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
268  int considx /**< constraint index */
269  );
270 
271 /** gives name of a constraint, may be NULL */
272 extern
274  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
275  int considx /**< constraint index */
276  );
277 
278 /** gives maximum degree of a constraint or objective
279  * The degree is the maximal degree of all summands,, and is infinity for nonpolynomial terms.
280  */
281 extern
283  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
284  int considx /**< index of constraint for which the degree is requested, or -1 for objective */
285  );
286 
287 /** Gives maximum degree over all constraints and the objective (or over all variables, resp.).
288  * Thus, if this function returns 0, then the objective and all constraints are constant.
289  * If it returns 1, then the problem in linear.
290  * If it returns 2, then its a QP, QCP, or QCQP.
291  * And if it returns > 2, then it is an NLP.
292  */
293 extern
295  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
296  );
297 
298 /** Gives the evaluation capabilities that are shared among all expression trees in the problem. */
299 extern
301  SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
302  );
303 
304 /** evaluates the objective function in a given point */
305 extern
307  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
308  const SCIP_Real* x, /**< point where to evaluate */
309  SCIP_Real* objval /**< pointer to store objective value */
310  );
311 
312 /** evaluates one constraint function in a given point */
313 extern
315  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
316  int considx, /**< index of constraint to evaluate */
317  const SCIP_Real* x, /**< point where to evaluate */
318  SCIP_Real* conval /**< pointer to store constraint value */
319  );
320 
321 /** evaluates all constraint functions in a given point */
322 extern
324  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
325  const SCIP_Real* x, /**< point where to evaluate */
326  SCIP_Real* convals /**< pointer to store constraint values */
327  );
328 
329 /** computes the objective gradient in a given point */
330 extern
332  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
333  const SCIP_Real* x, /**< point where to evaluate */
334  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
335  SCIP_Real* objval, /**< pointer to buffer objective value */
336  SCIP_Real* objgrad /**< pointer to buffer (dense) objective gradient */
337  );
338 
339 /** computes a constraints gradient in a given point */
340 extern
342  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
343  const int considx, /**< index of constraint to compute gradient for */
344  const SCIP_Real* x, /**< point where to evaluate */
345  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
346  SCIP_Real* conval, /**< pointer to store constraint value */
347  SCIP_Real* congrad /**< pointer to store (dense) constraint gradient */
348  );
349 
350 /** gets sparsity pattern (rowwise) of Jacobian matrix
351  *
352  * Note that internal data is returned in *offset and *col, thus the user does not need to allocate memory there.
353  * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
354  */
355 extern
357  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
358  const int** offset, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
359  const int** col /**< pointer to store pointer that stores the indices of variables that appear in each row,
360  * offsets[nconss] gives length of col, can be NULL */
361  );
362 
363 /** evaluates the Jacobi matrix in a given point
364  *
365  * The values in the Jacobi matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetJacobianSparsity.
366  * The user need to call SCIPnlpiOracleGetJacobianSparsity at least ones before using this function.
367  */
368 extern
370  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
371  const SCIP_Real* x, /**< point where to evaluate */
372  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
373  SCIP_Real* convals, /**< pointer to store constraint values, can be NULL */
374  SCIP_Real* jacobi /**< pointer to store sparse jacobian values */
375  );
376 
377 /** gets sparsity pattern of the Hessian matrix of the Lagrangian
378  *
379  * Note that internal data is returned in *offset and *col, thus the user must not to allocate memory there.
380  * Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary.
381  * Only elements of the lower left triangle and the diagonal are counted.
382  */
383 extern
385  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
386  const int** offset, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
387  const int** col /**< pointer to store pointer that stores the indices of variables that appear in each row,
388  * offsets[nconss] gives length of col, can be NULL */
389  );
390 
391 /** evaluates the Hessian matrix of the Lagrangian in a given point
392  *
393  * The values in the Hessian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetHessianLagSparsity.
394  * The user must call SCIPnlpiOracleGetHessianLagSparsity at least ones before using this function.
395  * Only elements of the lower left triangle and the diagonal are computed.
396  */
397 extern
399  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
400  const SCIP_Real* x, /**< point where to evaluate */
401  SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
402  SCIP_Real objfactor, /**< weight for objective function */
403  const SCIP_Real* lambdas, /**< array with weights (Lagrangian multipliers) for the constraints */
404  SCIP_Real* hessian /**< pointer to store sparse hessian values */
405  );
406 
407 /** prints the problem to a file. */
408 extern
410  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
411  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
412  FILE* file /**< file to print to, or NULL for standard output */
413  );
414 
415 /** prints the problem to a file in GAMS format
416  * If there are variable (equation, resp.) names with more than 9 characters, then variable (equation, resp.) names are prefixed with an unique identifier.
417  * This is to make it easier to identify variables solution output in the listing file.
418  * Names with more than 64 characters are shorten to 64 letters due to GAMS limits.
419  */
420 extern
422  SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
423  SCIP_Real* initval, /**< starting point values for variables or NULL */
424  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
425  FILE* file /**< file to print to, or NULL for standard output */
426  );
427 
428 #ifdef __cplusplus
429 }
430 #endif
431 
432 #endif
SCIP_Real SCIPnlpiOracleGetConstraintLhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2271
const SCIP_Real * SCIPnlpiOracleGetVarUbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2220
SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2370
int * SCIPnlpiOracleGetVarDegrees(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2259
int SCIPnlpiOracleGetNVars(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2190
SCIP_RETCODE SCIPnlpiOracleDelVarSet(SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1709
#define infinity
Definition: gastrans.c:71
char * SCIPnlpiOracleGetConstraintName(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2297
type definitions for expression interpreter
SCIP_RETCODE SCIPnlpiOracleSetInfinity(SCIP_NLPIORACLE *oracle, SCIP_Real infinity)
Definition: nlpioracle.c:1376
SCIP_RETCODE SCIPnlpiOracleSetObjective(SCIP_NLPIORACLE *oracle, const SCIP_Real constant, int nlin, const int *lininds, const SCIP_Real *linvals, int nquadelems, const SCIP_QUADELEM *quadelems, const int *exprvaridxs, const SCIP_EXPRTREE *exprtree)
Definition: nlpioracle.c:1602
SCIP_RETCODE SCIPnlpiOracleAddConstraints(SCIP_NLPIORACLE *oracle, int nconss, const SCIP_Real *lhss, const SCIP_Real *rhss, const int *nlininds, int *const *lininds, SCIP_Real *const *linvals, const int *nquadelems, SCIP_QUADELEM *const *quadelems, int *const *exprvaridxs, SCIP_EXPRTREE *const *exprtrees, const char **consnames)
Definition: nlpioracle.c:1524
SCIP_RETCODE SCIPnlpiOracleDelConsSet(SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1819
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_RETCODE SCIPnlpiOraclePrintProblem(SCIP_NLPIORACLE *oracle, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
Definition: nlpioracle.c:2917
char ** SCIPnlpiOracleGetVarNames(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2230
SCIP_RETCODE SCIPnlpiOracleGetJacobianSparsity(SCIP_NLPIORACLE *oracle, const int **offset, const int **col)
Definition: nlpioracle.c:2499
SCIP_RETCODE SCIPnlpiOracleEvalJacobian(SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *convals, SCIP_Real *jacobi)
Definition: nlpioracle.c:2638
int SCIPnlpiOracleGetConstraintDegree(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2312
SCIP_RETCODE SCIPnlpiOracleChgConsSides(SCIP_NLPIORACLE *oracle, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
Definition: nlpioracle.c:1675
SCIP_RETCODE SCIPnlpiOracleChgExprParam(SCIP_NLPIORACLE *oracle, int considx, int paramidx, SCIP_Real paramval)
Definition: nlpioracle.c:2149
unsigned int SCIP_EXPRINTCAPABILITY
SCIP_RETCODE SCIPnlpiOracleSetProblemName(SCIP_NLPIORACLE *oracle, const char *name)
Definition: nlpioracle.c:1404
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient(SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *objval, SCIP_Real *objgrad)
Definition: nlpioracle.c:2453
SCIP_RETCODE SCIPnlpiOracleChgObjConstant(SCIP_NLPIORACLE *oracle, SCIP_Real objconstant)
Definition: nlpioracle.c:2174
SCIP_RETCODE SCIPnlpiOracleFree(SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:1347
const char * SCIPnlpiOracleGetProblemName(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1427
int SCIPnlpiOracleGetVarDegree(SCIP_NLPIORACLE *oracle, int varidx)
Definition: nlpioracle.c:2242
const SCIP_Real * SCIPnlpiOracleGetVarLbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2210
int SCIPnlpiOracleGetNConstraints(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2200
SCIP_RETCODE SCIPnlpiOracleAddVars(SCIP_NLPIORACLE *oracle, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
Definition: nlpioracle.c:1439
SCIP_Real SCIPnlpiOracleGetInfinity(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1392
char ** varnames
Definition: nlpioracle.c:67
#define SCIP_Bool
Definition: def.h:61
int SCIPnlpiOracleGetMaxDegree(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2344
SCIP_RETCODE SCIPnlpiOracleEvalConstraintGradient(SCIP_NLPIORACLE *oracle, const int considx, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *conval, SCIP_Real *congrad)
Definition: nlpioracle.c:2474
SCIP_RETCODE SCIPnlpiOracleChgQuadCoefs(SCIP_NLPIORACLE *oracle, int considx, int nquadelems, const SCIP_QUADELEM *quadelems)
Definition: nlpioracle.c:1994
SCIP_RETCODE SCIPnlpiOracleEvalHessianLag(SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real objfactor, const SCIP_Real *lambdas, SCIP_Real *hessian)
Definition: nlpioracle.c:2874
SCIP_Real SCIPnlpiOracleGetConstraintRhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2284
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue(SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *objval)
Definition: nlpioracle.c:2392
SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity(SCIP_NLPIORACLE *oracle, const int **offset, const int **col)
Definition: nlpioracle.c:2777
SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs(SCIP_NLPIORACLE *oracle, int considx, int nentries, const int *varidxs, const SCIP_Real *newcoefs)
Definition: nlpioracle.c:1897
SCIP_RETCODE SCIPnlpiOraclePrintProblemGams(SCIP_NLPIORACLE *oracle, SCIP_Real *initval, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
Definition: nlpioracle.c:2986
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue(SCIP_NLPIORACLE *oracle, int considx, const SCIP_Real *x, SCIP_Real *conval)
Definition: nlpioracle.c:2411
SCIP_RETCODE SCIPnlpiOracleChgVarBounds(SCIP_NLPIORACLE *oracle, int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
Definition: nlpioracle.c:1639
#define SCIP_Real
Definition: def.h:135
SCIP_RETCODE SCIPnlpiOracleChgExprtree(SCIP_NLPIORACLE *oracle, int considx, const int *exprvaridxs, const SCIP_EXPRTREE *exprtree)
Definition: nlpioracle.c:2092
BMS_BLKMEM * blkmem
Definition: nlpioracle.c:59
type definitions for message output methods
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:392
SCIP_RETCODE SCIPnlpiOracleCreate(BMS_BLKMEM *blkmem, SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:1320
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues(SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *convals)
Definition: nlpioracle.c:2430
type definitions for specific NLP solver interfaces