SCIP Doxygen Documentation
 
Loading...
Searching...
No Matches

Detailed Description

NLP management methods.

Author
Thorsten Gellermann
Stefan Vigerske

In NLP management, we have to distinguish between the current NLP and the NLPI problem stored in the NLP solver. All NLP methods affect the current NLP only. Before solving the current NLP with the NLP solver, the NLP solvers data has to be updated to the current NLP with a call to SCIPnlpFlush().

Definition in file nlp.c.

#include "scip/nlpi.h"
#include "scip/pub_expr.h"
#include "scip/expr.h"
#include "scip/expr_varidx.h"
#include "scip/clock.h"
#include "scip/event.h"
#include "scip/nlp.h"
#include "scip/primal.h"
#include "scip/pub_event.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_nlp.h"
#include "scip/pub_var.h"
#include "scip/set.h"
#include "scip/sol.h"
#include "scip/struct_nlp.h"
#include "scip/struct_scip.h"
#include "scip/struct_set.h"
#include "scip/struct_stat.h"
#include "scip/var.h"
#include <string.h>

Go to the source code of this file.

Macros

#define EVENTHDLR_NAME   "nlpEventHdlr"
 
#define EVENTHDLR_DESC   "handles all events necessary for maintaining NLP data"
 
#define ADDNAMESTONLPI   0
 

Functions

BMS_BLKMEMSCIPblkmem (SCIP *scip)
 
static SCIP_DECL_EVENTEXEC (eventExecNlp)
 
static SCIP_RETCODE nlpRowChanged (SCIP_NLP *nlp, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
 
static SCIP_RETCODE nlrowLinearCoefChanged (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real coef, SCIP_NLP *nlp)
 
static SCIP_DECL_EXPR_MAPEXPR (mapvar2varidx)
 
static SCIP_RETCODE nlrowExprChanged (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
static SCIP_RETCODE nlrowSideChanged (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
static SCIP_RETCODE nlrowConstantChanged (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
static void nlrowAddToStat (SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, int incr)
 
static void nlrowSortLinear (SCIP_NLROW *nlrow)
 
static int nlrowSearchLinearCoef (SCIP_NLROW *nlrow, SCIP_VAR *var)
 
static void nlrowMoveLinearCoef (SCIP_NLROW *nlrow, int oldpos, int newpos)
 
static SCIP_RETCODE nlrowAddLinearCoef (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real coef)
 
static SCIP_RETCODE nlrowDelLinearCoefPos (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos)
 
static SCIP_RETCODE nlrowChgLinearCoefPos (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos, SCIP_Real coef)
 
static SCIP_RETCODE nlrowCalcActivityBounds (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
static SCIP_RETCODE nlrowRemoveFixedLinearCoefPos (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, int pos)
 
static SCIP_RETCODE nlrowRemoveFixedLinearCoefs (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
static SCIP_RETCODE nlrowSimplifyExpr (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
static SCIP_RETCODE nlrowRemoveFixedVar (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var)
 
SCIP_RETCODE SCIPnlrowCreate (SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, SCIP_Real constant, int nlinvars, SCIP_VAR **linvars, SCIP_Real *lincoefs, SCIP_EXPR *expr, SCIP_Real lhs, SCIP_Real rhs, SCIP_EXPRCURV curvature)
 
SCIP_RETCODE SCIPnlrowCreateCopy (SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *sourcenlrow)
 
SCIP_RETCODE SCIPnlrowCreateFromRow (SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_ROW *row)
 
SCIP_RETCODE SCIPnlrowPrint (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
 
void SCIPnlrowCapture (SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPnlrowRelease (SCIP_NLROW **nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlrowEnsureLinearSize (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
SCIP_RETCODE SCIPnlrowAddLinearCoef (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real val)
 
SCIP_RETCODE SCIPnlrowDelLinearCoef (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var)
 
SCIP_RETCODE SCIPnlrowChgLinearCoef (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real coef)
 
SCIP_RETCODE SCIPnlrowChgExpr (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_EXPR *expr)
 
SCIP_RETCODE SCIPnlrowChgConstant (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real constant)
 
SCIP_RETCODE SCIPnlrowChgLhs (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real lhs)
 
SCIP_RETCODE SCIPnlrowChgRhs (SCIP_NLROW *nlrow, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp, SCIP_Real rhs)
 
void SCIPnlrowSetCurvature (SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, SCIP_EXPRCURV curvature)
 
SCIP_RETCODE SCIPnlrowSimplify (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlrowRecalcNLPActivity (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlrowGetNLPActivity (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_Real *activity)
 
SCIP_RETCODE SCIPnlrowGetNLPFeasibility (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_Real *feasibility)
 
SCIP_RETCODE SCIPnlrowRecalcPseudoActivity (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp)
 
SCIP_RETCODE SCIPnlrowGetPseudoActivity (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudoactivity)
 
SCIP_RETCODE SCIPnlrowGetPseudoFeasibility (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudofeasibility)
 
SCIP_RETCODE SCIPnlrowGetSolActivity (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Real *activity)
 
SCIP_RETCODE SCIPnlrowGetSolFeasibility (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Real *feasibility)
 
SCIP_RETCODE SCIPnlrowGetActivityBounds (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real *minactivity, SCIP_Real *maxactivity)
 
SCIP_RETCODE SCIPnlrowIsRedundant (SCIP_NLROW *nlrow, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *isredundant)
 
SCIP_Real SCIPnlrowGetConstant (SCIP_NLROW *nlrow)
 
int SCIPnlrowGetNLinearVars (SCIP_NLROW *nlrow)
 
SCIP_VAR ** SCIPnlrowGetLinearVars (SCIP_NLROW *nlrow)
 
SCIP_RealSCIPnlrowGetLinearCoefs (SCIP_NLROW *nlrow)
 
SCIP_EXPRSCIPnlrowGetExpr (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetLhs (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetRhs (SCIP_NLROW *nlrow)
 
SCIP_EXPRCURV SCIPnlrowGetCurvature (SCIP_NLROW *nlrow)
 
const char * SCIPnlrowGetName (SCIP_NLROW *nlrow)
 
int SCIPnlrowGetNLPPos (SCIP_NLROW *nlrow)
 
SCIP_Bool SCIPnlrowIsInNLP (SCIP_NLROW *nlrow)
 
SCIP_Real SCIPnlrowGetDualsol (SCIP_NLROW *nlrow)
 
static SCIP_RETCODE nlpAddNlRows (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int nnlrows, SCIP_NLROW **nlrows)
 
static void nlpMoveNlrow (SCIP_NLP *nlp, int oldpos, int newpos)
 
static SCIP_RETCODE nlpDelNlRowPos (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int pos)
 
static SCIP_RETCODE nlpUpdateVarBounds (SCIP_NLP *nlp, SCIP_SET *set, SCIP_VAR *var, SCIP_Bool tightened)
 
static SCIP_RETCODE nlpUpdateObjCoef (SCIP_SET *set, SCIP_NLP *nlp, SCIP_VAR *var)
 
static SCIP_RETCODE nlpAddVars (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int nvars, SCIP_VAR **vars)
 
static SCIP_RETCODE nlpMoveVar (SCIP_NLP *nlp, int oldpos, int newpos)
 
static SCIP_RETCODE nlpDelVarPos (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, int pos)
 
static SCIP_RETCODE nlpRemoveFixedVar (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_VAR *var)
 
static SCIP_RETCODE nlpSetupNlpiIndices (SCIP_NLP *nlp, SCIP_SET *set, SCIP_NLROW *nlrow, int **linidxs)
 
static SCIP_RETCODE nlpEnsureVarsSolverSize (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
static SCIP_RETCODE nlpEnsureNlRowsSolverSize (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
static SCIP_RETCODE nlpFlushNlRowDeletions (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
static SCIP_RETCODE nlpFlushVarDeletions (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
static SCIP_RETCODE nlpFlushNlRowAdditions (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
static SCIP_RETCODE nlpFlushVarAdditions (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
static SCIP_RETCODE nlpFlushObjective (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set)
 
static SCIP_RETCODE nlpSolve (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLPPARAM *nlpparam)
 
static SCIP_RETCODE nlpCalcFracVars (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlpInclude (SCIP_SET *set, BMS_BLKMEM *blkmem)
 
SCIP_RETCODE SCIPnlpCreate (SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, const char *name, int nvars_estimate)
 
SCIP_RETCODE SCIPnlpFree (SCIP_NLP **nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
 
SCIP_RETCODE SCIPnlpReset (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
 
SCIP_Bool SCIPnlpHasCurrentNodeNLP (SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlpEnsureVarsSize (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
SCIP_RETCODE SCIPnlpAddVar (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_VAR *var)
 
SCIP_RETCODE SCIPnlpAddVars (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int nvars, SCIP_VAR **vars)
 
SCIP_RETCODE SCIPnlpDelVar (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp, SCIP_VAR *var)
 
SCIP_RETCODE SCIPnlpEnsureNlRowsSize (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, int num)
 
SCIP_RETCODE SCIPnlpAddNlRow (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPnlpAddNlRows (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int nnlrows, SCIP_NLROW **nlrows)
 
SCIP_RETCODE SCIPnlpDelNlRow (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_NLROW *nlrow)
 
SCIP_RETCODE SCIPnlpFlush (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlpSolve (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLPPARAM *nlpparam)
 
SCIP_Real SCIPnlpGetObjval (SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlpGetPseudoObjval (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_Real *pseudoobjval)
 
SCIP_RETCODE SCIPnlpGetFracVars (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR ***fracvars, SCIP_Real **fracvarssol, SCIP_Real **fracvarsfrac, int *nfracvars, int *npriofracvars)
 
SCIP_RETCODE SCIPnlpRemoveRedundantNlRows (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlpSetInitialGuess (SCIP_SET *set, SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_Real *initguess)
 
SCIP_RETCODE SCIPnlpWrite (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_MESSAGEHDLR *messagehdlr, const char *fname)
 
SCIP_VAR ** SCIPnlpGetVars (SCIP_NLP *nlp)
 
int SCIPnlpGetNVars (SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlpGetVarsNonlinearity (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int *nlcount)
 
SCIP_RETCODE SCIPnlpHasContinuousNonlinearity (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool *result)
 
SCIP_RealSCIPnlpGetVarsLbDualsol (SCIP_NLP *nlp)
 
SCIP_RealSCIPnlpGetVarsUbDualsol (SCIP_NLP *nlp)
 
SCIP_NLROW ** SCIPnlpGetNlRows (SCIP_NLP *nlp)
 
int SCIPnlpGetNNlRows (SCIP_NLP *nlp)
 
void SCIPnlpGetNlRowsStat (SCIP_NLP *nlp, int *nlinear, int *nconvexineq, int *nnonconvexineq, int *nnonlineareq)
 
SCIP_NLPISCIPnlpGetNLPI (SCIP_NLP *nlp)
 
SCIP_NLPIPROBLEMSCIPnlpGetNLPIProblem (SCIP_NLP *nlp)
 
SCIP_Bool SCIPnlpIsDiving (SCIP_NLP *nlp)
 
SCIP_NLPSOLSTAT SCIPnlpGetSolstat (SCIP_NLP *nlp)
 
SCIP_NLPTERMSTAT SCIPnlpGetTermstat (SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlpGetStatistics (SCIP_SET *set, SCIP_NLP *nlp, SCIP_NLPSTATISTICS *statistics)
 
SCIP_Bool SCIPnlpHasSolution (SCIP_NLP *nlp)
 
SCIP_RETCODE SCIPnlpStartDive (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlpEndDive (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat)
 
SCIP_RETCODE SCIPnlpChgVarObjDive (SCIP_NLP *nlp, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real coef)
 
SCIP_RETCODE SCIPnlpChgVarBoundsDive (SCIP_SET *set, SCIP_NLP *nlp, SCIP_VAR *var, SCIP_Real lb, SCIP_Real ub)
 
SCIP_RETCODE SCIPnlpChgVarsBoundsDive (SCIP_NLP *nlp, SCIP_SET *set, int nvars, SCIP_VAR **vars, SCIP_Real *lbs, SCIP_Real *ubs)
 
SCIP_Bool SCIPnlpIsDivingObjChanged (SCIP_NLP *nlp)
 

Macro Definition Documentation

◆ EVENTHDLR_NAME

#define EVENTHDLR_NAME   "nlpEventHdlr"

name of NLP event handler that catches variable events

Definition at line 70 of file nlp.c.

◆ EVENTHDLR_DESC

#define EVENTHDLR_DESC   "handles all events necessary for maintaining NLP data"

description of NLP event handler

Definition at line 71 of file nlp.c.

◆ ADDNAMESTONLPI

#define ADDNAMESTONLPI   0

whether to give variable and row names to NLPI

Definition at line 72 of file nlp.c.

Function Documentation

◆ SCIPblkmem()

BMS_BLKMEM * SCIPblkmem ( SCIP * scip)

returns block memory to use at the current time

Returns
the block memory to use at the current time.
Parameters
scipSCIP data structure

Definition at line 57 of file scip_mem.c.

References assert(), and NULL.

Referenced by addComponent(), addOrbitope(), addProductVars(), addScenarioVarsAndConsToProb(), addSymmetryInformation(), addVarCardinality(), addWeakSBCsSubgroup(), appendVarCardinality(), applyHeur(), applyNlobbt(), bilinearTermsInsertEntry(), buildMod2Matrix(), candidateStoreWarmStartInfo(), checkConsnames(), checkOverloadViaThetaTree(), checkSubproblemConvexity(), checkSystemGF2(), checkVarnames(), collectBranchingCands(), collectLeafs(), computeInteriorPoint(), computeOffValues(), consdataCreate(), copyConsPseudoboolean(), copyProb(), copyVars(), createAndSplitProblem(), createAndSplitProblem(), createAuxiliaryNonlinearSubproblem(), createBlockproblem(), createLPWithHardCuts(), createMaps(), createMasterVarMapping(), createNLP(), createPattern(), createReaderdata(), createSepaData(), createStartingData(), createSubSCIP(), createSubSCIP(), createTcliqueGraph(), createVariableMappings(), DECL_CURVCHECK(), destroyMod2Matrix(), detectHiddenProducts(), detectMinors(), detectMinors(), detectSocNorm(), detectSocQuadraticComplex(), doCopy(), doScipCreate(), doSeparation(), doSolveSubMIP(), dualBoundStrengthening(), ensureSymmetryPermvarmapComputed(), executeLNSHeuristic(), findCumulativeConss(), initAlternativeLP(), initConcsolver(), initConflictgraph(), initData(), inithashmapandtable(), initImplGraphSOS1(), initPropdata(), insertIndex(), lexdataCreate(), mod2MatrixAddCol(), mod2MatrixAddTransRow(), mod2matrixPreprocessColumns(), mod2matrixPreprocessRows(), mod2matrixRemoveCol(), mod2rowAddRow(), nodepairqueueCreate(), preprocessCliques(), presoldataInitHashtables(), presolRoundVarsSOS1(), presolveBinaryProducts(), presolveMergeConss(), presolveSingleLockedVars(), processHashlists(), propdataInit(), relabelOrderConsistent(), removeDoubleAndSingletonsAndPerformDualpresolve(), removeRedundantConssAndNonzeros(), reoptimize(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSTRANS(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLPISOLVE(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERREAD(), SCIP_DECL_READERWRITE(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_TABLEOUTPUT(), SCIPaddNlRow(), SCIPaddObjoffset(), SCIPapplyProximity(), SCIPbendersApplyDecomposition(), SCIPbendersExit(), SCIPbendersInit(), SCIPbendersMergeSubproblemIntoMaster(), SCIPbendersStoreCut(), SCIPcalcCliquePartition(), SCIPchgConsName(), SCIPchgVarName(), SCIPchgVarObjDiveNLP(), SCIPcomputeComponentsSym(), SCIPcopyConflicts(), SCIPcopyConss(), SCIPcopyOrigConss(), SCIPcreateBanditEpsgreedy(), SCIPcreateBanditExp3(), SCIPcreateBanditExp3IX(), SCIPcreateBanditUcb(), SCIPcreateBoolarray(), SCIPcreateConsCardinality(), SCIPcreateConsIndicatorGeneric(), SCIPcreateConsIndicatorGenericLinConsPure(), SCIPcreateConsLinking(), SCIPcreateDecomp(), SCIPcreateIntarray(), SCIPcreateProb(), SCIPcreatePtrarray(), SCIPcreateRandom(), SCIPcreateRealarray(), SCIPcreateWorstCaseProfile(), SCIPdelNlRow(), SCIPendDiveNLP(), SCIPexitSolveDecompstore(), SCIPfreeBandit(), SCIPfreeDecomp(), SCIPfreeProb(), SCIPfreeRandom(), SCIPgetConsCopy(), SCIPgetNLPFracVars(), SCIPgetVarCopy(), SCIPhasExprCurvature(), SCIPincludeConshdlrNonlinear(), SCIPincludePropSymmetry(), SCIPincrementConcurrentTime(), SCIPinitVarValueBranchStats(), SCIPparseExpr(), SCIPremoveVarFromGlobalStructures(), SCIPsetNLPInitialGuess(), SCIPsetNLPInitialGuessSol(), SCIPsolveNLPParam(), SCIPstartDiveNLP(), SCIPvariableGraphCreate(), SCIPvisualizeConsCumulative(), SCIPwriteCliqueGraph(), SCIPwriteLp(), SCIPwriteMps(), SCIPwritePip(), searchEcAggrWithCliques(), separatePoint(), setupAndSolve(), setupAndSolve(), setupAndSolveFiniteSolSubscip(), setupAndSolveSubscip(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipMutation(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), setUpEvents(), setupProbingSCIP(), setupSubscipLpface(), solveSubproblem(), subtreeSumGapCreate(), tryAddGadgetBilinearProductSignedPerm(), tryAddGadgetEvenOperator(), tryAddGadgetEvenOperatorSum(), tryAddGadgetSquaredDifference(), warmStartInfoFree(), wrapperDins(), wrapperRins(), writeBounds(), writeOpb(), and writeOpbConstraints().

◆ SCIP_DECL_EVENTEXEC()

◆ nlpRowChanged()

static SCIP_RETCODE nlpRowChanged ( SCIP_NLP * nlp,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLROW * nlrow )
static

announces, that a row of the NLP was modified

adjusts status of current solution; calling method has to ensure that change is passed on to the NLPI!

announces, that a row of the NLP was modified adjusts status of current solution calling method has to ensure that change is passed to the NLPI!

Parameters
nlpcurrent NLP data
setglobal SCIP settings
statproblem statistics data
nlrownonlinear row which was changed

Definition at line 1989 of file nlp.c.

References assert(), SCIP_Nlp::indiving, SCIP_NlRow::nlpindex, NULL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, and SCIP_Nlp::solstat.

Referenced by nlrowConstantChanged(), nlrowExprChanged(), nlrowLinearCoefChanged(), and nlrowSideChanged().

◆ nlrowLinearCoefChanged()

static SCIP_RETCODE nlrowLinearCoefChanged ( SCIP_NLROW * nlrow,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_VAR * var,
SCIP_Real coef,
SCIP_NLP * nlp )
static

announces, that the given linear coefficient in the constraint matrix changed

Parameters
nlrownonlinear row
setglobal SCIP settings
statproblem statistics data
varvariable which coefficient changed
coefnew coefficient of variable, 0.0 if deleted
nlpcurrent NLP data

Definition at line 118 of file nlp.c.

References SCIP_NlRow::activity, assert(), SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, nvars, SCIP_Nlp::problem, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIP_Nlp::solver, SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, SCIP_NlRow::validpsactivitydomchg, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

Referenced by nlrowAddLinearCoef(), nlrowChgLinearCoefPos(), nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().

◆ SCIP_DECL_EXPR_MAPEXPR()

static SCIP_DECL_EXPR_MAPEXPR ( mapvar2varidx )
static

create varidx expression for var expression

called when expr is duplicated for addition to NLPI

Definition at line 171 of file nlp.c.

References assert(), NULL, nvars, SCIP_Nlp::nvars_solver, SCIP_CALL, SCIP_OKAY, SCIPcreateExprVaridx(), SCIPexprIsVar(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarIsActive(), SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

◆ nlrowExprChanged()

static SCIP_RETCODE nlrowExprChanged ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp )
static

◆ nlrowSideChanged()

static SCIP_RETCODE nlrowSideChanged ( SCIP_NLROW * nlrow,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp )
static

notifies nonlinear row, that its sides were changed

Parameters
nlrownonlinear row
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data

Definition at line 245 of file nlp.c.

References assert(), SCIP_NlRow::constant, SCIP_NlRow::lhs, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_Nlp::problem, SCIP_NlRow::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiChgConsSides(), SCIPsetIsInfinity(), and SCIP_Nlp::solver.

Referenced by SCIPnlrowChgLhs(), and SCIPnlrowChgRhs().

◆ nlrowConstantChanged()

◆ nlrowAddToStat()

static void nlrowAddToStat ( SCIP_NLP * nlp,
SCIP_SET * set,
SCIP_NLROW * nlrow,
int incr )
static

increments or decrements count of NLROW in NLP statistics

Updates count on linear/convex/nonconvex NLP rows w.r.t. given NLROW.

Parameters
nlpNLP
setglobal SCIP settings
nlrownonlinear row
incrby how much to increment statistic: +1 or -1

Definition at line 332 of file nlp.c.

References assert(), SCIP_NlRow::curvature, SCIP_NlRow::expr, SCIP_NlRow::lhs, SCIP_Nlp::nnlrowconvexineq, SCIP_Nlp::nnlrowlinear, SCIP_Nlp::nnlrownonconvexineq, SCIP_Nlp::nnlrownonlineareq, NULL, SCIP_NlRow::rhs, SCIP_EXPRCURV_CONCAVE, SCIP_EXPRCURV_CONVEX, and SCIPsetIsInfinity().

Referenced by nlpAddNlRows(), nlpDelNlRowPos(), nlrowSimplifyExpr(), SCIPnlrowChgExpr(), SCIPnlrowChgLhs(), SCIPnlrowChgRhs(), and SCIPnlrowSetCurvature().

◆ nlrowSortLinear()

static void nlrowSortLinear ( SCIP_NLROW * nlrow)
static

sorts linear part of row entries such that lower variable indices precede higher ones

Parameters
nlrownonlinear row to be sorted

Definition at line 372 of file nlp.c.

References assert(), SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, NULL, SCIPsortPtrReal(), and TRUE.

Referenced by nlrowSearchLinearCoef().

◆ nlrowSearchLinearCoef()

static int nlrowSearchLinearCoef ( SCIP_NLROW * nlrow,
SCIP_VAR * var )
static

searches linear variable in nonlinear row, returns position in linvars vector or -1 if not found

Parameters
nlrownonlinear row to be searched in
varvariable to be searched for

Definition at line 390 of file nlp.c.

References assert(), SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, nlrowSortLinear(), NULL, SCIPsortedvecFindPtr(), and var.

Referenced by nlpDelVarPos(), nlrowRemoveFixedVar(), SCIPnlrowChgLinearCoef(), and SCIPnlrowDelLinearCoef().

◆ nlrowMoveLinearCoef()

static void nlrowMoveLinearCoef ( SCIP_NLROW * nlrow,
int oldpos,
int newpos )
static

moves a coefficient in a nonlinear row to a different place, and updates all corresponding data structures

Parameters
nlrowNLP row
oldposold position of coefficient
newposnew position of coefficient

Definition at line 412 of file nlp.c.

References assert(), FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, and NULL.

Referenced by nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().

◆ nlrowAddLinearCoef()

static SCIP_RETCODE nlrowAddLinearCoef ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp,
SCIP_VAR * var,
SCIP_Real coef )
static

adds a previously non existing linear coefficient to a nonlinear row

Parameters
nlrownonlinear row
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data
varvariable
coefvalue of coefficient

Definition at line 435 of file nlp.c.

References assert(), FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::name, SCIP_NlRow::nlinvars, SCIP_NlRow::nlpindex, nlrowLinearCoefChanged(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlrowEnsureLinearSize(), SCIPsetDebugMsg, SCIPvarCompare(), SCIPvarGetName(), SCIPvarIsActive(), and var.

Referenced by nlrowRemoveFixedLinearCoefPos(), SCIPnlrowAddLinearCoef(), and SCIPnlrowChgLinearCoef().

◆ nlrowDelLinearCoefPos()

static SCIP_RETCODE nlrowDelLinearCoefPos ( SCIP_NLROW * nlrow,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp,
int pos )
static

deletes coefficient at given position from row

Parameters
nlrownonlinear row to be changed
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data
posposition in row vector to delete

Definition at line 564 of file nlp.c.

References assert(), FALSE, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), NULL, SCIP_CALL, SCIP_OKAY, and var.

Referenced by nlrowChgLinearCoefPos(), nlrowRemoveFixedLinearCoefPos(), and SCIPnlrowDelLinearCoef().

◆ nlrowChgLinearCoefPos()

static SCIP_RETCODE nlrowChgLinearCoefPos ( SCIP_NLROW * nlrow,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp,
int pos,
SCIP_Real coef )
static

changes a coefficient at given position of a nonlinear row

Parameters
nlrowNLP row
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data
posposition in row vector to change
coefnew value of coefficient

Definition at line 593 of file nlp.c.

References assert(), SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), and SCIPsetIsZero().

Referenced by SCIPnlrowChgLinearCoef().

◆ nlrowCalcActivityBounds()

◆ nlrowRemoveFixedLinearCoefPos()

static SCIP_RETCODE nlrowRemoveFixedLinearCoefPos ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp,
int pos )
static

makes sure that there is no fixed variable at position pos of the linear part of a nonlinear row

a fixed variable is replaced with the corresponding constant or disaggregated term

Parameters
nlrownonlinear row
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data
posposition of variable in linear variables array

Definition at line 670 of file nlp.c.

References assert(), SCIP_NlRow::constant, FALSE, i, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowAddLinearCoef(), nlrowConstantChanged(), nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), nlrowRemoveFixedLinearCoefPos(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPnlrowEnsureLinearSize(), SCIPsetIsZero(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), and var.

Referenced by nlrowRemoveFixedLinearCoefPos(), nlrowRemoveFixedLinearCoefs(), and nlrowRemoveFixedVar().

◆ nlrowRemoveFixedLinearCoefs()

static SCIP_RETCODE nlrowRemoveFixedLinearCoefs ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp )
static

removes fixed variables from the linear part of a nonlinear row

Parameters
nlrownonlinear row
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data

Definition at line 772 of file nlp.c.

References assert(), i, SCIP_NlRow::linvars, MIN, SCIP_NlRow::nlinvars, nlrowRemoveFixedLinearCoefPos(), NULL, SCIP_CALL, and SCIP_OKAY.

Referenced by SCIPnlrowSimplify().

◆ nlrowSimplifyExpr()

static SCIP_RETCODE nlrowSimplifyExpr ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp )
static

removes fixed variables from expression of a nonlinear row

Parameters
nlrownonlinear row
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data

Definition at line 798 of file nlp.c.

References assert(), SCIP_NlRow::constant, SCIP_NlRow::curvature, SCIP_NlRow::expr, SCIP_NlRow::nlpindex, nlrowAddToStat(), nlrowExprChanged(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIPexprIsValue(), SCIPexprRelease(), SCIPexprSimplify(), SCIPgetValueExprValue(), and SCIPnlrowChgConstant().

Referenced by nlrowRemoveFixedVar(), and SCIPnlrowSimplify().

◆ nlrowRemoveFixedVar()

static SCIP_RETCODE nlrowRemoveFixedVar ( SCIP_NLROW * nlrow,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLP * nlp,
SCIP_VAR * var )
static

removes fixed variable from nonlinear row

Parameters
nlrownonlinear row
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlpcurrent NLP data
varvariable that had been fixed

Definition at line 850 of file nlp.c.

References assert(), SCIP_NlRow::expr, nlrowRemoveFixedLinearCoefPos(), nlrowSearchLinearCoef(), nlrowSimplifyExpr(), NULL, SCIP_CALL, SCIP_OKAY, SCIPvarIsActive(), and var.

Referenced by nlpRemoveFixedVar().

◆ nlpAddNlRows()

◆ nlpMoveNlrow()

static void nlpMoveNlrow ( SCIP_NLP * nlp,
int oldpos,
int newpos )
static

moves a nonlinear row to a different place, and updates all corresponding data structures

Parameters
nlpNLP data structure
oldposold position of nonlinear row
newposnew position of nonlinear row

Definition at line 2114 of file nlp.c.

References assert(), SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, NULL, and SCIP_Nlp::sizenlrows_solver.

Referenced by nlpDelNlRowPos().

◆ nlpDelNlRowPos()

static SCIP_RETCODE nlpDelNlRowPos ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
int pos )
static

◆ nlpUpdateVarBounds()

static SCIP_RETCODE nlpUpdateVarBounds ( SCIP_NLP * nlp,
SCIP_SET * set,
SCIP_VAR * var,
SCIP_Bool tightened )
static

◆ nlpUpdateObjCoef()

static SCIP_RETCODE nlpUpdateObjCoef ( SCIP_SET * set,
SCIP_NLP * nlp,
SCIP_VAR * var )
static

updates coefficient of a variable in the objective

Parameters
setglobal SCIP settings
nlpNLP data
varvariable which bounds have changed

Definition at line 2259 of file nlp.c.

References assert(), FALSE, SCIP_Nlp::indiving, NULL, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIPvarGetObj(), SCIP_Nlp::solstat, SCIP_Nlp::solver, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

Referenced by nlpAddVars(), and SCIP_DECL_EVENTEXEC().

◆ nlpAddVars()

◆ nlpMoveVar()

static SCIP_RETCODE nlpMoveVar ( SCIP_NLP * nlp,
int oldpos,
int newpos )
static

moves a variable to a different place, and updates all corresponding data structures

Parameters
nlpNLP data structure
oldposold position of variable
newposnew position of variable

Definition at line 2400 of file nlp.c.

References assert(), SCIP_Nlp::initialguess, NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPhashmapSetImageInt(), SCIP_Nlp::varhash, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, SCIP_Nlp::vars, and SCIP_Nlp::varubdualvals.

Referenced by nlpDelVarPos().

◆ nlpDelVarPos()

◆ nlpRemoveFixedVar()

static SCIP_RETCODE nlpRemoveFixedVar ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_EVENTQUEUE * eventqueue,
SCIP_LP * lp,
SCIP_VAR * var )
static

notifies NLP that a variable was fixed, so it is removed from objective, all rows, and the NLP variables

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
eventqueueevent queue
lpSCIP LP, needed to release variable
varvariable that has been fixed

Definition at line 2527 of file nlp.c.

References assert(), i, SCIP_Nlp::indiving, nlrowRemoveFixedVar(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPnlpDelVar(), SCIPvarIsActive(), var, and SCIP_Nlp::varhash.

Referenced by SCIP_DECL_EVENTEXEC().

◆ nlpSetupNlpiIndices()

static SCIP_RETCODE nlpSetupNlpiIndices ( SCIP_NLP * nlp,
SCIP_SET * set,
SCIP_NLROW * nlrow,
int ** linidxs )
static

creates arrays with NLPI variable indices of linear variables in a nonlinear row

Parameters
nlpNLP data
setglobal SCIP settings
nlrownonlinear row
linidxsbuffer to store pointer to NLPI indices of linear variables

Definition at line 2559 of file nlp.c.

References assert(), i, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPsetAllocBufferArray, SCIPvarIsActive(), var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

Referenced by nlpFlushNlRowAdditions().

◆ nlpEnsureVarsSolverSize()

static SCIP_RETCODE nlpEnsureVarsSolverSize ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
int num )
static

ensures, that NLPI variables array of NLP can store at least num entries

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
numminimum number of entries to store

Definition at line 2601 of file nlp.c.

References assert(), BMSreallocBlockMemoryArray, NULL, SCIP_Nlp::nvars_solver, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Nlp::sizevars_solver, and SCIP_Nlp::varmap_nlpi2nlp.

Referenced by nlpFlushVarAdditions().

◆ nlpEnsureNlRowsSolverSize()

static SCIP_RETCODE nlpEnsureNlRowsSolverSize ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
int num )
static

ensures, that NLPI nonlinear rows array of NLP can store at least num entries

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
numminimum number of entries to store

Definition at line 2629 of file nlp.c.

References assert(), BMSreallocBlockMemoryArray, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nnlrows_solver, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows_solver.

Referenced by nlpFlushNlRowAdditions().

◆ nlpFlushNlRowDeletions()

static SCIP_RETCODE nlpFlushNlRowDeletions ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set )
static

deletes rows from the NLPI problem that have been marked as to remove

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings

Definition at line 2657 of file nlp.c.

References assert(), c, SCIP_Nlp::indiving, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiDelConsSet(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, and SCIP_Nlp::solver.

Referenced by SCIPnlpFlush().

◆ nlpFlushVarDeletions()

static SCIP_RETCODE nlpFlushVarDeletions ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set )
static

deletes variables from the NLPI problem that have been marked as to remove

assumes that there are no pending row deletions (nlpFlushNlRowDeletions() should be called first)

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings

Definition at line 2751 of file nlp.c.

References assert(), c, i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::nunflushedvardel, nvars, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiDelVarSet(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Nlp::solver, SCIP_Nlp::varmap_nlp2nlpi, and SCIP_Nlp::varmap_nlpi2nlp.

Referenced by SCIPnlpFlush().

◆ nlpFlushNlRowAdditions()

◆ nlpFlushVarAdditions()

static SCIP_RETCODE nlpFlushVarAdditions ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set )
static

adds variables to NLPI problem that have been added to NLP before

may set nlp->objflushed to FALSE if a variable with nonzero objective coefficient is added to the NLPI problem

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings

Definition at line 2995 of file nlp.c.

References assert(), c, FALSE, i, SCIP_Nlp::indiving, nlpEnsureVarsSolverSize(), NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiAddVars(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIP_Nlp::solver, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.

Referenced by SCIPnlpFlush().

◆ nlpFlushObjective()

static SCIP_RETCODE nlpFlushObjective ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set )
static

updates the objective in the NLPI problem, if necessary

assumes that there are no unflushed variable additions or deletions (nlpFlushVarDeletions() and nlpFlushVarAdditions() should be called first)

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings

Definition at line 3084 of file nlp.c.

References assert(), i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiSetObjective(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetObj(), SCIP_Nlp::solver, TRUE, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.

Referenced by SCIPnlpFlush().

◆ nlpSolve()

static SCIP_RETCODE nlpSolve ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
SCIP_STAT * stat,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_NLPPARAM * nlpparam )
static

◆ nlpCalcFracVars()

◆ SCIPnlpInclude()

SCIP_RETCODE SCIPnlpInclude ( SCIP_SET * set,
BMS_BLKMEM * blkmem )

includes event handler that is used by NLP

Parameters
setglobal SCIP settings
blkmemblock memory

Definition at line 3514 of file nlp.c.

References assert(), EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_STAGE_INIT, SCIPerrorMessage, SCIPeventhdlrCreate(), SCIPsetFindEventhdlr(), and SCIPsetIncludeEventhdlr().

Referenced by doScipCreate().

◆ SCIPnlpCreate()

SCIP_RETCODE SCIPnlpCreate ( SCIP_NLP ** nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
const char * name,
int nvars_estimate )

construct a new empty NLP

Parameters
nlpNLP handler, call by reference
blkmemblock memory
setglobal SCIP settings
statproblem statistics
nameproblem name
nvars_estimatean estimate on the number of variables that may be added to the NLP later

Definition at line 3540 of file nlp.c.

References assert(), BMSallocMemory, BMSduplicateBlockMemoryArray, EVENTHDLR_NAME, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_INVALID, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPerrorMessage, SCIPeventfilterAdd(), SCIPhashmapCreate(), SCIPnlpiCreateProblem(), SCIPsetFindEventhdlr(), SCIPsetFindNlpi(), SCIPsetSortNlpis(), and TRUE.

Referenced by initSolve().

◆ SCIPnlpFree()

SCIP_RETCODE SCIPnlpFree ( SCIP_NLP ** nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_EVENTQUEUE * eventqueue,
SCIP_LP * lp )

frees NLP data object

Parameters
nlppointer to NLP data object
blkmemblock memory
setglobal SCIP settings
statproblem statistics
eventqueueevent queue
lpSCIP LP, needed for releasing variables

Definition at line 3664 of file nlp.c.

References assert(), BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeMemory, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_OKAY, SCIPeventfilterDel(), SCIPhashmapFree(), SCIPnlpiFreeProblem(), and SCIPnlpReset().

Referenced by freeReoptSolve(), and freeSolve().

◆ SCIPnlpReset()

SCIP_RETCODE SCIPnlpReset ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_EVENTQUEUE * eventqueue,
SCIP_LP * lp )

resets the NLP to the empty NLP by removing all variables and rows from NLP, releasing all rows, and flushing the changes to the NLP solver

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
eventqueueevent queue
lpSCIP LP, needed for releasing variables

Definition at line 3724 of file nlp.c.

References assert(), BMSfreeBlockMemoryArrayNull, FALSE, SCIP_Nlp::haveinitguess, i, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, nlpDelNlRowPos(), nlpDelVarPos(), SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIPnlpEndDive(), SCIPnlpFlush(), SCIP_Nlp::sizevars, SCIP_Nlp::solstat, and SCIP_Nlp::termstat.

Referenced by SCIPnlpFree().

◆ SCIPnlpHasCurrentNodeNLP()

SCIP_Bool SCIPnlpHasCurrentNodeNLP ( SCIP_NLP * nlp)

currently a dummy function that always returns TRUE

Parameters
nlpNLP data

Definition at line 3766 of file nlp.c.

References assert(), NULL, SCIP_Bool, and TRUE.

Referenced by SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), and SCIPrecalcNlRowActivity().

◆ SCIPnlpEnsureVarsSize()

SCIP_RETCODE SCIPnlpEnsureVarsSize ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
int num )

ensures, that variables array of NLP can store at least num entries

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
numminimum number of entries to store

Definition at line 3775 of file nlp.c.

References assert(), BMSreallocBlockMemoryArray, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Nlp::sizevars, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::vars, and SCIP_Nlp::varubdualvals.

Referenced by nlpAddVars().

◆ SCIPnlpAddVar()

SCIP_RETCODE SCIPnlpAddVar ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_VAR * var )

adds a variable to the NLP and captures the variable

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
varvariable

Definition at line 3809 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpAddVars(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPvarIsTransformed(), var, and SCIP_Nlp::varhash.

Referenced by SCIP_DECL_EVENTEXEC().

◆ SCIPnlpAddVars()

SCIP_RETCODE SCIPnlpAddVars ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
int nvars,
SCIP_VAR ** vars )

adds a set of variables to the NLP and captures the variables

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
nvarsnumber of variables to add
varsvariables to add

Definition at line 3835 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpAddVars(), NULL, nvars, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, and vars.

Referenced by initSolve().

◆ SCIPnlpDelVar()

SCIP_RETCODE SCIPnlpDelVar ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_EVENTQUEUE * eventqueue,
SCIP_LP * lp,
SCIP_VAR * var )

deletes a variable from the NLP and releases the variable

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
eventqueueevent queue
lpSCIP LP, needed to release variable
varvariable

Definition at line 3860 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpDelVarPos(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetName(), var, and SCIP_Nlp::varhash.

Referenced by nlpRemoveFixedVar(), and SCIP_DECL_EVENTEXEC().

◆ SCIPnlpEnsureNlRowsSize()

SCIP_RETCODE SCIPnlpEnsureNlRowsSize ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
int num )

ensures, that nonlinear rows array of NLP can store at least num entries

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
numminimum number of entries to store

Definition at line 3897 of file nlp.c.

References assert(), BMSreallocBlockMemoryArray, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows.

Referenced by nlpAddNlRows().

◆ SCIPnlpAddNlRow()

SCIP_RETCODE SCIPnlpAddNlRow ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLROW * nlrow )

adds a nonlinear row to the NLP and captures it

all variables of the row need to be present in the NLP

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlrownonlinear row

Definition at line 3927 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.

Referenced by SCIPaddNlRow().

◆ SCIPnlpAddNlRows()

SCIP_RETCODE SCIPnlpAddNlRows ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
int nnlrows,
SCIP_NLROW ** nlrows )

adds nonlinear rows to the NLP and captures them

all variables of the row need to be present in the NLP

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nnlrowsnumber of rows to add
nlrowsrows to add

Definition at line 3953 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.

◆ SCIPnlpDelNlRow()

SCIP_RETCODE SCIPnlpDelNlRow ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NLROW * nlrow )

deletes a nonlinear row from the NLP

does nothing if nonlinear row is not in NLP

Parameters
nlpNLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
nlrownonlinear row

Definition at line 3983 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpDelNlRowPos(), SCIP_NlRow::nlpindex, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.

Referenced by SCIPdelNlRow().

◆ SCIPnlpFlush()

◆ SCIPnlpSolve()

SCIP_RETCODE SCIPnlpSolve ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
SCIP_STAT * stat,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_NLPPARAM * nlpparam )

solves the NLP or diving NLP

Parameters
nlpNLP data
blkmemblock memory buffers
setglobal SCIP settings
messagehdlrmessage handler
statproblem statistics
primalprimal data
treebranch and bound tree
nlpparamNLP solve parameters

Definition at line 4053 of file nlp.c.

References assert(), SCIP_Nlp::indiving, nlpSolve(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPnlpFlush().

Referenced by SCIPsolveNLPParam().

◆ SCIPnlpGetObjval()

SCIP_Real SCIPnlpGetObjval ( SCIP_NLP * nlp)

gets objective value of current NLP

Parameters
nlpcurrent NLP data

Definition at line 4080 of file nlp.c.

References assert(), NULL, SCIP_Nlp::primalsolobjval, and SCIP_Real.

Referenced by SCIPgetNLPObjval(), and SCIPsolLinkNLPSol().

◆ SCIPnlpGetPseudoObjval()

SCIP_RETCODE SCIPnlpGetPseudoObjval ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_PROB * prob,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_LP * lp,
SCIP_Real * pseudoobjval )

gives current pseudo objective value

Parameters
nlpcurrent NLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
probSCIP problem
primalprimal data
treebranch and bound tree
lpSCIP LP
pseudoobjvalbuffer to store pseudo objective value

Definition at line 4090 of file nlp.c.

References assert(), SCIP_Nlp::divingobj, i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlrowGetPseudoActivity(), SCIPvarGetBestBoundLocal(), SCIPvarGetObj(), and SCIP_Nlp::vars.

◆ SCIPnlpGetFracVars()

SCIP_RETCODE SCIPnlpGetFracVars ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_VAR *** fracvars,
SCIP_Real ** fracvarssol,
SCIP_Real ** fracvarsfrac,
int * nfracvars,
int * npriofracvars )

gets fractional variables of last NLP solution along with solution values and fractionalities

Parameters
nlpNLP data structure
blkmemblock memory
setglobal SCIP settings
statproblem statistics
fracvarspointer to store the array of NLP fractional variables, or NULL
fracvarssolpointer to store the array of NLP fractional variables solution values, or NULL
fracvarsfracpointer to store the array of NLP fractional variables fractionalities, or NULL
nfracvarspointer to store the number of NLP fractional variables , or NULL
npriofracvarspointer to store the number of NLP fractional variables with maximal branching priority, or NULL

Definition at line 4124 of file nlp.c.

References assert(), SCIP_Nlp::fracvars, SCIP_Nlp::fracvarsfrac, SCIP_Nlp::fracvarssol, SCIP_Nlp::nfracvars, nlpCalcFracVars(), SCIP_Nlp::npriofracvars, NULL, SCIP_CALL, SCIP_OKAY, and SCIP_Real.

Referenced by SCIPgetNLPFracVars().

◆ SCIPnlpRemoveRedundantNlRows()

SCIP_RETCODE SCIPnlpRemoveRedundantNlRows ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat )

removes all redundant nonlinear rows

Parameters
nlpcurrent NLP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics

Definition at line 4158 of file nlp.c.

References assert(), i, SCIP_Nlp::indiving, nlpDelNlRowPos(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPnlrowIsRedundant(), and SCIP_Nlp::solstat.

◆ SCIPnlpSetInitialGuess()

SCIP_RETCODE SCIPnlpSetInitialGuess ( SCIP_SET * set,
SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_Real * initguess )

set initial guess (approximate primal solution) for next solve

array initguess must be NULL or have length at least SCIPnlpGetNVars()

Parameters
setglobal SCIP settings
nlpcurrent NLP data
blkmemblock memory buffers
initguessnew initial guess, or NULL to clear previous one

Definition at line 4204 of file nlp.c.

References assert(), BMSallocBlockMemoryArray, BMScopyMemoryArray, FALSE, SCIP_Nlp::haveinitguess, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_Nlp::problem, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiSetInitialGuess(), SCIP_Nlp::sizevars, SCIP_Nlp::solver, and TRUE.

Referenced by SCIPsetNLPInitialGuess(), and SCIPsetNLPInitialGuessSol().

◆ SCIPnlpWrite()

SCIP_RETCODE SCIPnlpWrite ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_MESSAGEHDLR * messagehdlr,
const char * fname )

writes NLP to a file

Parameters
nlpcurrent NLP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
messagehdlrmessage handler
fnamefile name

Definition at line 4240 of file nlp.c.

References assert(), i, SCIP_Nlp::name, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_FILECREATEERROR, SCIP_OKAY, SCIPerrorMessage, SCIPmessageFPrintInfo(), SCIPnlrowPrint(), SCIPvarPrint(), and SCIP_Nlp::vars.

Referenced by SCIPwriteNLP().

◆ SCIPnlpGetVars()

SCIP_VAR ** SCIPnlpGetVars ( SCIP_NLP * nlp)

gets array with variables of the NLP

Parameters
nlpcurrent NLP data

Definition at line 4295 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::vars.

Referenced by SCIPgetNLPVars(), SCIPgetNLPVarsData(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().

◆ SCIPnlpGetNVars()

int SCIPnlpGetNVars ( SCIP_NLP * nlp)

gets current number of variables in NLP

Parameters
nlpcurrent NLP data

Definition at line 4305 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::nvars.

Referenced by SCIPgetNLPVarsData(), SCIPgetNNLPVars(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().

◆ SCIPnlpGetVarsNonlinearity()

SCIP_RETCODE SCIPnlpGetVarsNonlinearity ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
int * nlcount )

computes for each variables the number of NLP rows in which the variable appears in a nonlinear var

Parameters
nlpcurrent NLP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
nlcountan array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables

Definition at line 4315 of file nlp.c.

References assert(), BMSclearMemoryArray, c, SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, nvars, SCIP_Nlp::nvars, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIP_Nlp::varhash, and varidx.

Referenced by SCIPgetNLPVarsNonlinearity().

◆ SCIPnlpHasContinuousNonlinearity()

SCIP_RETCODE SCIPnlpHasContinuousNonlinearity ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_Bool * result )

indicates whether there exists a row that contains a continuous variable in a nonlinear term

Note
The method may have to touch every row and nonlinear term to compute its result.
Parameters
nlpcurrent NLP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics
resultbuffer to store whether continuous variable present in an expression of any row

Definition at line 4369 of file nlp.c.

References assert(), c, SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPexpriterRestartDFS(), SCIPgetVarExprVar(), SCIPvarGetType(), and TRUE.

Referenced by SCIPhasNLPContinuousNonlinearity().

◆ SCIPnlpGetVarsLbDualsol()

SCIP_Real * SCIPnlpGetVarsLbDualsol ( SCIP_NLP * nlp)

gives dual solution values associated with lower bounds of NLP variables

Parameters
nlpcurrent NLP data

Definition at line 4412 of file nlp.c.

References assert(), NULL, SCIP_Real, and SCIP_Nlp::varlbdualvals.

Referenced by SCIPgetNLPVarsLbDualsol().

◆ SCIPnlpGetVarsUbDualsol()

SCIP_Real * SCIPnlpGetVarsUbDualsol ( SCIP_NLP * nlp)

gives dual solution values associated with upper bounds of NLP variables

Parameters
nlpcurrent NLP data

Definition at line 4422 of file nlp.c.

References assert(), NULL, SCIP_Real, and SCIP_Nlp::varubdualvals.

Referenced by SCIPgetNLPVarsUbDualsol().

◆ SCIPnlpGetNlRows()

SCIP_NLROW ** SCIPnlpGetNlRows ( SCIP_NLP * nlp)

gets array with nonlinear rows of the NLP

Parameters
nlpcurrent NLP data

Definition at line 4432 of file nlp.c.

References assert(), SCIP_Nlp::nlrows, and NULL.

Referenced by SCIPgetNLPNlRows(), and SCIPgetNLPNlRowsData().

◆ SCIPnlpGetNNlRows()

int SCIPnlpGetNNlRows ( SCIP_NLP * nlp)

gets current number of nonlinear rows in NLP

Parameters
nlpcurrent NLP data

Definition at line 4442 of file nlp.c.

References assert(), SCIP_Nlp::nnlrows, and NULL.

Referenced by SCIPgetNLPNlRowsData(), and SCIPgetNNLPNlRows().

◆ SCIPnlpGetNlRowsStat()

void SCIPnlpGetNlRowsStat ( SCIP_NLP * nlp,
int * nlinear,
int * nconvexineq,
int * nnonconvexineq,
int * nnonlineareq )

gets statistics on convexity of nonlinear rows in NLP

Parameters
nlpcurrent NLP data
nlinearbuffer to store number of linear rows in NLP, or NULL
nconvexineqbuffer to store number of convex inequalities in NLP, or NULL
nnonconvexineqbuffer to store number of nonconvex inequalities in NLP, or NULL
nnonlineareqbuffer to store number of nonlinear equalities or ranged rows in NLP, or NULL

Definition at line 4452 of file nlp.c.

References assert(), SCIP_Nlp::nnlrowconvexineq, SCIP_Nlp::nnlrowlinear, SCIP_Nlp::nnlrownonconvexineq, SCIP_Nlp::nnlrownonlineareq, and NULL.

Referenced by SCIPgetNLPNlRowsStat().

◆ SCIPnlpGetNLPI()

SCIP_NLPI * SCIPnlpGetNLPI ( SCIP_NLP * nlp)

gets the NLP solver interface

Parameters
nlpcurrent NLP data

Definition at line 4476 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::solver.

Referenced by SCIPgetNLPI().

◆ SCIPnlpGetNLPIProblem()

SCIP_NLPIPROBLEM * SCIPnlpGetNLPIProblem ( SCIP_NLP * nlp)

gets the NLP problem in the solver interface

Parameters
nlpcurrent NLP data

Definition at line 4486 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::problem.

Referenced by SCIPgetNLPI().

◆ SCIPnlpIsDiving()

SCIP_Bool SCIPnlpIsDiving ( SCIP_NLP * nlp)

indicates whether NLP is currently in diving mode

Parameters
nlpcurrent NLP data

Definition at line 4496 of file nlp.c.

References assert(), SCIP_Nlp::indiving, NULL, and SCIP_Bool.

◆ SCIPnlpGetSolstat()

SCIP_NLPSOLSTAT SCIPnlpGetSolstat ( SCIP_NLP * nlp)

gets solution status of current NLP

Parameters
nlpcurrent NLP data

Definition at line 4506 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::solstat.

Referenced by SCIP_DECL_SEPAEXECLP(), SCIPgetNLPSolstat(), and SCIPlinkNLPSol().

◆ SCIPnlpGetTermstat()

SCIP_NLPTERMSTAT SCIPnlpGetTermstat ( SCIP_NLP * nlp)

gets termination status of last NLP solve

Parameters
nlpcurrent NLP data

Definition at line 4516 of file nlp.c.

References assert(), NULL, and SCIP_Nlp::termstat.

Referenced by SCIPgetNLPTermstat().

◆ SCIPnlpGetStatistics()

SCIP_RETCODE SCIPnlpGetStatistics ( SCIP_SET * set,
SCIP_NLP * nlp,
SCIP_NLPSTATISTICS * statistics )

gives statistics (number of iterations, solving time, ...) of last NLP solve

Parameters
setglobal SCIP settings
nlppointer to NLP datastructure
statisticspointer to store statistics

Definition at line 4526 of file nlp.c.

References assert(), NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetStatistics(), and SCIP_Nlp::solver.

Referenced by SCIPgetNLPStatistics().

◆ SCIPnlpHasSolution()

SCIP_Bool SCIPnlpHasSolution ( SCIP_NLP * nlp)

indicates whether a solution for the current NLP is available

The solution may be optimal, feasible, or infeasible. Thus, returns whether the NLP solution status is at most SCIP_NLPSOLSTAT_LOCINFEASIBLE.

Parameters
nlpcurrent NLP data

Definition at line 4547 of file nlp.c.

References assert(), NULL, SCIP_Bool, SCIP_NLPSOLSTAT_LOCINFEASIBLE, and SCIP_Nlp::solstat.

Referenced by nlpCalcFracVars(), SCIPcreateNLPSol(), SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), SCIPhasNLPSolution(), SCIPrecalcNlRowActivity(), and SCIPsolLinkNLPSol().

◆ SCIPnlpStartDive()

SCIP_RETCODE SCIPnlpStartDive ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat )

signals start of diving

Parameters
nlpcurrent NLP data
blkmemblock memory buffers
setglobal SCIP settings
statproblem statistics

Definition at line 4561 of file nlp.c.

References assert(), SCIP_Nlp::indiving, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPnlpFlush(), SCIP_Nlp::solver, and TRUE.

Referenced by SCIPstartDiveNLP().

◆ SCIPnlpEndDive()

◆ SCIPnlpChgVarObjDive()

SCIP_RETCODE SCIPnlpChgVarObjDive ( SCIP_NLP * nlp,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_VAR * var,
SCIP_Real coef )

changes coefficient of variable in diving NLP

Parameters
nlpcurrent NLP data
blkmemblock memory
setglobal SCIP settings
statproblem statistics data
varvariable which coefficient to change
coefnew linear coefficient of variable in objective

Definition at line 4654 of file nlp.c.

References assert(), SCIP_Nlp::divingobj, FALSE, i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIPnlrowChgLinearCoef(), SCIPnlrowCreate(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPvarGetObj(), SCIP_Nlp::solver, var, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, and SCIP_Nlp::vars.

Referenced by SCIPchgVarObjDiveNLP().

◆ SCIPnlpChgVarBoundsDive()

SCIP_RETCODE SCIPnlpChgVarBoundsDive ( SCIP_SET * set,
SCIP_NLP * nlp,
SCIP_VAR * var,
SCIP_Real lb,
SCIP_Real ub )

changes bounds of variable in diving NLP

Parameters
setglobal SCIP settings
nlpcurrent NLP data
varvariable which coefficient to change
lbnew lower bound of variable
ubnew upper bound of variable

Definition at line 4711 of file nlp.c.

References assert(), SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIP_Nlp::solver, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

Referenced by SCIPchgVarBoundsDiveNLP().

◆ SCIPnlpChgVarsBoundsDive()

SCIP_RETCODE SCIPnlpChgVarsBoundsDive ( SCIP_NLP * nlp,
SCIP_SET * set,
int nvars,
SCIP_VAR ** vars,
SCIP_Real * lbs,
SCIP_Real * ubs )

changes bounds of a set of variables in diving NLP

Parameters
nlpcurrent NLP data
setglobal SCIP settings
nvarsnumber of variables which bounds to change
varsvariables which bounds to change
lbsnew lower bounds of variables
ubsnew upper bounds of variables

Definition at line 4740 of file nlp.c.

References assert(), i, SCIP_Nlp::indiving, NULL, nvars, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Nlp::solver, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, and vars.

Referenced by SCIPchgVarsBoundsDiveNLP().

◆ SCIPnlpIsDivingObjChanged()

SCIP_Bool SCIPnlpIsDivingObjChanged ( SCIP_NLP * nlp)

returns whether the objective function has been changed during diving

Parameters
nlpcurrent NLP data

Definition at line 4784 of file nlp.c.

References SCIP_Nlp::divingobj, NULL, and SCIP_Bool.

Referenced by SCIPsolLinkNLPSol().