methods to store an NLP and request function, gradient, and hessian values
Not a full NLPI, but implements a common part of many NLPIs that takes care of the problem storage and function, gradient, and hessian evaluation.
Definition in file nlpioracle.h.
Go to the source code of this file.
Typedefs | |
typedef struct SCIP_NlpiOracle | SCIP_NLPIORACLE |
typedef struct SCIP_NlpiOracle SCIP_NLPIORACLE |
NLPI oracle data structure
Definition at line 36 of file nlpioracle.h.
SCIP_RETCODE SCIPnlpiOracleCreate | ( | BMS_BLKMEM * | blkmem, |
SCIP_NLPIORACLE ** | oracle | ||
) |
creates an NLPIORACLE data structure
blkmem | block memory |
oracle | pointer to store NLPIORACLE data structure |
Definition at line 1325 of file nlpioracle.c.
References BMSallocMemory, BMSclearMemory, createConstraint(), SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_INFINITY, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCreate(), SCIPexprintGetName(), and TRUE.
Referenced by SCIP_DECL_NLPICREATEPROBLEM().
SCIP_RETCODE SCIPnlpiOracleFree | ( | SCIP_NLPIORACLE ** | oracle | ) |
frees an NLPIORACLE data structure
oracle | pointer to NLPIORACLE data structure |
Definition at line 1352 of file nlpioracle.c.
References BMSfreeMemory, freeConstraint(), freeConstraints(), freeVariables(), invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintFree(), and SCIPnlpiOracleSetProblemName().
Referenced by SCIP_DECL_NLPIFREEPROBLEM().
SCIP_RETCODE SCIPnlpiOracleSetInfinity | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_Real | infinity | ||
) |
sets the value for infinity
oracle | pointer to NLPIORACLE data structure |
infinity | value to use for infinity |
Definition at line 1381 of file nlpioracle.c.
References infinity, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICREATEPROBLEM(), and SCIP_DECL_NLPISETREALPAR().
SCIP_Real SCIPnlpiOracleGetInfinity | ( | SCIP_NLPIORACLE * | oracle | ) |
gets the value for infinity
oracle | pointer to NLPIORACLE data structure |
Definition at line 1397 of file nlpioracle.c.
References SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIGETREALPAR(), and SCIP_DECL_NLPISOLVE().
SCIP_RETCODE SCIPnlpiOracleSetProblemName | ( | SCIP_NLPIORACLE * | oracle, |
const char * | name | ||
) |
sets the problem name (used for printing)
oracle | pointer to NLPIORACLE data structure |
name | name of problem |
Definition at line 1409 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICREATEPROBLEM(), and SCIPnlpiOracleFree().
const char* SCIPnlpiOracleGetProblemName | ( | SCIP_NLPIORACLE * | oracle | ) |
gets the problem name, or NULL if none set
oracle | pointer to NLPIORACLE data structure |
Definition at line 1432 of file nlpioracle.c.
References SCIPdebugMessage.
SCIP_RETCODE SCIPnlpiOracleAddVars | ( | SCIP_NLPIORACLE * | oracle, |
int | nvars, | ||
const SCIP_Real * | lbs, | ||
const SCIP_Real * | ubs, | ||
const char ** | varnames | ||
) |
adds variables
oracle | pointer to NLPIORACLE data structure |
nvars | number of variables to add |
lbs | array with lower bounds of new variables, or NULL if all -infinity |
ubs | array with upper bounds of new variables, or NULL if all +infinity |
varnames | array with names of new variables, or NULL if no names should be stored |
Definition at line 1444 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMScopyMemoryArray, BMSduplicateBlockMemoryArray, ensureVarsSize(), EPSEQ, invalidateHessianLagSparsity(), SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIADDVARS().
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 | ||
) |
adds constraints
linear coefficients: row(=constraint) oriented matrix; quadratic coefficients: row oriented matrix for each constraint
oracle | pointer to NLPIORACLE data structure |
nconss | number of constraints to add |
lhss | array with left-hand sides of constraints, or NULL if all -infinity |
rhss | array with right-hand sides of constraints, or NULL if all +infinity |
nlininds | number of linear coefficients for each constraint, may be NULL in case of no linear part |
lininds | indices of variables for linear coefficients for each constraint, may be NULL in case of no linear part |
linvals | values of linear coefficient for each constraint, may be NULL in case of no linear part |
nquadelems | number of elements in matrix of quadratic part for each constraint, may be NULL in case of no quadratic part in any constraint |
quadelems | quadratic elements specifying quadratic part for each constraint, entry of array may be NULL in case of no quadratic part, may be NULL in case of no quadratic part in any constraint |
exprvaridxs | NULL if no nonquadratic parts, otherwise epxrvaridxs[.] maps variable indices in expression tree to indices in nlp |
exprtrees | NULL if no nonquadratic parts, otherwise exprtrees[.] gives nonquadratic part, or NULL if no nonquadratic part in this constraint |
consnames | names of new constraints, or NULL if no names should be stored |
Definition at line 1529 of file nlpioracle.c.
References createConstraint(), ensureConssSize(), SCIP_NlpiOracleCons::exprtree, FALSE, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_NlpiOracleCons::nquadelems, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCompile(), TRUE, and updateVariableDegreesCons().
Referenced by SCIP_DECL_NLPIADDCONSTRAINTS().
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 | ||
) |
sets or overwrites objective, a minimization problem is expected
May change sparsity pattern.
oracle | pointer to NLPIORACLE data structure |
constant | constant part of objective |
nlin | number of linear variable coefficients |
lininds | indices of linear variables, or NULL if no linear part |
linvals | coefficients of linear variables, or NULL if no linear part |
nquadelems | number of entries in matrix of quadratic part |
quadelems | entries in matrix of quadratic part, may be NULL in case of no quadratic part |
exprvaridxs | maps variable indices in expression tree to indices in nlp, or NULL if no nonquadratic part |
exprtree | expression tree of nonquadratic part, or NULL if no nonquadratic part |
Definition at line 1607 of file nlpioracle.c.
References createConstraint(), FALSE, freeConstraint(), SCIP_NlpiOracle::infinity, invalidateHessianLagSparsity(), REALABS, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPexprintCompile().
Referenced by SCIP_DECL_NLPISETOBJECTIVE().
SCIP_RETCODE SCIPnlpiOracleChgVarBounds | ( | SCIP_NLPIORACLE * | oracle, |
int | nvars, | ||
const int * | indices, | ||
const SCIP_Real * | lbs, | ||
const SCIP_Real * | ubs | ||
) |
change variable bounds
oracle | pointer to NLPIORACLE data structure |
nvars | number of variables to change bounds |
indices | indices of variables to change bounds |
lbs | new lower bounds, or NULL if all should be -infty |
ubs | new upper bounds, or NULL if all should be +infty |
Definition at line 1644 of file nlpioracle.c.
References EPSEQ, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGVARBOUNDS().
SCIP_RETCODE SCIPnlpiOracleChgConsSides | ( | SCIP_NLPIORACLE * | oracle, |
int | nconss, | ||
const int * | indices, | ||
const SCIP_Real * | lhss, | ||
const SCIP_Real * | rhss | ||
) |
change constraint sides
change constraint bounds
oracle | pointer to NLPIORACLE data structure |
nconss | number of constraints to change bounds |
indices | indices of constraints to change bounds |
lhss | new left-hand sides, or NULL if all should be -infty |
rhss | new right-hand sides, or NULL if all should be +infty |
Definition at line 1680 of file nlpioracle.c.
References EPSEQ, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGCONSSIDES().
SCIP_RETCODE SCIPnlpiOracleDelVarSet | ( | SCIP_NLPIORACLE * | oracle, |
int * | delstats | ||
) |
deletes a set of variables
oracle | pointer to NLPIORACLE data structure |
delstats | deletion status of vars in input (1 if var should be deleted, 0 if not); new position of var in output (-1 if var was deleted) |
Definition at line 1714 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, clearDeletedLinearElements(), clearDeletedQuadElements(), SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, freeVariables(), invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, mapIndices(), mapIndicesQuad(), moveVariable(), SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::quadelems, SCIP_NlpiOracleCons::quadsize, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeFree(), SCIPexprtreeGetNVars(), SCIPquadelemSort(), and SCIPsortIntReal().
Referenced by SCIP_DECL_NLPIDELVARSET().
SCIP_RETCODE SCIPnlpiOracleDelConsSet | ( | SCIP_NLPIORACLE * | oracle, |
int * | delstats | ||
) |
deletes a set of constraints
oracle | pointer to NLPIORACLE data structure |
delstats | array with deletion status of rows in input (1 if row should be deleted, 0 if not); new position of row in output (-1 if row was deleted) |
Definition at line 1824 of file nlpioracle.c.
References FALSE, freeConstraint(), freeConstraints(), invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIDELCONSSET().
SCIP_RETCODE SCIPnlpiOracleChgLinearCoefs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
int | nentries, | ||
const int * | varidxs, | ||
const SCIP_Real * | newcoefs | ||
) |
changes (or adds) linear coefficients in one constraint or objective
changes linear coefficients in one constraint or objective
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint where linear coefficients should be changed, or -1 for objective |
nentries | number of coefficients to change |
varidxs | array with indices of variables which coefficients should be changed |
newcoefs | array with new coefficients of variables |
Definition at line 1902 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, ensureConsLinSize(), FALSE, invalidateJacobiSparsity(), SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::linsize, MAX, SCIP_NlpiOracleCons::nlinidxs, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsortedvecFindInt(), sortLinearCoefficients(), and TRUE.
Referenced by SCIP_DECL_NLPICHGLINEARCOEFS().
SCIP_RETCODE SCIPnlpiOracleChgQuadCoefs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
int | nquadelems, | ||
const SCIP_QUADELEM * | quadelems | ||
) |
changes (or adds) coefficients in the quadratic part of one constraint or objective
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint where quadratic coefficients should be changed, or -1 for objective |
nquadelems | number of entries in quadratic constraint to change |
quadelems | new elements in quadratic matrix (replacing already existing ones or adding new ones) |
Definition at line 1999 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, SCIP_QuadElement::coef, ensureConsQuadSize(), FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), MAX, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracleCons::quadelems, SCIP_NlpiOracleCons::quadsize, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPquadelemSort(), SCIPquadelemSortedFind(), SCIPquadelemSqueeze(), and TRUE.
Referenced by SCIP_DECL_NLPICHGQUADCOEFS().
SCIP_RETCODE SCIPnlpiOracleChgExprtree | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
const int * | exprvaridxs, | ||
const SCIP_EXPRTREE * | exprtree | ||
) |
replaces expression tree of one constraint or objective
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint where expression tree should be changed, or -1 for objective |
exprvaridxs | problem indices of variables in expression tree |
exprtree | new expression tree, or NULL |
Definition at line 2097 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, FALSE, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCompile(), SCIPexprtreeCopy(), SCIPexprtreeFree(), and SCIPexprtreeGetNVars().
Referenced by SCIP_DECL_NLPICHGEXPRTREE().
SCIP_RETCODE SCIPnlpiOracleChgExprParam | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
int | paramidx, | ||
SCIP_Real | paramval | ||
) |
changes one parameter of expression tree of one constraint or objective
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint where parameter should be changed in expression tree, or -1 for objective |
paramidx | index of parameter |
paramval | new value of parameter |
Definition at line 2154 of file nlpioracle.c.
References SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNParams(), and SCIPexprtreeSetParamVal().
Referenced by SCIP_DECL_NLPICHGNONLINCOEF().
SCIP_RETCODE SCIPnlpiOracleChgObjConstant | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_Real | objconstant | ||
) |
changes the constant value in the objective function
oracle | pointer to NLPIORACLE data structure |
objconstant | new value for objective constant |
Definition at line 2179 of file nlpioracle.c.
References SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGOBJCONSTANT().
int SCIPnlpiOracleGetNVars | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the current number of variables
oracle | pointer to NLPIORACLE data structure |
Definition at line 2195 of file nlpioracle.c.
References SCIP_NlpiOracle::nvars.
Referenced by computeInteriorPoint(), initWorhp(), processSolveOutcome(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPISETINITIALGUESS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupGradients(), setupHessian(), setupStart(), updateWorhp(), userDF(), userDG(), userF(), userG(), and userHM().
int SCIPnlpiOracleGetNConstraints | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the current number of constraints
oracle | pointer to NLPIORACLE data structure |
Definition at line 2205 of file nlpioracle.c.
References SCIP_NlpiOracle::nconss.
Referenced by computeInteriorPoint(), initWorhp(), processSolveOutcome(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupGradients(), setupStart(), updateWorhp(), userDF(), userDG(), userF(), userG(), and userHM().
const SCIP_Real* SCIPnlpiOracleGetVarLbs | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables lower bounds
oracle | pointer to NLPIORACLE data structure |
Definition at line 2215 of file nlpioracle.c.
References SCIP_NlpiOracle::varlbs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and updateWorhp().
const SCIP_Real* SCIPnlpiOracleGetVarUbs | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables upper bounds
oracle | pointer to NLPIORACLE data structure |
Definition at line 2225 of file nlpioracle.c.
References SCIP_NlpiOracle::varubs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and updateWorhp().
char** SCIPnlpiOracleGetVarNames | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables names, or NULL if not set
oracle | pointer to NLPIORACLE data structure |
Definition at line 2235 of file nlpioracle.c.
References SCIP_NlpiOracle::varnames.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
int SCIPnlpiOracleGetVarDegree | ( | SCIP_NLPIORACLE * | oracle, |
int | varidx | ||
) |
Gives maximum degree of a variable w.r.t. objective and all constraints. The degree of a variable is the degree of the summand where it appears in, and is infinity for nonpolynomial terms.
oracle | pointer to NLPIORACLE data structure |
varidx | the variable for which the degree is returned |
Definition at line 2247 of file nlpioracle.c.
References updateVariableDegrees(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
int* SCIPnlpiOracleGetVarDegrees | ( | SCIP_NLPIORACLE * | oracle | ) |
Gives maximum degree of all variables w.r.t. objective and all constraints. The degree of a variable is the degree of the summand where it appears in, and is infinity for nonpolynomial terms.
oracle | pointer to NLPIORACLE data structure |
Definition at line 2264 of file nlpioracle.c.
References updateVariableDegrees(), and SCIP_NlpiOracle::vardegrees.
SCIP_Real SCIPnlpiOracleGetConstraintLhs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives left-hand side of a constraint
oracle | pointer to NLPIORACLE data structure |
considx | constraint index |
Definition at line 2276 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, and SCIP_NlpiOracleCons::lhs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), and updateWorhp().
SCIP_Real SCIPnlpiOracleGetConstraintRhs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives right-hand side of a constraint
oracle | pointer to NLPIORACLE data structure |
considx | constraint index |
Definition at line 2289 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, and SCIP_NlpiOracleCons::rhs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), and updateWorhp().
char* SCIPnlpiOracleGetConstraintName | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives name of a constraint, may be NULL
oracle | pointer to NLPIORACLE data structure |
considx | constraint index |
Definition at line 2302 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, and SCIP_NlpiOracleCons::name.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
int SCIPnlpiOracleGetConstraintDegree | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives maximum degree of a constraint or objective The degree is the maximal degree of all summands,, and is infinity for nonpolynomial terms.
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint for which the degree is requested, or -1 for objective |
Definition at line 2317 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, and SCIP_NlpiOracle::objective.
Referenced by computeInteriorPoint(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPICHGEXPRTREE(), SCIP_DECL_NLPICHGQUADCOEFS(), SCIP_DECL_NLPISETOBJECTIVE(), SCIP_DECL_NLPISOLVE(), and SCIPsetModifiedDefaultSettingsIpopt().
int SCIPnlpiOracleGetMaxDegree | ( | SCIP_NLPIORACLE * | oracle | ) |
Gives maximum degree over all constraints and the objective (or over all variables, resp.). Thus, if this function returns 0, then the objective and all constraints are constant. If it returns 1, then the problem in linear. If it returns 2, then its a QP, QCP, or QCQP. And if it returns > 2, then it is an NLP.
oracle | pointer to NLPIORACLE data structure |
Definition at line 2349 of file nlpioracle.c.
References SCIPdebugMessage, and updateVariableDegrees().
Referenced by SCIP_DECL_NLPISOLVE().
SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability | ( | SCIP_NLPIORACLE * | oracle | ) |
Gives the evaluation capabilities that are shared among all expression trees in the problem.
oracle | pointer to NLPIORACLE data structure |
Definition at line 2375 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracle::exprinterpreter, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracle::nconss, SCIP_NlpiOracle::objective, SCIP_EXPRINTCAPABILITY_ALL, and SCIPexprintGetExprtreeCapability().
Referenced by SCIP_DECL_NLPISOLVE().
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Real * | objval | ||
) |
evaluates the objective function in a given point
oracle | pointer to NLPIORACLE data structure |
x | point where to evaluate |
objval | pointer to store objective value |
Definition at line 2397 of file nlpioracle.c.
References evalFunctionValue(), SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIP_DECL_NLPIGETSOLUTION(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and userF().
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
const SCIP_Real * | x, | ||
SCIP_Real * | conval | ||
) |
evaluates one constraint function in a given point
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint to evaluate |
x | point where to evaluate |
conval | pointer to store constraint value |
Definition at line 2416 of file nlpioracle.c.
References evalFunctionValue(), SCIP_NlpiOracle::nvars, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), and setupStart().
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Real * | convals | ||
) |
evaluates all constraint functions in a given point
oracle | pointer to NLPIORACLE data structure |
x | point where to evaluate |
convals | buffer to store constraint values |
Definition at line 2435 of file nlpioracle.c.
References evalFunctionValue(), SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPsetModifiedDefaultSettingsIpopt(), and userG().
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveGradient | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Bool | isnewx, | ||
SCIP_Real * | objval, | ||
SCIP_Real * | objgrad | ||
) |
computes the objective gradient in a given point
oracle | pointer to NLPIORACLE data structure |
x | point where to evaluate |
isnewx | has the point x changed since the last call to some evaluation function? |
objval | pointer to store objective value |
objgrad | pointer to store (dense) objective gradient |
Definition at line 2461 of file nlpioracle.c.
References evalFunctionGradient(), SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and userDF().
SCIP_RETCODE SCIPnlpiOracleEvalConstraintGradient | ( | SCIP_NLPIORACLE * | oracle, |
const int | considx, | ||
const SCIP_Real * | x, | ||
SCIP_Bool | isnewx, | ||
SCIP_Real * | conval, | ||
SCIP_Real * | congrad | ||
) |
computes a constraints gradient in a given point
oracle | pointer to NLPIORACLE data structure |
considx | index of constraint to compute gradient for |
x | point where to evaluate |
isnewx | has the point x changed since the last call to some evaluation function? |
conval | pointer to store constraint value |
congrad | pointer to store (dense) constraint gradient |
Definition at line 2485 of file nlpioracle.c.
References evalFunctionGradient(), SCIP_NlpiOracle::nvars, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleEvalJacobian().
SCIP_RETCODE SCIPnlpiOracleGetJacobianSparsity | ( | SCIP_NLPIORACLE * | oracle, |
const int ** | offset, | ||
const int ** | col | ||
) |
gets sparsity pattern (rowwise) of Jacobian matrix
Note that internal data is returned in *offset and *col, thus the user does not need to allocate memory there. Adding or deleting constraints destroys the sparsity structure and make another call to this function necessary.
oracle | pointer to NLPIORACLE data structure |
offset | pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL |
col | pointer to store pointer that stores the indices of variables that appear in each row, offset[nconss] gives length of col, can be NULL |
Definition at line 2510 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMScopyMemoryArray, BMSfreeBlockMemoryArray, BMSreallocBlockMemoryArray, ensureIntArraySize(), SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNVars(), and TRUE.
Referenced by initWorhp(), SCIPsetModifiedDefaultSettingsIpopt(), and setupGradients().
SCIP_RETCODE SCIPnlpiOracleEvalJacobian | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Bool | isnewx, | ||
SCIP_Real * | convals, | ||
SCIP_Real * | jacobi | ||
) |
evaluates the Jacobi matrix in a given point
The values in the Jacobi matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetJacobianSparsity. The user need to call SCIPnlpiOracleGetJacobianSparsity at least ones before using this function.
oracle | pointer to NLPIORACLE data structure |
x | point where to evaluate |
isnewx | has the point x changed since the last call to some evaluation function? |
convals | pointer to store constraint values, can be NULL |
jacobi | pointer to store sparse jacobian values |
Definition at line 2651 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMScopyMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_ALLOC, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPexprintEval(), SCIPexprintGrad(), SCIPexprtreeGetNVars(), SCIPisFinite, and SCIPnlpiOracleEvalConstraintGradient().
Referenced by F77_FUNC(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and userDG().
SCIP_RETCODE SCIPnlpiOracleGetHessianLagSparsity | ( | SCIP_NLPIORACLE * | oracle, |
const int ** | offset, | ||
const int ** | col | ||
) |
gets sparsity pattern of the Hessian matrix of the Lagrangian
Note that internal data is returned in *offset and *col, thus the user must not to allocate memory there. Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary. Only elements of the lower left triangle and the diagonal are counted.
gets sparsity pattern of the Hessian matrix of the Lagrangian
Note that internal data is returned in *offset and *col, thus the user must not allocate memory there. Adding or deleting variables, objective, or constraints may destroy the sparsity structure and make another call to this function necessary. Only elements of the lower left triangle and the diagonal are counted.
oracle | pointer to NLPIORACLE data structure |
offset | pointer to store pointer that stores the offsets to each rows sparsity pattern in col, can be NULL |
col | pointer to store pointer that stores the indices of variables that appear in each row, offset[nconss] gives length of col, can be NULL |
Definition at line 2790 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, hessLagSparsitySetNzFlagForExprtree(), hessLagSparsitySetNzFlagForQuad(), SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by initWorhp(), SCIPsetModifiedDefaultSettingsIpopt(), setupHessian(), and userHM().
SCIP_RETCODE SCIPnlpiOracleEvalHessianLag | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Bool | isnewx, | ||
SCIP_Real | objfactor, | ||
const SCIP_Real * | lambda, | ||
SCIP_Real * | hessian | ||
) |
evaluates the Hessian matrix of the Lagrangian in a given point
The values in the Hessian matrix are returned in the same order as specified by the offset and col arrays obtained by SCIPnlpiOracleGetHessianLagSparsity. The user must call SCIPnlpiOracleGetHessianLagSparsity at least ones before using this function. Only elements of the lower left triangle and the diagonal are computed.
oracle | pointer to NLPIORACLE data structure |
x | point where to evaluate |
isnewx | has the point x changed since the last call to some evaluation function? |
objfactor | weight for objective function |
lambda | weights (Lagrangian multipliers) for the constraints |
hessian | pointer to store sparse hessian values |
Definition at line 2889 of file nlpioracle.c.
References SCIP_NlpiOracle::heslagcols, SCIP_NlpiOracle::heslagoffsets, hessLagAddExprtree(), hessLagAddQuad(), SCIP_NlpiOracle::nconss, SCIP_CALL, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIPsetModifiedDefaultSettingsIpopt(), and userHM().
SCIP_RETCODE SCIPnlpiOraclePrintProblem | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
prints the problem to a file.
oracle | pointer to NLPIORACLE data structure |
messagehdlr | message handler |
file | file to print to, or NULL for standard output |
Definition at line 2932 of file nlpioracle.c.
References FALSE, infinity, SCIP_NlpiOracleCons::lhs, printFunction(), SCIP_NlpiOracleCons::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and SCIPmessageFPrintInfo().
Referenced by computeInteriorPoint(), and SCIP_DECL_NLPISOLVE().
SCIP_RETCODE SCIPnlpiOraclePrintProblemGams | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_Real * | initval, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
prints the problem to a file in GAMS format If there are variable (equation, resp.) names with more than 9 characters, then variable (equation, resp.) names are prefixed with an unique identifier. This is to make it easier to identify variables solution output in the listing file. Names with more than 64 characters are shorten to 64 letters due to GAMS limits.
oracle | pointer to NLPIORACLE data structure |
initval | starting point values for variables or NULL |
messagehdlr | message handler |
file | file to print to, or NULL for standard output |
Definition at line 3001 of file nlpioracle.c.
References exprIsNonSmooth(), SCIP_NlpiOracleCons::exprtree, FALSE, infinity, SCIP_NlpiOracleCons::lhs, SCIP_NlpiOracleCons::name, SCIP_NlpiOracleCons::nquadelems, printFunction(), printName(), SCIP_NlpiOracleCons::rhs, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprtreeGetRoot(), SCIPmessageFPrintInfo(), SCIPsnprintf(), and TRUE.