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