implementation of NLPI oracle interface
Definition in file nlpioracle.c.
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "nlpi/nlpioracle.h"
#include "nlpi/pub_expr.h"
#include "nlpi/exprinterpret.h"
#include <string.h>
Go to the source code of this file.
Typedefs | |
NLPI Oracle data structures | |
typedef struct SCIP_NlpiOracleCons | SCIP_NLPIORACLECONS |
typedef struct SCIP_NlpiOracleCons SCIP_NLPIORACLECONS |
Definition at line 55 of file nlpioracle.c.
|
static |
calculate memory size for dynamically allocated arrays (copied from scip/set.c)
num | minimum number of entries to store |
Definition at line 94 of file nlpioracle.c.
Referenced by ensureConsLinSize(), ensureConsQuadSize(), ensureConssSize(), ensureIntArraySize(), and ensureVarsSize().
|
static |
ensures that variables related arrays in oracle have at least a given length
oracle | NLPIORACLE data structure |
minsize | minimal required size |
Definition at line 110 of file nlpioracle.c.
References SCIP_NlpiOracle::blkmem, BMSreallocBlockMemoryArray, calcGrowSize(), SCIP_ALLOC, SCIP_OKAY, SCIP_NlpiOracle::vardegrees, SCIP_NlpiOracle::varlbs, SCIP_NlpiOracle::varnames, SCIP_NlpiOracle::varssize, and SCIP_NlpiOracle::varubs.
Referenced by SCIPnlpiOracleAddVars().
|
static |
ensures that constraints array in oracle has at least a given length
oracle | NLPIORACLE data structure |
minsize | minimal required size |
Definition at line 141 of file nlpioracle.c.
References SCIP_NlpiOracle::blkmem, BMSreallocBlockMemoryArray, calcGrowSize(), SCIP_NlpiOracle::conss, SCIP_NlpiOracle::consssize, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleAddConstraints().
|
static |
ensures that arrays for linear part in a oracle constraints have at least a given length
blkmem | block memory |
cons | oracle constraint |
minsize | minimal required size |
Definition at line 165 of file nlpioracle.c.
References BMSreallocBlockMemoryArray, calcGrowSize(), SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::linsize, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleChgLinearCoefs().
|
static |
ensures that arrays for quadratic part in a oracle constraints have at least a given length
blkmem | block memory |
cons | oracle constraint |
minsize | minimal required size |
Definition at line 192 of file nlpioracle.c.
References BMSreallocBlockMemoryArray, calcGrowSize(), SCIP_NlpiOracleCons::quadelems, SCIP_NlpiOracleCons::quadsize, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleChgQuadCoefs().
|
static |
ensures that a given array of integers has at least a given length
blkmem | block memory |
intarray | array of integers |
len | length of array (modified if reallocated) |
minsize | minimal required array length |
Definition at line 218 of file nlpioracle.c.
References BMSreallocBlockMemoryArray, calcGrowSize(), SCIP_ALLOC, and SCIP_OKAY.
Referenced by hessLagSparsitySetNzFlagForExprtree(), hessLagSparsitySetNzFlagForQuad(), and SCIPnlpiOracleGetJacobianSparsity().
|
static |
Invalidates the sparsity pattern of the Jacobian. Should be called when constraints are added or deleted.
oracle | pointer to store NLPIORACLE data structure |
Definition at line 248 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleChgExprtree(), SCIPnlpiOracleChgLinearCoefs(), SCIPnlpiOracleChgQuadCoefs(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleDelVarSet(), and SCIPnlpiOracleFree().
|
static |
Invalidates the sparsity pattern of the Hessian of the Lagragian. Should be called when the objective is set or constraints are added or deleted.
oracle | pointer to store NLPIORACLE data structure |
Definition at line 271 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleAddVars(), SCIPnlpiOracleChgExprtree(), SCIPnlpiOracleChgQuadCoefs(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleDelVarSet(), SCIPnlpiOracleFree(), and SCIPnlpiOracleSetObjective().
|
static |
sorts a linear term, merges duplicate entries and removes entries with coefficient 0.0
nidxs | number of variables |
idxs | indices of variables |
coefs | coefficients of variables |
Definition at line 292 of file nlpioracle.c.
References SCIPsortIntReal().
Referenced by createConstraint(), and SCIPnlpiOracleChgLinearCoefs().
|
static |
creates a NLPI constraint from given constraint data
blkmem | block memory |
cons | buffer where to store pointer to constraint |
nlinidxs | length of linear part |
linidxs | indices of linear part, or NULL if nlinidxs == 0 |
lincoefs | coefficients of linear part, or NULL if nlinidxs == 0 |
nquadelems | lenght of quadratic part |
quadelems | quadratic elements, or NULL if nquadelems == 0 |
exprvaridxs | indicies of variables in expression tree, or NULL if exprtree == NULL |
exprtree | expression tree, or NULL |
lhs | left-hand-side of constraint |
rhs | right-hand-side of constraint |
name | name of constraint, or NULL |
Definition at line 341 of file nlpioracle.c.
References BMSallocBlockMemory, BMSclearMemory, BMSduplicateBlockMemoryArray, EPSEQ, EPSLE, SCIP_NlpiOracleCons::lhs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracleCons::rhs, SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, SCIPexprtreeCopy(), SCIPexprtreeGetNVars(), SCIPquadelemSort(), SCIPquadelemSqueeze(), and sortLinearCoefficients().
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleCreate(), and SCIPnlpiOracleSetObjective().
|
static |
frees a constraint
blkmem | block memory |
cons | pointer to constraint that should be freed |
Definition at line 420 of file nlpioracle.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, SCIP_CALL_ABORT, SCIPdebugMessage, SCIPexprtreeFree(), and SCIPexprtreeGetNVars().
Referenced by freeConstraints(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleFree(), and SCIPnlpiOracleSetObjective().
|
static |
frees all constraints
oracle | pointer to store NLPIORACLE data structure |
Definition at line 453 of file nlpioracle.c.
References BMSfreeBlockMemoryArrayNull, freeConstraint(), and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelConsSet(), and SCIPnlpiOracleFree().
|
static |
moves one variable The place where it moves to need to be empty (all NULL) but allocated. Note that this function does not update the variable indices in the constraints!
oracle | pointer to store NLPIORACLE data structure |
fromidx | index of variable to move |
toidx | index of place where to move variable to |
Definition at line 479 of file nlpioracle.c.
References SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
|
static |
frees all variables
oracle | pointer to store NLPIORACLE data structure |
Definition at line 519 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIPdebugMessage, and TRUE.
Referenced by SCIPnlpiOracleDelVarSet(), and SCIPnlpiOracleFree().
|
static |
increases variable degrees in oracle w.r.t. variables occuring in a single constraint
oracle | oracle data structure |
cons | oracle constraint |
Definition at line 552 of file nlpioracle.c.
References SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracleCons::quadelems, SCIPexprtreeGetNVars(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPnlpiOracleAddConstraints(), and updateVariableDegrees().
|
static |
Updates the degrees of all variables.
oracle | pointer to store NLPIORACLE data structure |
Definition at line 585 of file nlpioracle.c.
References BMSclearMemoryArray, SCIP_NlpiOracle::nvars, SCIP_NlpiOracle::objective, SCIPdebugMessage, TRUE, updateVariableDegreesCons(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPnlpiOracleGetMaxDegree(), SCIPnlpiOracleGetVarDegree(), and SCIPnlpiOracleGetVarDegrees().
|
static |
applies a mapping of indices to one array of indices
indexmap | mapping from old variable indices to new indices |
nindices | number of indices in indices1 and indices2 |
indices | array of indices to adjust |
Definition at line 612 of file nlpioracle.c.
Referenced by SCIPnlpiOracleDelVarSet().
|
static |
removes entries with index -1 (marked as deleted) from array of linear elements assumes that array is sorted by index, i.e., all -1 are at the beginning
blkmem | block memory |
linidxs | variable indices |
coefs | variable coefficients |
nidxs | number of indices |
Definition at line 632 of file nlpioracle.c.
References SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
|
static |
removes entries with index pair (-1,-1) (marked as deleted) from array of quadratic elements assumes that array is sorted, i.e., all deleted elements are at the beginning
blkmem | block memory |
quadelems | quadratic elements |
nquadelems | number of quadratic elements |
Definition at line 674 of file nlpioracle.c.
References SCIP_NlpiOracleCons::nquadelems, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
|
static |
applies a mapping of indices to an array of quadratic elements
indexmap | mapping from old variable indices to new indices |
nelems | number of quadratic elements |
elems | array of quadratic elements to adjust |
Definition at line 712 of file nlpioracle.c.
References SCIP_QuadElement::idx1, and SCIP_QuadElement::idx2.
Referenced by SCIPnlpiOracleDelVarSet().
|
static |
computes the value of a function
oracle | pointer to NLPIORACLE data structure |
cons | oracle constraint |
x | the point where to evaluate |
val | pointer to store function value |
Definition at line 739 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSfreeBlockMemoryArray, SCIP_QuadElement::coef, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracle::nvars, SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprintEval(), and SCIPexprtreeGetNVars().
Referenced by SCIPnlpiOracleEvalConstraintValue(), SCIPnlpiOracleEvalConstraintValues(), and SCIPnlpiOracleEvalObjectiveValue().
|
static |
computes the value and gradient of a function
oracle | pointer to NLPIORACLE data structure |
cons | oracle constraint |
x | the point where to evaluate |
isnewx | has the point x changed since the last call to some evaluation function? |
val | pointer to store function value |
grad | pointer to store function gradient |
Definition at line 820 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_QuadElement::coef, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, SCIP_NlpiOracle::nvars, SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPdebug, SCIPdebugMessage, SCIPexprintGrad(), SCIPexprtreeGetNVars(), and SCIPisFinite.
Referenced by SCIPnlpiOracleEvalConstraintGradient(), and SCIPnlpiOracleEvalObjectiveGradient().
|
static |
collects nonzeros entries in colnz and increases the nzcount given indices of quadratic terms
oracle | NLPI oracle |
colnz | indices of nonzero entries for each column |
collen | space allocated to store indices of nonzeros for each column |
colnnz | number of nonzero entries for each column |
nzcount | counter for total number of nonzeros; should be increased whenever some colnnz is increased |
length | length of quadratic part |
quadelems | quadratic elements |
Definition at line 944 of file nlpioracle.c.
References ensureIntArraySize(), SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::quadelems, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsortedvecFindInt(), and SCIPsortedvecInsertInt().
Referenced by SCIPnlpiOracleGetHessianLagSparsity().
|
static |
collects indices of nonzero entries in the lower-left part of the hessian matrix of an expression adds the indices to a given set of indices, avoiding duplicates
oracle | NLPI oracle |
colnz | indices of nonzero entries for each column |
collen | space allocated to store indices of nonzeros for each column |
colnnz | number of nonzero entries for each column |
nzcount | counter for total number of nonzeros; should be increased when nzflag is set to 1 the first time |
exprvaridx | indices of variables from expression tree in NLP |
exprtree | expression tree |
dim | dimension of matrix |
Definition at line 984 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSfreeBlockMemoryArray, ensureIntArraySize(), MAX, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprintHessianSparsityDense(), SCIPexprtreeGetNVars(), SCIPsortedvecFindInt(), and SCIPsortedvecInsertInt().
Referenced by SCIPnlpiOracleGetHessianLagSparsity().
|
static |
adds quadratic part into hessian structure
weight | weight of quadratic part |
length | number of elements in matrix of quadratic part |
quadelems | elements in matrix of quadratic part |
hesoffset | row offsets in sparse matrix that is to be filled |
hescol | column indices in sparse matrix that is to be filled |
values | buffer for values of sparse matrix that is to be filled |
Definition at line 1055 of file nlpioracle.c.
References SCIP_QuadElement::coef, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::quadelems, SCIP_ERROR, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, and SCIPsortedvecFindInt().
Referenced by SCIPnlpiOracleEvalHessianLag().
|
static |
adds hessian of an expression into hessian structure
oracle | oracle |
weight | weight of quadratic part |
x | point for which hessian should be returned |
new_x | whether point has been evaluated before |
exprvaridx | NLP indices for variables in expression tree |
exprtree | expression tree |
hesoffset | row offsets in sparse matrix that is to be filled |
hescol | column indices in sparse matrix that is to be filled |
values | buffer for values of sparse matrix that is to be filled |
Definition at line 1090 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, FALSE, MAX, SCIP_ALLOC, SCIP_CALL, SCIP_ERROR, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPexprintHessianDense(), SCIPexprtreeGetNVars(), SCIPisFinite, and SCIPsortedvecFindInt().
Referenced by SCIPnlpiOracleEvalHessianLag().
|
static |
prints a name, if available, makes sure it has not more than 64 characters, and adds a unique prefix if the longnames flag is set
buffer | buffer to print to, has to be not NULL |
name | name, or NULL |
idx | index of var or cons which the name corresponds to |
prefix | a letter (typically 'x' or 'e') to distinguish variable and equation names, if names[idx] is not available |
suffix | a suffer to add to the name, or NULL |
longnames | whether prefixes for long names should be added |
Definition at line 1193 of file nlpioracle.c.
Referenced by printFunction(), and SCIPnlpiOraclePrintProblemGams().
|
static |
prints a function
oracle | pointer to NLPIORACLE data structure |
messagehdlr | message handler |
file | file to print to, has to be not NULL |
cons | constraint which function to print |
longvarnames | whether variable names need to be shorten to 64 characters |
longequnames | whether equation names need to be shorten to 64 characters |
Definition at line 1225 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSfreeBlockMemoryArray, SCIP_QuadElement::coef, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, printName(), SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNVars(), SCIPexprtreePrint(), and SCIPmessageFPrintInfo().
Referenced by SCIPnlpiOraclePrintProblem(), and SCIPnlpiOraclePrintProblemGams().
returns whether an expression is contains nonsmooth operands (min, max, abs, ...)
expr | expression |
Definition at line 1289 of file nlpioracle.c.
References FALSE, SCIP_EXPR_ABS, SCIP_EXPR_MAX, SCIP_EXPR_MIN, SCIP_EXPR_SIGN, SCIP_EXPR_SIGNPOWER, SCIPexprGetChildren(), SCIPexprGetNChildren(), SCIPexprGetOperator(), and TRUE.
Referenced by SCIPnlpiOraclePrintProblemGams().
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 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 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 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.