Scippy

    SCIP

    Solving Constraint Integer Programs

    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_mem.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

    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 71 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 72 of file nlp.c.

    ◆ ADDNAMESTONLPI

    #define ADDNAMESTONLPI   0

    whether to give variable and row names to NLPI

    Definition at line 73 of file nlp.c.

    Function Documentation

    ◆ 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 1986 of file nlp.c.

    References 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 106 of file nlp.c.

    References SCIP_NlRow::activity, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_Nlp::problem, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIP_Nlp::solver, SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, SCIP_NlRow::validpsactivitydomchg, 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 159 of file nlp.c.

    References NULL, 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

    announces, that an expression changed

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

    Definition at line 192 of file nlp.c.

    References SCIP_NlRow::activity, SCIP_NlRow::expr, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPexprCopy(), SCIPexprRelease(), SCIPnlpiChgExpr(), SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, and SCIP_NlRow::validpsactivitydomchg.

    Referenced by nlrowSimplifyExpr(), and SCIPnlrowChgExpr().

    ◆ 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 233 of file nlp.c.

    References 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()

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

    ◆ 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 320 of file nlp.c.

    References 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 360 of file nlp.c.

    References 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 378 of file nlp.c.

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

    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 400 of file nlp.c.

    References 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 423 of file nlp.c.

    References 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, SCIPnlrowEnsureLinearSize(), SCIPsetDebugMsg, SCIPvarCompare(), SCIPvarGetName(), and SCIPvarIsActive().

    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 552 of file nlp.c.

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

    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 581 of file nlp.c.

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

    Referenced by SCIPnlrowChgLinearCoef().

    ◆ nlrowCalcActivityBounds()

    static SCIP_RETCODE nlrowCalcActivityBounds ( SCIP_NLROW nlrow,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat 
    )
    static

    ◆ 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 658 of file nlp.c.

    References SCIP_NlRow::constant, FALSE, 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(), and SCIPvarIsActive().

    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 760 of file nlp.c.

    References 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 786 of file nlp.c.

    References 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 838 of file nlp.c.

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

    Referenced by nlpRemoveFixedVar().

    ◆ nlpAddNlRows()

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

    ◆ 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 2111 of file nlp.c.

    References 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

    deletes nonlinear row with given position from NLP

    Parameters
    nlpNLP data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    posposition of nonlinear row that is to be removed

    Definition at line 2139 of file nlp.c.

    References SCIP_Nlp::indiving, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpMoveNlrow(), nlrowAddToStat(), SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowadd, SCIP_Nlp::nunflushednlrowdel, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_GLOBINFEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_LOCOPT, SCIP_OKAY, SCIPnlrowRelease(), and SCIP_Nlp::solstat.

    Referenced by SCIPnlpDelNlRow(), SCIPnlpRemoveRedundantNlRows(), and SCIPnlpReset().

    ◆ nlpUpdateVarBounds()

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

    updates bounds on a variable in the NLPI problem

    Parameters
    nlpNLP data
    setglobal SCIP settings
    varvariable which bounds have changed
    tightenedwhether the bound change was a bound tightening

    Definition at line 2197 of file nlp.c.

    References SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNBOUNDED, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPvarGetLbLocal(), SCIPvarGetNLPSol(), SCIPvarGetUbLocal(), SCIP_Nlp::solstat, SCIP_Nlp::solver, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.

    Referenced by SCIP_DECL_EVENTEXEC().

    ◆ 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 2256 of file nlp.c.

    References 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, 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 2397 of file nlp.c.

    References SCIP_Nlp::initialguess, NULL, 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 2524 of file nlp.c.

    References SCIP_Nlp::indiving, nlrowRemoveFixedVar(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPnlpDelVar(), SCIPvarIsActive(), 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 2556 of file nlp.c.

    References SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPsetAllocBufferArray, SCIPvarIsActive(), 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 2598 of file nlp.c.

    References 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 2626 of file nlp.c.

    References 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 2654 of file nlp.c.

    References 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 2748 of file nlp.c.

    References SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::nunflushedvardel, 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()

    static SCIP_RETCODE nlpFlushNlRowAdditions ( SCIP_NLP nlp,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat 
    )
    static

    ◆ 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 2992 of file nlp.c.

    References FALSE, 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 3081 of file nlp.c.

    References 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 3511 of file nlp.c.

    References 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 3537 of file nlp.c.

    References 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 3661 of file nlp.c.

    References 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 3721 of file nlp.c.

    References BMSfreeBlockMemoryArrayNull, FALSE, SCIP_Nlp::haveinitguess, 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 3763 of file nlp.c.

    References NULL, 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 3772 of file nlp.c.

    References 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 3806 of file nlp.c.

    References SCIP_Nlp::indiving, nlpAddVars(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPvarIsTransformed(), 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 3832 of file nlp.c.

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

    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 3857 of file nlp.c.

    References SCIP_Nlp::indiving, nlpDelVarPos(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetName(), 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 3894 of file nlp.c.

    References 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 3924 of file nlp.c.

    References 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 3950 of file nlp.c.

    References 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 3980 of file nlp.c.

    References 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 4050 of file nlp.c.

    References 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 4077 of file nlp.c.

    References NULL, and SCIP_Nlp::primalsolobjval.

    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 4087 of file nlp.c.

    References SCIP_Nlp::divingobj, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_OKAY, 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 4121 of file nlp.c.

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

    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 4155 of file nlp.c.

    References 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 4201 of file nlp.c.

    References BMSallocBlockMemoryArray, BMScopyMemoryArray, FALSE, SCIP_Nlp::haveinitguess, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_Nlp::problem, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, 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 4237 of file nlp.c.

    References 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 4292 of file nlp.c.

    References 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 4302 of file nlp.c.

    References 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 4312 of file nlp.c.

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

    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 4366 of file nlp.c.

    References SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPexpriterRestartDFS(), SCIPgetVarExprVar(), SCIPvarIsIntegral(), 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 4409 of file nlp.c.

    References NULL, 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 4419 of file nlp.c.

    References NULL, 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 4429 of file nlp.c.

    References 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 4439 of file nlp.c.

    References 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 4449 of file nlp.c.

    References 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 4473 of file nlp.c.

    References 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 4483 of file nlp.c.

    References 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 4493 of file nlp.c.

    References SCIP_Nlp::indiving, and NULL.

    ◆ SCIPnlpGetSolstat()

    SCIP_NLPSOLSTAT SCIPnlpGetSolstat ( SCIP_NLP nlp)

    gets solution status of current NLP

    Parameters
    nlpcurrent NLP data

    Definition at line 4503 of file nlp.c.

    References 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 4513 of file nlp.c.

    References 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 4523 of file nlp.c.

    References 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 4544 of file nlp.c.

    References NULL, 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 4558 of file nlp.c.

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

    Referenced by SCIPstartDiveNLP().

    ◆ SCIPnlpEndDive()

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

    ◆ 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 4651 of file nlp.c.

    References SCIP_Nlp::divingobj, FALSE, 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, 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 4708 of file nlp.c.

    References SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIP_Nlp::solver, 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 4737 of file nlp.c.

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

    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 4781 of file nlp.c.

    References SCIP_Nlp::divingobj, and NULL.

    Referenced by SCIPsolLinkNLPSol().