Detailed Description
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.
Data Structures | |
struct | SCIP_NlpiOracleCons |
struct | SCIP_NlpiOracle |
Typedefs | |
NLPI Oracle data structures | |
typedef struct SCIP_NlpiOracleCons | SCIP_NLPIORACLECONS |
Typedef Documentation
◆ SCIP_NLPIORACLECONS
typedef struct SCIP_NlpiOracleCons SCIP_NLPIORACLECONS |
Definition at line 55 of file nlpioracle.c.
Function Documentation
◆ calcGrowSize()
|
static |
calculate memory size for dynamically allocated arrays (copied from scip/set.c)
- Parameters
-
num minimum number of entries to store
Definition at line 94 of file nlpioracle.c.
Referenced by ensureConsLinSize(), ensureConsQuadSize(), ensureConssSize(), ensureIntArraySize(), and ensureVarsSize().
◆ ensureVarsSize()
|
static |
ensures that variables related arrays in oracle have at least a given length
- Parameters
-
oracle NLPIORACLE data structure minsize minimal required size
Definition at line 110 of file nlpioracle.c.
References SCIP_NlpiOracle::blkmem, BMSreallocBlockMemoryArray, calcGrowSize(), NULL, SCIP_ALLOC, SCIP_OKAY, SCIP_NlpiOracle::vardegrees, SCIP_NlpiOracle::varlbs, SCIP_NlpiOracle::varnames, SCIP_NlpiOracle::varssize, and SCIP_NlpiOracle::varubs.
Referenced by SCIPnlpiOracleAddVars().
◆ ensureConssSize()
|
static |
ensures that constraints array in oracle has at least a given length
- Parameters
-
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, NULL, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleAddConstraints().
◆ ensureConsLinSize()
|
static |
ensures that arrays for linear part in a oracle constraints have at least a given length
- Parameters
-
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, NULL, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleChgLinearCoefs().
◆ ensureConsQuadSize()
|
static |
ensures that arrays for quadratic part in a oracle constraints have at least a given length
- Parameters
-
blkmem block memory cons oracle constraint minsize minimal required size
Definition at line 192 of file nlpioracle.c.
References BMSreallocBlockMemoryArray, calcGrowSize(), NULL, SCIP_NlpiOracleCons::quadelems, SCIP_NlpiOracleCons::quadsize, SCIP_ALLOC, and SCIP_OKAY.
Referenced by SCIPnlpiOracleChgQuadCoefs().
◆ ensureIntArraySize()
|
static |
ensures that a given array of integers has at least a given length
- Parameters
-
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(), NULL, SCIP_ALLOC, and SCIP_OKAY.
Referenced by hessLagSparsitySetNzFlagForExprtree(), hessLagSparsitySetNzFlagForQuad(), and SCIPnlpiOracleGetJacobianSparsity().
◆ invalidateJacobiSparsity()
|
static |
Invalidates the sparsity pattern of the Jacobian. Should be called when constraints are added or deleted.
- Parameters
-
oracle pointer to store NLPIORACLE data structure
Definition at line 248 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, NULL, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleChgExprtree(), SCIPnlpiOracleChgLinearCoefs(), SCIPnlpiOracleChgQuadCoefs(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleDelVarSet(), and SCIPnlpiOracleFree().
◆ invalidateHessianLagSparsity()
|
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.
- Parameters
-
oracle pointer to store NLPIORACLE data structure
Definition at line 271 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, NULL, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleAddVars(), SCIPnlpiOracleChgExprtree(), SCIPnlpiOracleChgQuadCoefs(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleDelVarSet(), SCIPnlpiOracleFree(), and SCIPnlpiOracleSetObjective().
◆ sortLinearCoefficients()
|
static |
sorts a linear term, merges duplicate entries and removes entries with coefficient 0.0
- Parameters
-
nidxs number of variables idxs indices of variables coefs coefficients of variables
Definition at line 292 of file nlpioracle.c.
References NULL, and SCIPsortIntReal().
Referenced by createConstraint(), and SCIPnlpiOracleChgLinearCoefs().
◆ createConstraint()
|
static |
creates a NLPI constraint from given constraint data
- Parameters
-
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, NULL, SCIP_NlpiOracleCons::rhs, SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, SCIPexprtreeCopy(), SCIPexprtreeGetNVars(), SCIPquadelemSort(), SCIPquadelemSqueeze(), and sortLinearCoefficients().
Referenced by SCIPnlpiOracleAddConstraints(), SCIPnlpiOracleCreate(), and SCIPnlpiOracleSetObjective().
◆ freeConstraint()
|
static |
frees a constraint
- Parameters
-
blkmem block memory cons pointer to constraint that should be freed
Definition at line 420 of file nlpioracle.c.
References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL_ABORT, SCIPdebugMessage, SCIPexprtreeFree(), and SCIPexprtreeGetNVars().
Referenced by freeConstraints(), SCIPnlpiOracleDelConsSet(), SCIPnlpiOracleFree(), and SCIPnlpiOracleSetObjective().
◆ freeConstraints()
|
static |
frees all constraints
- Parameters
-
oracle pointer to store NLPIORACLE data structure
Definition at line 453 of file nlpioracle.c.
References BMSfreeBlockMemoryArrayNull, freeConstraint(), NULL, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelConsSet(), and SCIPnlpiOracleFree().
◆ moveVariable()
|
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!
- Parameters
-
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 NULL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
◆ freeVariables()
|
static |
frees all variables
- Parameters
-
oracle pointer to store NLPIORACLE data structure
Definition at line 519 of file nlpioracle.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, NULL, SCIPdebugMessage, and TRUE.
Referenced by SCIPnlpiOracleDelVarSet(), and SCIPnlpiOracleFree().
◆ updateVariableDegreesCons()
|
static |
increases variable degrees in oracle w.r.t. variables occuring in a single constraint
- Parameters
-
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, NULL, SCIP_NlpiOracle::nvars, SCIP_NlpiOracleCons::quadelems, SCIPexprtreeGetNVars(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPnlpiOracleAddConstraints(), and updateVariableDegrees().
◆ updateVariableDegrees()
|
static |
Updates the degrees of all variables.
- Parameters
-
oracle pointer to store NLPIORACLE data structure
Definition at line 585 of file nlpioracle.c.
References BMSclearMemoryArray, NULL, SCIP_NlpiOracle::nvars, SCIP_NlpiOracle::objective, SCIPdebugMessage, TRUE, updateVariableDegreesCons(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPnlpiOracleGetMaxDegree(), SCIPnlpiOracleGetVarDegree(), and SCIPnlpiOracleGetVarDegrees().
◆ mapIndices()
|
static |
applies a mapping of indices to one array of indices
- Parameters
-
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.
References NULL.
Referenced by SCIPnlpiOracleDelVarSet().
◆ clearDeletedLinearElements()
|
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
- Parameters
-
blkmem block memory linidxs variable indices coefs variable coefficients nidxs number of indices
Definition at line 632 of file nlpioracle.c.
References NULL, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
◆ clearDeletedQuadElements()
|
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
- Parameters
-
blkmem block memory quadelems quadratic elements nquadelems number of quadratic elements
Definition at line 674 of file nlpioracle.c.
References SCIP_NlpiOracleCons::nquadelems, NULL, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleDelVarSet().
◆ mapIndicesQuad()
|
static |
applies a mapping of indices to an array of quadratic elements
- Parameters
-
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, SCIP_QuadElement::idx2, and NULL.
Referenced by SCIPnlpiOracleDelVarSet().
◆ evalFunctionValue()
|
static |
computes the value of a function
- Parameters
-
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 ABS, 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, NULL, SCIP_NlpiOracle::nvars, SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprintEval(), and SCIPexprtreeGetNVars().
Referenced by SCIPnlpiOracleEvalConstraintValue(), SCIPnlpiOracleEvalConstraintValues(), and SCIPnlpiOracleEvalObjectiveValue().
◆ evalFunctionGradient()
|
static |
computes the value and gradient of a function
- Returns
- SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
- Parameters
-
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 ABS, 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, NULL, 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().
◆ hessLagSparsitySetNzFlagForQuad()
|
static |
collects nonzeros entries in colnz and increases the nzcount given indices of quadratic terms
- Parameters
-
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, NULL, SCIP_NlpiOracleCons::quadelems, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsortedvecFindInt(), and SCIPsortedvecInsertInt().
Referenced by SCIPnlpiOracleGetHessianLagSparsity().
◆ hessLagSparsitySetNzFlagForExprtree()
|
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
- Parameters
-
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, MIN, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprintHessianSparsityDense(), SCIPexprtreeGetNVars(), SCIPsortedvecFindInt(), SCIPsortedvecInsertInt(), and x.
Referenced by SCIPnlpiOracleGetHessianLagSparsity().
◆ hessLagAddQuad()
|
static |
adds quadratic part into hessian structure
- Parameters
-
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, NULL, SCIP_NlpiOracleCons::quadelems, SCIP_ERROR, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, and SCIPsortedvecFindInt().
Referenced by SCIPnlpiOracleEvalHessianLag().
◆ hessLagAddExprtree()
|
static |
adds hessian of an expression into hessian structure
- Parameters
-
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, h, MAX, MIN, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_ERROR, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPerrorMessage, SCIPexprintHessianDense(), SCIPexprtreeGetNVars(), SCIPisFinite, and SCIPsortedvecFindInt().
Referenced by SCIPnlpiOracleEvalHessianLag().
◆ printName()
|
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
- Parameters
-
buffer buffer to print to, has to be not NULL and should be at least 65 bytes 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.
References NULL, and SCIPsnprintf().
Referenced by printFunction(), and SCIPnlpiOraclePrintProblemGams().
◆ printFunction()
|
static |
prints a function
- Parameters
-
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 1228 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, NULL, printName(), SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNVars(), SCIPexprtreePrint(), and SCIPmessageFPrintInfo().
Referenced by SCIPnlpiOraclePrintProblem(), and SCIPnlpiOraclePrintProblemGams().
◆ exprIsNonSmooth()
returns whether an expression is contains nonsmooth operands (min, max, abs, ...)
- Parameters
-
expr expression
Definition at line 1292 of file nlpioracle.c.
References FALSE, NULL, SCIP_EXPR_ABS, SCIP_EXPR_MAX, SCIP_EXPR_MIN, SCIP_EXPR_SIGN, SCIP_EXPR_SIGNPOWER, SCIPexprGetChildren(), SCIPexprGetNChildren(), SCIPexprGetOperator(), and TRUE.
Referenced by SCIPnlpiOraclePrintProblemGams().
◆ SCIPnlpiOracleCreate()
SCIP_RETCODE SCIPnlpiOracleCreate | ( | BMS_BLKMEM * | blkmem, |
SCIP_NLPIORACLE ** | oracle | ||
) |
creates an NLPIORACLE data structure
- Parameters
-
blkmem block memory oracle pointer to store NLPIORACLE data structure
Definition at line 1328 of file nlpioracle.c.
References BMSallocMemory, BMSclearMemory, createConstraint(), NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_INFINITY, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCreate(), SCIPexprintGetName(), and TRUE.
Referenced by SCIP_DECL_NLPICREATEPROBLEM().
◆ SCIPnlpiOracleFree()
SCIP_RETCODE SCIPnlpiOracleFree | ( | SCIP_NLPIORACLE ** | oracle | ) |
frees an NLPIORACLE data structure
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 1355 of file nlpioracle.c.
References BMSfreeMemory, freeConstraint(), freeConstraints(), freeVariables(), invalidateHessianLagSparsity(), invalidateJacobiSparsity(), NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintFree(), and SCIPnlpiOracleSetProblemName().
Referenced by SCIP_DECL_NLPIFREEPROBLEM().
◆ SCIPnlpiOracleSetInfinity()
SCIP_RETCODE SCIPnlpiOracleSetInfinity | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_Real | infinity | ||
) |
sets the value for infinity
- Parameters
-
oracle pointer to NLPIORACLE data structure infinity value to use for infinity
Definition at line 1384 of file nlpioracle.c.
References infinity, NULL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICREATEPROBLEM(), and SCIP_DECL_NLPISETREALPAR().
◆ SCIPnlpiOracleGetInfinity()
SCIP_Real SCIPnlpiOracleGetInfinity | ( | SCIP_NLPIORACLE * | oracle | ) |
gets the value for infinity
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 1400 of file nlpioracle.c.
References NULL, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIGETREALPAR(), and SCIP_DECL_NLPISOLVE().
◆ SCIPnlpiOracleSetProblemName()
SCIP_RETCODE SCIPnlpiOracleSetProblemName | ( | SCIP_NLPIORACLE * | oracle, |
const char * | name | ||
) |
sets the problem name (used for printing)
- Parameters
-
oracle pointer to NLPIORACLE data structure name name of problem
Definition at line 1412 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICREATEPROBLEM(), and SCIPnlpiOracleFree().
◆ SCIPnlpiOracleGetProblemName()
const char* SCIPnlpiOracleGetProblemName | ( | SCIP_NLPIORACLE * | oracle | ) |
gets the problem name, or NULL if none set
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 1435 of file nlpioracle.c.
References NULL, and SCIPdebugMessage.
◆ SCIPnlpiOracleAddVars()
SCIP_RETCODE SCIPnlpiOracleAddVars | ( | SCIP_NLPIORACLE * | oracle, |
int | nvars, | ||
const SCIP_Real * | lbs, | ||
const SCIP_Real * | ubs, | ||
const char ** | varnames | ||
) |
adds variables
- Parameters
-
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 1447 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMScopyMemoryArray, BMSduplicateBlockMemoryArray, ensureVarsSize(), EPSEQ, invalidateHessianLagSparsity(), NULL, SCIP_ALLOC, SCIP_CALL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIADDVARS().
◆ SCIPnlpiOracleAddConstraints()
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
- Parameters
-
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 1532 of file nlpioracle.c.
References createConstraint(), ensureConssSize(), SCIP_NlpiOracleCons::exprtree, FALSE, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), SCIP_NlpiOracleCons::nquadelems, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCompile(), TRUE, and updateVariableDegreesCons().
Referenced by SCIP_DECL_NLPIADDCONSTRAINTS().
◆ SCIPnlpiOracleSetObjective()
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.
- Parameters
-
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 1610 of file nlpioracle.c.
References createConstraint(), FALSE, freeConstraint(), SCIP_NlpiOracle::infinity, invalidateHessianLagSparsity(), NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPexprintCompile().
Referenced by SCIP_DECL_NLPISETOBJECTIVE().
◆ SCIPnlpiOracleChgVarBounds()
SCIP_RETCODE SCIPnlpiOracleChgVarBounds | ( | SCIP_NLPIORACLE * | oracle, |
int | nvars, | ||
const int * | indices, | ||
const SCIP_Real * | lbs, | ||
const SCIP_Real * | ubs | ||
) |
change variable bounds
- Parameters
-
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 1647 of file nlpioracle.c.
References EPSEQ, NULL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGVARBOUNDS().
◆ SCIPnlpiOracleChgConsSides()
SCIP_RETCODE SCIPnlpiOracleChgConsSides | ( | SCIP_NLPIORACLE * | oracle, |
int | nconss, | ||
const int * | indices, | ||
const SCIP_Real * | lhss, | ||
const SCIP_Real * | rhss | ||
) |
change constraint bounds
- Parameters
-
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 1683 of file nlpioracle.c.
References EPSEQ, NULL, SCIP_DEFAULT_EPSILON, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGCONSSIDES().
◆ SCIPnlpiOracleDelVarSet()
SCIP_RETCODE SCIPnlpiOracleDelVarSet | ( | SCIP_NLPIORACLE * | oracle, |
int * | delstats | ||
) |
deletes a set of variables
- Parameters
-
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 1717 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, NULL, SCIP_NlpiOracleCons::quadelems, SCIP_NlpiOracleCons::quadsize, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeFree(), SCIPexprtreeGetNVars(), SCIPquadelemSort(), and SCIPsortIntReal().
Referenced by SCIP_DECL_NLPIDELVARSET().
◆ SCIPnlpiOracleDelConsSet()
SCIP_RETCODE SCIPnlpiOracleDelConsSet | ( | SCIP_NLPIORACLE * | oracle, |
int * | delstats | ||
) |
deletes a set of constraints
- Parameters
-
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 1827 of file nlpioracle.c.
References FALSE, freeConstraint(), freeConstraints(), invalidateHessianLagSparsity(), invalidateJacobiSparsity(), NULL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPIDELCONSSET().
◆ SCIPnlpiOracleChgLinearCoefs()
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
- Parameters
-
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 1909 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, ensureConsLinSize(), FALSE, invalidateJacobiSparsity(), SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::linidxs, SCIP_NlpiOracleCons::linsize, MAX, SCIP_NlpiOracleCons::nlinidxs, NULL, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPsortedvecFindInt(), sortLinearCoefficients(), and TRUE.
Referenced by SCIP_DECL_NLPICHGLINEARCOEFS().
◆ SCIPnlpiOracleChgQuadCoefs()
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
- Parameters
-
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 2006 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, SCIP_QuadElement::coef, ensureConsQuadSize(), FALSE, SCIP_QuadElement::idx1, SCIP_QuadElement::idx2, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), MAX, SCIP_NlpiOracleCons::nquadelems, NULL, 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().
◆ SCIPnlpiOracleChgExprtree()
SCIP_RETCODE SCIPnlpiOracleChgExprtree | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
const int * | exprvaridxs, | ||
const SCIP_EXPRTREE * | exprtree | ||
) |
replaces expression tree of one constraint or objective
- Parameters
-
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 2104 of file nlpioracle.c.
References BMSduplicateBlockMemoryArray, BMSfreeBlockMemoryArray, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, FALSE, invalidateHessianLagSparsity(), invalidateJacobiSparsity(), NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprintCompile(), SCIPexprtreeCopy(), SCIPexprtreeFree(), and SCIPexprtreeGetNVars().
Referenced by SCIP_DECL_NLPICHGEXPRTREE().
◆ SCIPnlpiOracleChgExprParam()
SCIP_RETCODE SCIPnlpiOracleChgExprParam | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
int | paramidx, | ||
SCIP_Real | paramval | ||
) |
changes one parameter of expression tree of one constraint or objective
- Parameters
-
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 2161 of file nlpioracle.c.
References NULL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNParams(), and SCIPexprtreeSetParamVal().
Referenced by SCIP_DECL_NLPICHGNONLINCOEF().
◆ SCIPnlpiOracleChgObjConstant()
SCIP_RETCODE SCIPnlpiOracleChgObjConstant | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_Real | objconstant | ||
) |
changes the constant value in the objective function
- Parameters
-
oracle pointer to NLPIORACLE data structure objconstant new value for objective constant
Definition at line 2186 of file nlpioracle.c.
References NULL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIP_DECL_NLPICHGOBJCONSTANT().
◆ SCIPnlpiOracleGetNVars()
int SCIPnlpiOracleGetNVars | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the current number of variables
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2202 of file nlpioracle.c.
References NULL, and 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().
◆ SCIPnlpiOracleGetNConstraints()
int SCIPnlpiOracleGetNConstraints | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the current number of constraints
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2212 of file nlpioracle.c.
References SCIP_NlpiOracle::nconss, and NULL.
Referenced by computeInteriorPoint(), initWorhp(), processSolveOutcome(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupGradients(), setupStart(), updateWorhp(), userDF(), userDG(), userF(), userG(), and userHM().
◆ SCIPnlpiOracleGetVarLbs()
const SCIP_Real* SCIPnlpiOracleGetVarLbs | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables lower bounds
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2222 of file nlpioracle.c.
References NULL, and SCIP_NlpiOracle::varlbs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and updateWorhp().
◆ SCIPnlpiOracleGetVarUbs()
const SCIP_Real* SCIPnlpiOracleGetVarUbs | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables upper bounds
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2232 of file nlpioracle.c.
References NULL, and SCIP_NlpiOracle::varubs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and updateWorhp().
◆ SCIPnlpiOracleGetVarNames()
char** SCIPnlpiOracleGetVarNames | ( | SCIP_NLPIORACLE * | oracle | ) |
gives the variables names, or NULL if not set
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2242 of file nlpioracle.c.
References NULL, and SCIP_NlpiOracle::varnames.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
◆ SCIPnlpiOracleGetVarDegree()
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.
- Parameters
-
oracle pointer to NLPIORACLE data structure varidx the variable for which the degree is returned
Definition at line 2254 of file nlpioracle.c.
References NULL, updateVariableDegrees(), and SCIP_NlpiOracle::vardegrees.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
◆ SCIPnlpiOracleGetVarDegrees()
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.
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2271 of file nlpioracle.c.
References NULL, updateVariableDegrees(), and SCIP_NlpiOracle::vardegrees.
◆ SCIPnlpiOracleGetConstraintLhs()
SCIP_Real SCIPnlpiOracleGetConstraintLhs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives left-hand side of a constraint
- Parameters
-
oracle pointer to NLPIORACLE data structure considx constraint index
Definition at line 2283 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracleCons::lhs, and NULL.
Referenced by initWorhp(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), and updateWorhp().
◆ SCIPnlpiOracleGetConstraintRhs()
SCIP_Real SCIPnlpiOracleGetConstraintRhs | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives right-hand side of a constraint
- Parameters
-
oracle pointer to NLPIORACLE data structure considx constraint index
Definition at line 2296 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, NULL, and SCIP_NlpiOracleCons::rhs.
Referenced by initWorhp(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPISOLVE(), SCIPsetModifiedDefaultSettingsIpopt(), and updateWorhp().
◆ SCIPnlpiOracleGetConstraintName()
char* SCIPnlpiOracleGetConstraintName | ( | SCIP_NLPIORACLE * | oracle, |
int | considx | ||
) |
gives name of a constraint, may be NULL
- Parameters
-
oracle pointer to NLPIORACLE data structure considx constraint index
Definition at line 2309 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracleCons::name, and NULL.
Referenced by SCIPsetModifiedDefaultSettingsIpopt().
◆ SCIPnlpiOracleGetConstraintDegree()
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.
- Parameters
-
oracle pointer to NLPIORACLE data structure considx index of constraint for which the degree is requested, or -1 for objective
Definition at line 2324 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, NULL, and SCIP_NlpiOracle::objective.
Referenced by computeInteriorPoint(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPICHGEXPRTREE(), SCIP_DECL_NLPICHGQUADCOEFS(), SCIP_DECL_NLPISETOBJECTIVE(), SCIP_DECL_NLPISOLVE(), and SCIPsetModifiedDefaultSettingsIpopt().
◆ SCIPnlpiOracleGetMaxDegree()
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.
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2356 of file nlpioracle.c.
References NULL, SCIPdebugMessage, and updateVariableDegrees().
Referenced by SCIP_DECL_NLPISOLVE().
◆ SCIPnlpiOracleGetEvalCapability()
SCIP_EXPRINTCAPABILITY SCIPnlpiOracleGetEvalCapability | ( | SCIP_NLPIORACLE * | oracle | ) |
Gives the evaluation capabilities that are shared among all expression trees in the problem.
- Parameters
-
oracle pointer to NLPIORACLE data structure
Definition at line 2382 of file nlpioracle.c.
References SCIP_NlpiOracle::conss, SCIP_NlpiOracle::exprinterpreter, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracle::nconss, NULL, SCIP_NlpiOracle::objective, SCIP_EXPRINTCAPABILITY_ALL, and SCIPexprintGetExprtreeCapability().
Referenced by SCIP_DECL_NLPISOLVE().
◆ SCIPnlpiOracleEvalObjectiveValue()
SCIP_RETCODE SCIPnlpiOracleEvalObjectiveValue | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Real * | objval | ||
) |
evaluates the objective function in a given point
- Parameters
-
oracle pointer to NLPIORACLE data structure x point where to evaluate objval pointer to store objective value
Definition at line 2404 of file nlpioracle.c.
References evalFunctionValue(), NULL, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIP_DECL_NLPIGETSOLUTION(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and userF().
◆ SCIPnlpiOracleEvalConstraintValue()
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValue | ( | SCIP_NLPIORACLE * | oracle, |
int | considx, | ||
const SCIP_Real * | x, | ||
SCIP_Real * | conval | ||
) |
evaluates one constraint function in a given point
- Parameters
-
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 2423 of file nlpioracle.c.
References evalFunctionValue(), NULL, SCIP_NlpiOracle::nvars, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), and setupStart().
◆ SCIPnlpiOracleEvalConstraintValues()
SCIP_RETCODE SCIPnlpiOracleEvalConstraintValues | ( | SCIP_NLPIORACLE * | oracle, |
const SCIP_Real * | x, | ||
SCIP_Real * | convals | ||
) |
evaluates all constraint functions in a given point
- Parameters
-
oracle pointer to NLPIORACLE data structure x point where to evaluate convals buffer to store constraint values
Definition at line 2442 of file nlpioracle.c.
References evalFunctionValue(), NULL, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPsetModifiedDefaultSettingsIpopt(), and userG().
◆ SCIPnlpiOracleEvalObjectiveGradient()
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
- Returns
- SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
- Parameters
-
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 2468 of file nlpioracle.c.
References evalFunctionGradient(), NULL, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIPsetModifiedDefaultSettingsIpopt(), setupStart(), and userDF().
◆ SCIPnlpiOracleEvalConstraintGradient()
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
- Returns
- SCIP_INVALIDDATA, if the function or its gradient could not be evaluated (domain error, etc.)
- Parameters
-
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 2492 of file nlpioracle.c.
References evalFunctionGradient(), NULL, SCIP_NlpiOracle::nvars, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by SCIPnlpiOracleEvalJacobian().
◆ SCIPnlpiOracleGetJacobianSparsity()
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.
- Parameters
-
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 2517 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, MIN, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, NULL, SCIP_NlpiOracleCons::quadelems, SCIP_ALLOC, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPexprtreeGetNVars(), and TRUE.
Referenced by initWorhp(), SCIPsetModifiedDefaultSettingsIpopt(), and setupGradients().
◆ SCIPnlpiOracleEvalJacobian()
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.
- Returns
- SCIP_INVALIDDATA, if the Jacobian could not be evaluated (domain error, etc.)
- Parameters
-
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 2658 of file nlpioracle.c.
References ABS, BMSallocBlockMemoryArray, BMScopyMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, SCIP_NlpiOracleCons::exprtree, SCIP_NlpiOracleCons::exprvaridxs, SCIP_NlpiOracleCons::lincoefs, SCIP_NlpiOracleCons::nlinidxs, SCIP_NlpiOracleCons::nquadelems, NULL, 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().
◆ SCIPnlpiOracleGetHessianLagSparsity()
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.
- Parameters
-
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 2797 of file nlpioracle.c.
References BMSallocBlockMemoryArray, BMSclearMemoryArray, BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, hessLagSparsitySetNzFlagForExprtree(), hessLagSparsitySetNzFlagForQuad(), NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, and SCIPdebugMessage.
Referenced by initWorhp(), SCIPsetModifiedDefaultSettingsIpopt(), setupHessian(), and userHM().
◆ SCIPnlpiOracleEvalHessianLag()
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.
- Returns
- SCIP_INVALIDDATA, if the Hessian could not be evaluated (domain error, etc.)
- Parameters
-
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 2896 of file nlpioracle.c.
References SCIP_NlpiOracle::heslagcols, SCIP_NlpiOracle::heslagoffsets, hessLagAddExprtree(), hessLagAddQuad(), SCIP_NlpiOracle::nconss, NULL, SCIP_CALL, SCIP_CALL_QUIET, SCIP_OKAY, and SCIPdebugMessage.
Referenced by F77_FUNC(), SCIPsetModifiedDefaultSettingsIpopt(), and userHM().
◆ SCIPnlpiOraclePrintProblem()
SCIP_RETCODE SCIPnlpiOraclePrintProblem | ( | SCIP_NLPIORACLE * | oracle, |
SCIP_MESSAGEHDLR * | messagehdlr, | ||
FILE * | file | ||
) |
prints the problem to a file.
- Parameters
-
oracle pointer to NLPIORACLE data structure messagehdlr message handler file file to print to, or NULL for standard output
Definition at line 2939 of file nlpioracle.c.
References FALSE, infinity, SCIP_NlpiOracleCons::lhs, NULL, printFunction(), SCIP_NlpiOracleCons::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, and SCIPmessageFPrintInfo().
Referenced by computeInteriorPoint(), and SCIP_DECL_NLPISOLVE().
◆ SCIPnlpiOraclePrintProblemGams()
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.
- Parameters
-
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 3008 of file nlpioracle.c.
References exprIsNonSmooth(), SCIP_NlpiOracleCons::exprtree, FALSE, infinity, SCIP_NlpiOracleCons::lhs, SCIP_NlpiOracleCons::name, SCIP_NlpiOracleCons::nquadelems, NULL, printFunction(), printName(), SCIP_NlpiOracleCons::rhs, SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPexprtreeGetRoot(), SCIPmessageFPrintInfo(), SCIPsnprintf(), and TRUE.