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-2025 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 nlpioracle.h
26 * @ingroup PUBLICCOREAPI
27 * @brief methods to store an NLP and request function, gradient, and Hessian values
28 * @author Stefan Vigerske
29 *
30 * A common part of many NLPIs that takes care of the problem storage and function, gradient, and Hessian evaluation.
31 */
32
33#ifndef __SCIP_NLPIORACLE_H__
34#define __SCIP_NLPIORACLE_H__
35
36#include "scip/type_message.h"
38
39/**@defgroup NLPIOracle NLPI Oracle
40 * @ingroup DataStructures
41 * @brief NLP representation used by various NLP solver interface implementations
42 *
43 *@{
44 */
45
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51typedef struct SCIP_NlpiOracle SCIP_NLPIORACLE; /**< NLPI oracle data structure */
52
53/** creates an NLPIORACLE data structure */
54SCIP_EXPORT
56 SCIP* scip, /**< SCIP data structure */
57 SCIP_NLPIORACLE** oracle /**< pointer to store NLPIORACLE data structure */
58 );
59
60/** frees an NLPIORACLE data structure */
61SCIP_EXPORT
63 SCIP* scip, /**< SCIP data structure */
64 SCIP_NLPIORACLE** oracle /**< pointer to NLPIORACLE data structure */
65 );
66
67/** sets the problem name (used for printing) */
68SCIP_EXPORT
70 SCIP* scip, /**< SCIP data structure */
71 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
72 const char* name /**< name of problem */
73 );
74
75/** gets the problem name, or NULL if none set */
76SCIP_EXPORT
78 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
79 );
80
81/** adds variables */
82SCIP_EXPORT
84 SCIP* scip, /**< SCIP data structure */
85 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
86 int nvars, /**< number of variables to add */
87 const SCIP_Real* lbs, /**< array with lower bounds of new variables, or NULL if all -infinity */
88 const SCIP_Real* ubs, /**< array with upper bounds of new variables, or NULL if all +infinity */
89 const char** varnames /**< array with names of new variables, or NULL if no names should be stored */
90 );
91
92/** adds constraints
93 *
94 * linear coefficients: row(=constraint) oriented matrix;
95 * quadratic coefficients: row oriented matrix for each constraint
96 */
97SCIP_EXPORT
99 SCIP* scip, /**< SCIP data structure */
100 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
101 int nconss, /**< number of constraints to add */
102 const SCIP_Real* lhss, /**< array with left-hand sides of constraints, or NULL if all -infinity */
103 const SCIP_Real* rhss, /**< array with right-hand sides of constraints, or NULL if all +infinity */
104 const int* nlininds, /**< number of linear coefficients for each constraint, may be NULL in case of no linear part */
105 int* const* lininds, /**< indices of variables for linear coefficients for each constraint, may be NULL in case of no linear part */
106 SCIP_Real* const* linvals, /**< values of linear coefficient for each constraint, may be NULL in case of no linear part */
107 SCIP_EXPR** exprs, /**< NULL if no nonlinear parts, otherwise exprs[.] gives nonlinear part,
108 * or NULL if no nonlinear part in this constraint */
109 const char** consnames /**< names of new constraints, or NULL if no names should be stored */
110 );
111
112/** sets or overwrites objective, a minimization problem is expected
113 *
114 * May change sparsity pattern.
115 */
116SCIP_EXPORT
118 SCIP* scip, /**< SCIP data structure */
119 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
120 const SCIP_Real constant, /**< constant part of objective */
121 int nlin, /**< number of linear variable coefficients */
122 const int* lininds, /**< indices of linear variables, or NULL if no linear part */
123 const SCIP_Real* linvals, /**< coefficients of linear variables, or NULL if no linear part */
124 SCIP_EXPR* expr /**< expression of nonlinear part, or NULL if no nonlinear part */
125 );
126
127/** change variable bounds */
128SCIP_EXPORT
130 SCIP* scip, /**< SCIP data structure */
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 */
139SCIP_EXPORT
141 SCIP* scip, /**< SCIP data structure */
142 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
143 int nconss, /**< number of constraints to change sides */
144 const int* indices, /**< array with indices of constraints to change sides */
145 const SCIP_Real* lhss, /**< array with new left-hand sides, or NULL if all should be -infty */
146 const SCIP_Real* rhss /**< array with new right-hand sides, or NULL if all should be +infty */
147 );
148
149/** deletes a set of variables */
150SCIP_EXPORT
152 SCIP* scip, /**< SCIP data structure */
153 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
154 int* delstats /**< array with deletion status of vars in input (1 if var should be deleted, 0 if not);
155 * new position of var in output (-1 if var was deleted) */
156 );
157
158/** deletes a set of constraints */
159SCIP_EXPORT
161 SCIP* scip, /**< SCIP data structure */
162 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
163 int* delstats /**< array with deletion status of rows in input (1 if row should be deleted, 0 if not);
164 * new position of row in output (-1 if row was deleted) */
165 );
166
167/** changes (or adds) linear coefficients in one constraint or objective */
168SCIP_EXPORT
170 SCIP* scip, /**< SCIP data structure */
171 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
172 int considx, /**< index of constraint where linear coefficients should be changed, or -1 for objective */
173 int nentries, /**< number of coefficients to change */
174 const int* varidxs, /**< array with indices of variables which coefficients should be changed */
175 const SCIP_Real* newcoefs /**< array with new coefficients of variables */
176 );
177
178/** replaces expression of one constraint or objective */
179SCIP_EXPORT
181 SCIP* scip, /**< SCIP data structure */
182 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
183 int considx, /**< index of constraint where expression should be changed, or -1 for objective */
184 SCIP_EXPR* expr /**< new expression, or NULL */
185 );
186
187/** changes the constant value in the objective function
188 */
189SCIP_EXPORT
191 SCIP* scip, /**< SCIP data structure */
192 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
193 SCIP_Real objconstant /**< new value for objective constant */
194 );
195
196/** gives the current number of variables */
197SCIP_EXPORT
199 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
200 );
201
202/** gives the current number of constraints */
203SCIP_EXPORT
205 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
206 );
207
208/** gives the variables lower bounds */
209SCIP_EXPORT
211 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
212 );
213
214/** gives the variables upper bounds */
215SCIP_EXPORT
217 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
218 );
219
220/** gives the variables names, or NULL if not set */
221SCIP_EXPORT
223 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
224 );
225
226/** indicates whether variable appears nonlinear in any objective or constraint */
227SCIP_EXPORT
229 SCIP* scip, /**< SCIP data structure */
230 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
231 int varidx /**< the variable to check */
232 );
233
234/** returns number of linear and nonlinear appearances of variables in objective and constraints */
235SCIP_EXPORT
237 SCIP* scip, /**< SCIP data structure */
238 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
239 const int** lincounts, /**< buffer to return pointer to array of counts of linear appearances */
240 const int** nlcounts /**< buffer to return pointer to array of counts of nonlinear appearances */
241 );
242
243/** gives constant term of objective */
244SCIP_EXPORT
246 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
247 );
248
249/** gives left-hand side of a constraint */
250SCIP_EXPORT
252 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
253 int considx /**< constraint index */
254 );
255
256/** gives right-hand side of a constraint */
257SCIP_EXPORT
259 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
260 int considx /**< constraint index */
261 );
262
263/** gives name of a constraint, may be NULL */
264SCIP_EXPORT
266 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
267 int considx /**< constraint index */
268 );
269
270/** gives linear coefficient of a given variable in a constraint */
271SCIP_EXPORT
273 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
274 int considx, /**< constraint index, or -1 for objective */
275 int varpos /**< position in the constraint's linear coefficient array */
276 );
277
278/** indicates whether constraint is nonlinear */
279SCIP_EXPORT
281 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
282 int considx /**< index of constraint for which nonlinearity status is returned, or -1 for objective */
283 );
284
285/** gives the evaluation capabilities that are shared among all expressions in the problem */
286SCIP_EXPORT
288 SCIP* scip, /**< SCIP data structure */
289 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
290 );
291
292/** evaluates the objective function in a given point */
293SCIP_EXPORT
295 SCIP* scip, /**< SCIP data structure */
296 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
297 const SCIP_Real* x, /**< point where to evaluate */
298 SCIP_Real* objval /**< pointer to store objective value */
299 );
300
301/** evaluates one constraint function in a given point */
302SCIP_EXPORT
304 SCIP* scip, /**< SCIP data structure */
305 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
306 int considx, /**< index of constraint to evaluate */
307 const SCIP_Real* x, /**< point where to evaluate */
308 SCIP_Real* conval /**< pointer to store constraint value */
309 );
310
311/** evaluates all constraint functions in a given point */
312SCIP_EXPORT
314 SCIP* scip, /**< SCIP data structure */
315 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
316 const SCIP_Real* x, /**< point where to evaluate */
317 SCIP_Real* convals /**< pointer to store constraint values */
318 );
319
320/** computes the objective gradient in a given point
321 *
322 * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
323 */
324SCIP_EXPORT
326 SCIP* scip, /**< SCIP data structure */
327 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
328 const SCIP_Real* x, /**< point where to evaluate */
329 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
330 SCIP_Real* objval, /**< pointer to buffer objective value */
331 SCIP_Real* objgrad /**< pointer to buffer (dense) objective gradient */
332 );
333
334/** computes a constraints gradient in a given point
335 *
336 * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
337 */
338SCIP_EXPORT
340 SCIP* scip, /**< SCIP data structure */
341 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
342 const int considx, /**< index of constraint to compute gradient for */
343 const SCIP_Real* x, /**< point where to evaluate */
344 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
345 SCIP_Real* conval, /**< pointer to store constraint value */
346 SCIP_Real* congrad /**< pointer to store (dense) constraint gradient */
347 );
348
349/** gets sparsity pattern (rowwise) of Jacobian matrix
350 *
351 * Note that internal data is returned in *rowoffsets and *cols, thus the user does not need to allocate memory there.
352 * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
353 */
354SCIP_EXPORT
356 SCIP* scip, /**< SCIP data structure */
357 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
358 const int** rowoffsets, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
359 const int** cols, /**< pointer to store pointer that stores the indices of variables that appear in each row,
360 * rowoffset[nconss] gives length of col, can be NULL */
361 const SCIP_Bool** colnlflags, /**< flags indicating whether an entry in nonlinear (sorted row-wise), can be NULL */
362 int* nnlnz /**< number of nonlinear nonzeroes */
363 );
364
365/** gets sparsity pattern (columnwise) of Jacobian matrix
366 *
367 * Note that internal data is returned in *coloffsets and *rows, thus the user does not need to allocate memory there.
368 * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
369 */
370SCIP_EXPORT
372 SCIP* scip, /**< SCIP data structure */
373 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
374 const int** coloffsets, /**< pointer to store pointer that stores the offsets to each column's sparsity pattern in row, can be NULL */
375 const int** rows, /**< pointer to store pointer that stores the indices of rows that each variable participates in,
376 * coloffset[nvars] gives length of row, can be NULL */
377 const SCIP_Bool** rownlflags, /**< flags indicating whether an entry in nonlinear (sorted column-wise) */
378 int* nnlnz /**< number of nonlinear nonzeroes */
379 );
380
381/** gets nonzero indices in the objective gradient
382 *
383 * Note that internal data is returned in *nz and *nlnz, thus the user does not need to allocate memory there.
384 */
385SCIP_EXPORT
387 SCIP* scip, /**< SCIP data structure */
388 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
389 const int** nz, /**< pointer to store pointer that stores the nonzeroes of the objective gradient */
390 const SCIP_Bool** nlnz, /**< flags marking nonlinear nonzeroes */
391 int* nnz, /**< number of nonzeroes */
392 int* nnlnz /**< number of nonlinear nonzeroes */
393 );
394
395/** evaluates the Jacobian matrix in a given point
396 *
397 * The values in the Jacobian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetJacobianRowSparsity().
398 * The user need to call SCIPnlpiOracleGetJacobianRowSparsity() at least ones before using this function.
399 *
400 * @return SCIP_INVALIDDATA, if the Jacobian could not be evaluated (domain error, etc.)
401 */
402SCIP_EXPORT
404 SCIP* scip, /**< SCIP data structure */
405 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
406 const SCIP_Real* x, /**< point where to evaluate */
407 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
408 SCIP_Real* convals, /**< pointer to store constraint values, can be NULL */
409 SCIP_Real* jacobi /**< pointer to store sparse jacobian values */
410 );
411
412/** gets sparsity pattern of the Hessian matrix of the Lagrangian
413 *
414 * Note that internal data is returned in *offset and *col, thus the user must not to allocate memory there.
415 * Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary.
416 * Only elements of the lower left triangle and the diagonal are counted.
417 */
418SCIP_EXPORT
420 SCIP* scip, /**< SCIP data structure */
421 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
422 const int** offset, /**< pointer to store pointer that stores the offsets to each row's (or col's if colwise == TRUE) sparsity pattern in nzs, can be NULL */
423 const int** allnz, /**< pointer to store pointer that stores the indices of variables that appear in each row (or col if colwise = TRUE), offset[nvars] gives length of nzs, can be NULL */
424 SCIP_Bool colwise /**< tells whether a columnwise (TRUE) or rowwise representation is needed */
425 );
426
427/** evaluates the Hessian matrix of the Lagrangian in a given point
428 *
429 * The values in the Hessian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetHessianLagSparsity().
430 * The user must call SCIPnlpiOracleGetHessianLagSparsity() at least ones before using this function.
431 * Only elements of the lower left triangle and the diagonal are computed.
432 *
433 * @return SCIP_INVALIDDATA, if the Hessian could not be evaluated (domain error, etc.)
434 */
435SCIP_EXPORT
437 SCIP* scip, /**< SCIP data structure */
438 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
439 const SCIP_Real* x, /**< point where to evaluate */
440 SCIP_Bool isnewx_obj, /**< has the point x changed since the last call to an objective evaluation function? */
441 SCIP_Bool isnewx_cons, /**< has the point x changed since the last call to the constraint evaluation function? */
442 SCIP_Real objfactor, /**< weight for objective function */
443 const SCIP_Real* lambda, /**< array with weights (Lagrangian multipliers) for the constraints */
444 SCIP_Real* hessian, /**< pointer to store sparse hessian values */
445 SCIP_Bool colwise /**< whether the entries should be first sorted column-wise (TRUE) or row-wise */
446 );
447
448/** resets clock that measures evaluation time */
449SCIP_EXPORT
451 SCIP* scip, /**< SCIP data structure */
452 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
453 );
454
455/** gives time spend in evaluation since last reset of clock
456 *
457 * Gives 0 if the eval clock is disabled.
458 */
459SCIP_EXPORT
461 SCIP* scip, /**< SCIP data structure */
462 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
463 );
464
465/** prints the problem to a file. */
466SCIP_EXPORT
468 SCIP* scip, /**< SCIP data structure */
469 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
470 FILE* file /**< file to print to, or NULL for standard output */
471 );
472
473/** prints the problem to a file in GAMS format
474 *
475 * If there are variable (equation, resp.) names with more than 9 characters, then variable (equation, resp.) names are prefixed with an unique identifier.
476 * This is to make it easier to identify variables solution output in the listing file.
477 * Names with more than 64 characters are shorten to 64 letters due to GAMS limits.
478 */
479SCIP_EXPORT
481 SCIP* scip, /**< SCIP data structure */
482 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
483 SCIP_Real* initval, /**< starting point values for variables or NULL */
484 FILE* file /**< file to print to, or NULL for standard output */
485 );
486
487/** @} */
488
489#ifdef __cplusplus
490}
491#endif
492
493#endif
SCIP_VAR ** x
Definition: circlepacking.c:63
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *objval)
Definition: nlpioracle.c:2124
SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, int nentries, const int *varidxs, const SCIP_Real *newcoefs)
Definition: nlpioracle.c:1774
SCIP_RETCODE SCIPnlpiOracleGetJacobianRowSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **rowoffsets, const int **cols, const SCIP_Bool **colnlflags, int *nnlnz)
Definition: nlpioracle.c:2264
SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **offset, const int **allnz, SCIP_Bool colwise)
Definition: nlpioracle.c:2670
SCIP_RETCODE SCIPnlpiOracleChgVarBounds(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
Definition: nlpioracle.c:1474
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:1384
SCIP_Bool SCIPnlpiOracleIsConstraintNonlinear(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2084
SCIP_RETCODE SCIPnlpiOracleDelVarSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1546
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *convals)
Definition: nlpioracle.c:2173
SCIP_RETCODE SCIPnlpiOracleCreate(SCIP *scip, SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:1200
void SCIPnlpiOracleGetVarCounts(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **lincounts, const int **nlcounts)
Definition: nlpioracle.c:1998
char * SCIPnlpiOracleGetConstraintName(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2051
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *objval, SCIP_Real *objgrad)
Definition: nlpioracle.c:2205
SCIP_RETCODE SCIPnlpiOracleResetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2821
SCIP_RETCODE SCIPnlpiOraclePrintProblem(SCIP *scip, SCIP_NLPIORACLE *oracle, FILE *file)
Definition: nlpioracle.c:2848
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:1445
SCIP_Real SCIPnlpiOracleGetConstraintRhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2038
SCIP_Real SCIPnlpiOracleGetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2837
SCIP_RETCODE SCIPnlpiOracleChgConsSides(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
Definition: nlpioracle.c:1511
SCIP_Real SCIPnlpiOracleGetConstraintLhs(SCIP_NLPIORACLE *oracle, int considx)
Definition: nlpioracle.c:2025
SCIP_RETCODE SCIPnlpiOracleGetJacobianColSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **coloffsets, const int **rows, const SCIP_Bool **rownlflags, int *nnlnz)
Definition: nlpioracle.c:2318
SCIP_RETCODE SCIPnlpiOracleAddVars(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
Definition: nlpioracle.c:1298
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 *lambda, SCIP_Real *hessian, SCIP_Bool colwise)
Definition: nlpioracle.c:2770
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:2234
int SCIPnlpiOracleGetNVars(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1933
int SCIPnlpiOracleGetNConstraints(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1943
SCIP_RETCODE SCIPnlpiOracleGetObjGradientNnz(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **nz, const SCIP_Bool **nlnz, int *nnz, int *nnlnz)
Definition: nlpioracle.c:2410
SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability(SCIP *scip, SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2101
SCIP_Real SCIPnlpiOracleGetObjectiveConstant(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:2014
SCIP_RETCODE SCIPnlpiOraclePrintProblemGams(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real *initval, FILE *file)
Definition: nlpioracle.c:2916
SCIP_Bool SCIPnlpiOracleIsVarNonlinear(SCIP *scip, SCIP_NLPIORACLE *oracle, int varidx)
Definition: nlpioracle.c:1983
SCIP_RETCODE SCIPnlpiOracleEvalJacobian(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *convals, SCIP_Real *jacobi)
Definition: nlpioracle.c:2543
SCIP_RETCODE SCIPnlpiOracleDelConsSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
Definition: nlpioracle.c:1688
SCIP_RETCODE SCIPnlpiOracleSetProblemName(SCIP *scip, SCIP_NLPIORACLE *oracle, const char *name)
Definition: nlpioracle.c:1262
SCIP_RETCODE SCIPnlpiOracleChgObjConstant(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real objconstant)
Definition: nlpioracle.c:1916
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, const SCIP_Real *x, SCIP_Real *conval)
Definition: nlpioracle.c:2149
char ** SCIPnlpiOracleGetVarNames(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1973
SCIP_Real SCIPnlpiOracleGetConstraintLinearCoef(SCIP_NLPIORACLE *oracle, int considx, int varpos)
Definition: nlpioracle.c:2064
const SCIP_Real * SCIPnlpiOracleGetVarLbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1953
const SCIP_Real * SCIPnlpiOracleGetVarUbs(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1963
SCIP_RETCODE SCIPnlpiOracleFree(SCIP *scip, SCIP_NLPIORACLE **oracle)
Definition: nlpioracle.c:1230
const char * SCIPnlpiOracleGetProblemName(SCIP_NLPIORACLE *oracle)
Definition: nlpioracle.c:1286
SCIP_RETCODE SCIPnlpiOracleChgExpr(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, SCIP_EXPR *expr)
Definition: nlpioracle.c:1870
char ** varnames
Definition: nlpioracle.c:72
type definitions for expression interpreter
unsigned int SCIP_EXPRINTCAPABILITY
type definitions for message output methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63