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-2026 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/** interval evaluate objective function for given variable bounds */
    321SCIP_EXPORT
    323 SCIP* scip, /**< SCIP data structure */
    324 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    325 SCIP_Real infinity, /**< value for infinity */
    326 const SCIP_Real* xmin, /**< lower bound on variable interval */
    327 const SCIP_Real* xmax, /**< upper bound on variable interval */
    328 SCIP_Real* objmin, /**< buffer to store lower bound of objective */
    329 SCIP_Real* objmax /**< buffer to store upper bound of objective */
    330 );
    331
    332/** interval evaluate one constraint function for given variable bounds */
    333SCIP_EXPORT
    335 SCIP* scip, /**< SCIP data structure */
    336 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    337 SCIP_Real infinity, /**< value for infinity */
    338 int considx, /**< index of constraint to evaluate */
    339 const SCIP_Real* xmin, /**< lower bound on variable interval */
    340 const SCIP_Real* xmax, /**< upper bound on variable interval */
    341 SCIP_Real* conmin, /**< buffer to store lower bound of constraint */
    342 SCIP_Real* conmax /**< buffer to store upper bound of constraint */
    343 );
    344
    345/** computes the objective gradient in a given point
    346 *
    347 * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
    348 */
    349SCIP_EXPORT
    351 SCIP* scip, /**< SCIP data structure */
    352 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    353 const SCIP_Real* x, /**< point where to evaluate */
    354 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
    355 SCIP_Real* objval, /**< pointer to buffer objective value */
    356 SCIP_Real* objgrad /**< pointer to buffer (dense) objective gradient */
    357 );
    358
    359/** computes a constraints gradient in a given point
    360 *
    361 * @return SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
    362 */
    363SCIP_EXPORT
    365 SCIP* scip, /**< SCIP data structure */
    366 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    367 const int considx, /**< index of constraint to compute gradient for */
    368 const SCIP_Real* x, /**< point where to evaluate */
    369 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
    370 SCIP_Real* conval, /**< pointer to store constraint value */
    371 SCIP_Real* congrad /**< pointer to store (dense) constraint gradient */
    372 );
    373
    374/** gets sparsity pattern (rowwise) of Jacobian matrix
    375 *
    376 * Note that internal data is returned in *rowoffsets and *cols, thus the user does not need to allocate memory there.
    377 * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
    378 */
    379SCIP_EXPORT
    381 SCIP* scip, /**< SCIP data structure */
    382 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    383 const int** rowoffsets, /**< pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL */
    384 const int** cols, /**< pointer to store pointer that stores the indices of variables that appear in each row,
    385 * rowoffset[nconss] gives length of col, can be NULL */
    386 const SCIP_Bool** colnlflags, /**< flags indicating whether an entry in nonlinear (sorted row-wise), can be NULL */
    387 int* nnlnz /**< number of nonlinear nonzeroes */
    388 );
    389
    390/** gets sparsity pattern (columnwise) of Jacobian matrix
    391 *
    392 * Note that internal data is returned in *coloffsets and *rows, thus the user does not need to allocate memory there.
    393 * Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
    394 */
    395SCIP_EXPORT
    397 SCIP* scip, /**< SCIP data structure */
    398 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    399 const int** coloffsets, /**< pointer to store pointer that stores the offsets to each column's sparsity pattern in row, can be NULL */
    400 const int** rows, /**< pointer to store pointer that stores the indices of rows that each variable participates in,
    401 * coloffset[nvars] gives length of row, can be NULL */
    402 const SCIP_Bool** rownlflags, /**< flags indicating whether an entry in nonlinear (sorted column-wise) */
    403 int* nnlnz /**< number of nonlinear nonzeroes */
    404 );
    405
    406/** gets nonzero indices in the objective gradient
    407 *
    408 * Note that internal data is returned in *nz and *nlnz, thus the user does not need to allocate memory there.
    409 */
    410SCIP_EXPORT
    412 SCIP* scip, /**< SCIP data structure */
    413 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    414 const int** nz, /**< pointer to store pointer that stores the nonzeroes of the objective gradient */
    415 const SCIP_Bool** nlnz, /**< flags marking nonlinear nonzeroes */
    416 int* nnz, /**< number of nonzeroes */
    417 int* nnlnz /**< number of nonlinear nonzeroes */
    418 );
    419
    420/** evaluates the Jacobian matrix in a given point
    421 *
    422 * The values in the Jacobian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetJacobianRowSparsity().
    423 * The user need to call SCIPnlpiOracleGetJacobianRowSparsity() at least ones before using this function.
    424 *
    425 * @return SCIP_INVALIDDATA, if the Jacobian could not be evaluated (domain error, etc.)
    426 */
    427SCIP_EXPORT
    429 SCIP* scip, /**< SCIP data structure */
    430 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    431 const SCIP_Real* x, /**< point where to evaluate */
    432 SCIP_Bool isnewx, /**< has the point x changed since the last call to some evaluation function? */
    433 SCIP_Real* convals, /**< pointer to store constraint values, can be NULL */
    434 SCIP_Real* jacobi /**< pointer to store sparse jacobian values */
    435 );
    436
    437/** gets sparsity pattern of the Hessian matrix of the Lagrangian
    438 *
    439 * Note that internal data is returned in *offset and *col, thus the user must not to allocate memory there.
    440 * Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary.
    441 * Only elements of the lower left triangle and the diagonal are counted.
    442 */
    443SCIP_EXPORT
    445 SCIP* scip, /**< SCIP data structure */
    446 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    447 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 */
    448 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 */
    449 SCIP_Bool colwise /**< tells whether a columnwise (TRUE) or rowwise representation is needed */
    450 );
    451
    452/** evaluates the Hessian matrix of the Lagrangian in a given point
    453 *
    454 * The values in the Hessian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetHessianLagSparsity().
    455 * The user must call SCIPnlpiOracleGetHessianLagSparsity() at least ones before using this function.
    456 * Only elements of the lower left triangle and the diagonal are computed.
    457 *
    458 * @return SCIP_INVALIDDATA, if the Hessian could not be evaluated (domain error, etc.)
    459 */
    460SCIP_EXPORT
    462 SCIP* scip, /**< SCIP data structure */
    463 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    464 const SCIP_Real* x, /**< point where to evaluate */
    465 SCIP_Bool isnewx_obj, /**< has the point x changed since the last call to an objective evaluation function? */
    466 SCIP_Bool isnewx_cons, /**< has the point x changed since the last call to the constraint evaluation function? */
    467 SCIP_Real objfactor, /**< weight for objective function */
    468 const SCIP_Real* lambda, /**< array with weights (Lagrangian multipliers) for the constraints */
    469 SCIP_Real* hessian, /**< pointer to store sparse hessian values */
    470 SCIP_Bool colwise /**< whether the entries should be first sorted column-wise (TRUE) or row-wise */
    471 );
    472
    473/** resets clock that measures evaluation time */
    474SCIP_EXPORT
    476 SCIP* scip, /**< SCIP data structure */
    477 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
    478 );
    479
    480/** gives time spend in evaluation since last reset of clock
    481 *
    482 * Gives 0 if the eval clock is disabled.
    483 */
    484SCIP_EXPORT
    486 SCIP* scip, /**< SCIP data structure */
    487 SCIP_NLPIORACLE* oracle /**< pointer to NLPIORACLE data structure */
    488 );
    489
    490/** prints the problem to a file. */
    491SCIP_EXPORT
    493 SCIP* scip, /**< SCIP data structure */
    494 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    495 FILE* file /**< file to print to, or NULL for standard output */
    496 );
    497
    498/** prints the problem to a file in GAMS format
    499 *
    500 * If there are variable (equation, resp.) names with more than 9 characters, then variable (equation, resp.) names are prefixed with an unique identifier.
    501 * This is to make it easier to identify variables solution output in the listing file.
    502 * Names with more than 64 characters are shorten to 64 letters due to GAMS limits.
    503 */
    504SCIP_EXPORT
    506 SCIP* scip, /**< SCIP data structure */
    507 SCIP_NLPIORACLE* oracle, /**< pointer to NLPIORACLE data structure */
    508 SCIP_Real* initval, /**< starting point values for variables or NULL */
    509 FILE* file /**< file to print to, or NULL for standard output */
    510 );
    511
    512/** @} */
    513
    514#ifdef __cplusplus
    515}
    516#endif
    517
    518#endif
    SCIP_VAR ** x
    Definition: circlepacking.c:63
    #define SCIP_Bool
    Definition: def.h:100
    #define SCIP_Real
    Definition: def.h:165
    #define infinity
    Definition: gastrans.c:80
    SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *objval)
    Definition: nlpioracle.c:2221
    SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, int nentries, const int *varidxs, const SCIP_Real *newcoefs)
    Definition: nlpioracle.c:1871
    SCIP_RETCODE SCIPnlpiOracleEvalConstraintInterval(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real infinity, int considx, const SCIP_Real *xmin, const SCIP_Real *xmax, SCIP_Real *conmin, SCIP_Real *conmax)
    Definition: nlpioracle.c:2336
    SCIP_RETCODE SCIPnlpiOracleGetJacobianRowSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **rowoffsets, const int **cols, const SCIP_Bool **colnlflags, int *nnlnz)
    Definition: nlpioracle.c:2427
    SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **offset, const int **allnz, SCIP_Bool colwise)
    Definition: nlpioracle.c:2833
    SCIP_RETCODE SCIPnlpiOracleChgVarBounds(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
    Definition: nlpioracle.c:1571
    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:1481
    SCIP_Bool SCIPnlpiOracleIsConstraintNonlinear(SCIP_NLPIORACLE *oracle, int considx)
    Definition: nlpioracle.c:2181
    SCIP_RETCODE SCIPnlpiOracleDelVarSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
    Definition: nlpioracle.c:1643
    SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Real *convals)
    Definition: nlpioracle.c:2270
    SCIP_RETCODE SCIPnlpiOracleCreate(SCIP *scip, SCIP_NLPIORACLE **oracle)
    Definition: nlpioracle.c:1297
    void SCIPnlpiOracleGetVarCounts(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **lincounts, const int **nlcounts)
    Definition: nlpioracle.c:2095
    char * SCIPnlpiOracleGetConstraintName(SCIP_NLPIORACLE *oracle, int considx)
    Definition: nlpioracle.c:2148
    SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *objval, SCIP_Real *objgrad)
    Definition: nlpioracle.c:2368
    SCIP_RETCODE SCIPnlpiOracleResetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2984
    SCIP_RETCODE SCIPnlpiOraclePrintProblem(SCIP *scip, SCIP_NLPIORACLE *oracle, FILE *file)
    Definition: nlpioracle.c:3011
    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:1542
    SCIP_Real SCIPnlpiOracleGetConstraintRhs(SCIP_NLPIORACLE *oracle, int considx)
    Definition: nlpioracle.c:2135
    SCIP_Real SCIPnlpiOracleGetEvalTime(SCIP *scip, SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:3000
    SCIP_RETCODE SCIPnlpiOracleChgConsSides(SCIP *scip, SCIP_NLPIORACLE *oracle, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
    Definition: nlpioracle.c:1608
    SCIP_Real SCIPnlpiOracleGetConstraintLhs(SCIP_NLPIORACLE *oracle, int considx)
    Definition: nlpioracle.c:2122
    SCIP_RETCODE SCIPnlpiOracleGetJacobianColSparsity(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **coloffsets, const int **rows, const SCIP_Bool **rownlflags, int *nnlnz)
    Definition: nlpioracle.c:2481
    SCIP_RETCODE SCIPnlpiOracleAddVars(SCIP *scip, SCIP_NLPIORACLE *oracle, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
    Definition: nlpioracle.c:1395
    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:2933
    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:2397
    int SCIPnlpiOracleGetNVars(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2030
    int SCIPnlpiOracleGetNConstraints(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2040
    SCIP_RETCODE SCIPnlpiOracleGetObjGradientNnz(SCIP *scip, SCIP_NLPIORACLE *oracle, const int **nz, const SCIP_Bool **nlnz, int *nnz, int *nnlnz)
    Definition: nlpioracle.c:2573
    SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability(SCIP *scip, SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2198
    SCIP_Real SCIPnlpiOracleGetObjectiveConstant(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2111
    SCIP_RETCODE SCIPnlpiOraclePrintProblemGams(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real *initval, FILE *file)
    Definition: nlpioracle.c:3079
    SCIP_Bool SCIPnlpiOracleIsVarNonlinear(SCIP *scip, SCIP_NLPIORACLE *oracle, int varidx)
    Definition: nlpioracle.c:2080
    SCIP_RETCODE SCIPnlpiOracleEvalJacobian(SCIP *scip, SCIP_NLPIORACLE *oracle, const SCIP_Real *x, SCIP_Bool isnewx, SCIP_Real *convals, SCIP_Real *jacobi)
    Definition: nlpioracle.c:2706
    SCIP_RETCODE SCIPnlpiOracleDelConsSet(SCIP *scip, SCIP_NLPIORACLE *oracle, int *delstats)
    Definition: nlpioracle.c:1785
    SCIP_RETCODE SCIPnlpiOracleSetProblemName(SCIP *scip, SCIP_NLPIORACLE *oracle, const char *name)
    Definition: nlpioracle.c:1359
    SCIP_RETCODE SCIPnlpiOracleChgObjConstant(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real objconstant)
    Definition: nlpioracle.c:2013
    SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, const SCIP_Real *x, SCIP_Real *conval)
    Definition: nlpioracle.c:2246
    char ** SCIPnlpiOracleGetVarNames(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2070
    SCIP_Real SCIPnlpiOracleGetConstraintLinearCoef(SCIP_NLPIORACLE *oracle, int considx, int varpos)
    Definition: nlpioracle.c:2161
    SCIP_RETCODE SCIPnlpiOracleEvalObjectiveInterval(SCIP *scip, SCIP_NLPIORACLE *oracle, SCIP_Real infinity, const SCIP_Real *xmin, const SCIP_Real *xmax, SCIP_Real *objmin, SCIP_Real *objmax)
    Definition: nlpioracle.c:2299
    const SCIP_Real * SCIPnlpiOracleGetVarLbs(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2050
    const SCIP_Real * SCIPnlpiOracleGetVarUbs(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:2060
    SCIP_RETCODE SCIPnlpiOracleFree(SCIP *scip, SCIP_NLPIORACLE **oracle)
    Definition: nlpioracle.c:1327
    const char * SCIPnlpiOracleGetProblemName(SCIP_NLPIORACLE *oracle)
    Definition: nlpioracle.c:1383
    SCIP_RETCODE SCIPnlpiOracleChgExpr(SCIP *scip, SCIP_NLPIORACLE *oracle, int considx, SCIP_EXPR *expr)
    Definition: nlpioracle.c:1967
    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