Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for the nonlinear relaxation

    Modules

     Nonlinear Rows
     methods for the creation and interaction with rows of the NLP relaxation
     
     NLP Diving
     methods to initiate and conduct NLP Diving
     

    Macros

    #define SCIPsolveNLP(...)
     

    Functions

    SCIP_Bool SCIPisNLPEnabled (SCIP *scip)
     
    void SCIPenableNLP (SCIP *scip)
     
    SCIP_Bool SCIPisNLPConstructed (SCIP *scip)
     
    SCIP_RETCODE SCIPhasNLPContinuousNonlinearity (SCIP *scip, SCIP_Bool *result)
     
    SCIP_RETCODE SCIPgetNLPVarsData (SCIP *scip, SCIP_VAR ***vars, int *nvars)
     
    SCIP_VAR ** SCIPgetNLPVars (SCIP *scip)
     
    int SCIPgetNNLPVars (SCIP *scip)
     
    SCIP_RETCODE SCIPgetNLPVarsNonlinearity (SCIP *scip, int *nlcount)
     
    SCIP_RealSCIPgetNLPVarsLbDualsol (SCIP *scip)
     
    SCIP_RealSCIPgetNLPVarsUbDualsol (SCIP *scip)
     
    SCIP_RETCODE SCIPgetNLPNlRowsData (SCIP *scip, SCIP_NLROW ***nlrows, int *nnlrows)
     
    SCIP_NLROW ** SCIPgetNLPNlRows (SCIP *scip)
     
    int SCIPgetNNLPNlRows (SCIP *scip)
     
    SCIP_RETCODE SCIPgetNLPNlRowsStat (SCIP *scip, int *nlinear, int *nconvexineq, int *nnonconvexineq, int *nnonlineareq)
     
    SCIP_RETCODE SCIPaddNlRow (SCIP *scip, SCIP_NLROW *nlrow)
     
    SCIP_RETCODE SCIPdelNlRow (SCIP *scip, SCIP_NLROW *nlrow)
     
    SCIP_RETCODE SCIPflushNLP (SCIP *scip)
     
    SCIP_RETCODE SCIPsetNLPInitialGuess (SCIP *scip, SCIP_Real *initialguess)
     
    SCIP_RETCODE SCIPsetNLPInitialGuessSol (SCIP *scip, SCIP_SOL *sol)
     
    SCIP_RETCODE SCIPsolveNLPParam (SCIP *scip, SCIP_NLPPARAM param)
     
    SCIP_NLPSOLSTAT SCIPgetNLPSolstat (SCIP *scip)
     
    SCIP_NLPTERMSTAT SCIPgetNLPTermstat (SCIP *scip)
     
    SCIP_RETCODE SCIPgetNLPStatistics (SCIP *scip, SCIP_NLPSTATISTICS *statistics)
     
    SCIP_Real SCIPgetNLPObjval (SCIP *scip)
     
    SCIP_Bool SCIPhasNLPSolution (SCIP *scip)
     
    SCIP_RETCODE SCIPgetNLPFracVars (SCIP *scip, SCIP_VAR ***fracvars, SCIP_Real **fracvarssol, SCIP_Real **fracvarsfrac, int *nfracvars, int *npriofracvars)
     
    SCIP_RETCODE SCIPwriteNLP (SCIP *scip, const char *filename)
     
    SCIP_RETCODE SCIPgetNLPI (SCIP *scip, SCIP_NLPI **nlpi, SCIP_NLPIPROBLEM **nlpiproblem)
     

    Macro Definition Documentation

    ◆ SCIPsolveNLP

    #define SCIPsolveNLP (   ...)
    Value:
    SCIPsolveNLPParam(SCIP_VARARGS_FIRST((__VA_ARGS__, ignored)), \
    (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT_INITS(SCIP_VARARGS_FIRST((__VA_ARGS__, ignored))), SCIP_VARARGS_REST(__VA_ARGS__, .caller = __FILE__) })
    #define SCIP_VARARGS_FIRST(args)
    Definition: def.h:81
    #define SCIP_VARARGS_REST(firstarg,...)
    Definition: def.h:84
    SCIP_RETCODE SCIPsolveNLPParam(SCIP *scip, SCIP_NLPPARAM param)
    Definition: scip_nlp.c:545
    #define SCIP_NLPPARAM_DEFAULT_INITS(scip)
    Definition: type_nlpi.h:102

    solves the current NLP (or diving NLP if in diving mode) with non-default parameters given as optional arguments

    Typical use is

    SCIP_CALL( SCIPsolveNLP(scip) );
    

    to solve with default parameters. Additionally, one or several values of SCIP_NLPPARAM can be set:

    SCIP_CALL( SCIPsolveNLP(scip, .iterlimit = 42, .verblevel = 1) );    //lint !e666
    
    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:

    Definition at line 361 of file scip_nlp.h.

    Function Documentation

    ◆ SCIPisNLPEnabled()

    SCIP_Bool SCIPisNLPEnabled ( SCIP scip)

    returns whether the NLP relaxation has been enabled

    If the NLP relaxation is enabled, then SCIP will construct the NLP relaxation when the solving process is about to begin. To check whether an NLP is existing, use SCIPisNLPConstructed().

    Precondition
    This method can be called if SCIP is in one of the following stages:
    See also
    SCIPenableNLP
    Parameters
    scipSCIP data structure

    Definition at line 74 of file scip_nlp.c.

    References FALSE, SCIP_CALL_ABORT, SCIPcheckStage, and TRUE.

    Referenced by SCIP_DECL_PRESOLEXEC(), and setupAndSolve().

    ◆ SCIPenableNLP()

    void SCIPenableNLP ( SCIP scip)

    notifies SCIP that the NLP relaxation should be initialized in INITSOLVE

    This method is typically called by a constraint handler that handles constraints that have a nonlinear representation as nonlinear rows, e.g., cons_nonlinear.

    The function should be called before the branch-and-bound process is initialized, e.g., when presolve is exiting.

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 95 of file scip_nlp.c.

    References FALSE, SCIP_CALL_ABORT, SCIPcheckStage, and TRUE.

    Referenced by SCIP_DECL_CONSEXITPRE().

    ◆ SCIPisNLPConstructed()

    ◆ SCIPhasNLPContinuousNonlinearity()

    SCIP_RETCODE SCIPhasNLPContinuousNonlinearity ( SCIP scip,
    SCIP_Bool result 
    )

    checks whether the NLP has a continuous variable in a nonlinear term

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    resultbuffer to store result

    Definition at line 125 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpHasContinuousNonlinearity(), and TRUE.

    Referenced by SCIP_DECL_HEUREXEC(), and SCIPupdateStartpointHeurSubNlp().

    ◆ SCIPgetNLPVarsData()

    SCIP_RETCODE SCIPgetNLPVarsData ( SCIP scip,
    SCIP_VAR ***  vars,
    int *  nvars 
    )

    gets current NLP variables along with the current number of NLP variables

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    varspointer to store the array of NLP variables, or NULL
    nvarspointer to store the number of NLP variables, or NULL

    Definition at line 149 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNVars(), SCIPnlpGetVars(), and TRUE.

    ◆ SCIPgetNLPVars()

    SCIP_VAR ** SCIPgetNLPVars ( SCIP scip)

    gets array with variables of the NLP

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 179 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetVars(), and TRUE.

    Referenced by computeStandardNLPOptimalityCut(), SCIPapplyHeurDualval(), separateCuts(), and solveSubNLP().

    ◆ SCIPgetNNLPVars()

    int SCIPgetNNLPVars ( SCIP scip)

    gets current number of variables in NLP

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 201 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNVars(), and TRUE.

    Referenced by computeStandardNLPOptimalityCut(), countNonlinearities(), initBounds(), SCIPapplyHeurDualval(), separateCuts(), and solveSubNLP().

    ◆ SCIPgetNLPVarsNonlinearity()

    SCIP_RETCODE SCIPgetNLPVarsNonlinearity ( SCIP scip,
    int *  nlcount 
    )

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

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    nlcountan array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables

    Definition at line 223 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetVarsNonlinearity(), and TRUE.

    Referenced by countNonlinearities(), and initBounds().

    ◆ SCIPgetNLPVarsLbDualsol()

    SCIP_Real * SCIPgetNLPVarsLbDualsol ( SCIP scip)

    returns dual solution values associated with lower bounds of NLP variables

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 247 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetVarsLbDualsol(), and TRUE.

    ◆ SCIPgetNLPVarsUbDualsol()

    SCIP_Real * SCIPgetNLPVarsUbDualsol ( SCIP scip)

    returns dual solution values associated with upper bounds of NLP variables

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 269 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetVarsUbDualsol(), and TRUE.

    ◆ SCIPgetNLPNlRowsData()

    SCIP_RETCODE SCIPgetNLPNlRowsData ( SCIP scip,
    SCIP_NLROW ***  nlrows,
    int *  nnlrows 
    )

    gets current NLP nonlinear rows along with the current number of NLP nonlinear rows

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    nlrowspointer to store the array of NLP nonlinear rows, or NULL
    nnlrowspointer to store the number of NLP nonlinear rows, or NULL

    Definition at line 291 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNlRows(), SCIPnlpGetNNlRows(), and TRUE.

    ◆ SCIPgetNLPNlRows()

    SCIP_NLROW ** SCIPgetNLPNlRows ( SCIP scip)

    gets array with nonlinear rows of the NLP

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 319 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNlRows(), and TRUE.

    Referenced by applyHeur(), applyNlobbt(), computeInteriorPoint(), computeStandardNLPFeasibilityCut(), computeStandardNLPOptimalityCut(), createAuxiliaryNonlinearSubproblem(), createNLP(), heurExec(), isNlobbtApplicable(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), and SCIP_DECL_SEPAEXECLP().

    ◆ SCIPgetNNLPNlRows()

    int SCIPgetNNLPNlRows ( SCIP scip)

    ◆ SCIPgetNLPNlRowsStat()

    SCIP_RETCODE SCIPgetNLPNlRowsStat ( SCIP scip,
    int *  nlinear,
    int *  nconvexineq,
    int *  nnonconvexineq,
    int *  nnonlineareq 
    )

    gets statistics on convexity of rows in NLP

    Reports counts on the current number of linear rows, convex inequalities, nonconvex inequalities, and nonlinear equalities or ranged rows.

    • A nonlinear inequality with infinity left-hand-side is accounted as convex if its expression has been marked as convex.
    • A nonlinear inequality with infinity right-hand-side is accounted as convex if its expression has been marked as concave.
    • Other nonlinear rows are accounted as nonconvex. Note that convexity for a nonlinear row may just not have been detected.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    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 369 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNlRowsStat(), and TRUE.

    Referenced by SCIPcollectNLPStatistics(), and SCIPprintNLPStatistics().

    ◆ SCIPaddNlRow()

    SCIP_RETCODE SCIPaddNlRow ( SCIP scip,
    SCIP_NLROW nlrow 
    )

    adds a nonlinear row to the NLP. This row is captured by the NLP.

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    nlrownonlinear row to add to NLP

    Definition at line 396 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPnlpAddNlRow(), and TRUE.

    Referenced by addKnapsackConstraints(), addLinearConstraints(), addLogicOrConstraints(), addNlrow(), addSetppcConstraints(), addVarboundConstraints(), initSolve(), and SCIP_DECL_CONSINITSOL().

    ◆ SCIPdelNlRow()

    SCIP_RETCODE SCIPdelNlRow ( SCIP scip,
    SCIP_NLROW nlrow 
    )

    removes a nonlinear row from the NLP

    This row is released in the NLP.

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    nlrownonlinear row to add to NLP

    Definition at line 424 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPnlpDelNlRow(), and TRUE.

    Referenced by deinitSolve(), and SCIP_DECL_CONSDEACTIVE().

    ◆ SCIPflushNLP()

    SCIP_RETCODE SCIPflushNLP ( SCIP scip)

    makes sure that the NLP of the current node is flushed

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 448 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpFlush(), and TRUE.

    ◆ SCIPsetNLPInitialGuess()

    SCIP_RETCODE SCIPsetNLPInitialGuess ( SCIP scip,
    SCIP_Real initialguess 
    )

    sets or clears initial primal guess for NLP solution (start point for NLP solver)

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    initialguessvalues of initial guess (corresponding to variables from SCIPgetNLPVarsData), or NULL to use no start point

    Definition at line 474 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPnlpSetInitialGuess(), and TRUE.

    Referenced by SCIPapplyHeurDualval(), and solveSubNLP().

    ◆ SCIPsetNLPInitialGuessSol()

    SCIP_RETCODE SCIPsetNLPInitialGuessSol ( SCIP scip,
    SCIP_SOL sol 
    )

    sets initial primal guess for NLP solution (start point for NLP solver)

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    solsolution which values should be taken as initial guess, or NULL for LP solution

    Definition at line 501 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetSolVals(), SCIPnlpGetNVars(), SCIPnlpGetVars(), SCIPnlpSetInitialGuess(), and TRUE.

    Referenced by computeFixingrate(), getFixingValue(), and SCIP_DECL_HEUREXEC().

    ◆ SCIPsolveNLPParam()

    SCIP_RETCODE SCIPsolveNLPParam ( SCIP scip,
    SCIP_NLPPARAM  param 
    )

    solves the current NLP (or diving NLP if in diving mode) with given parameters

    Typical use is

    SCIP_NLPPARAM nlparam = { SCIP_NLPPARAM_DEFAULT(scip); }
    nlpparam.iterlimit = 42;
    SCIP_CALL( SCIPsolveNLPParam(scip, nlpparam) );
    

    or, in one line:

    SCIP_CALL( SCIPsolveNLPParam(scip, (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT(scip), .iterlimit = 42 }) );
    

    To get the latter, also SCIPsolveNLP can be used.

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    paramNLP solve parameters

    Definition at line 545 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPnlpSolve(), and TRUE.

    Referenced by resolveNLPWithTighterFeastol(), SCIPbendersComputeSubproblemLowerbound(), and SCIPbendersSolveSubproblemLP().

    ◆ SCIPgetNLPSolstat()

    ◆ SCIPgetNLPTermstat()

    SCIP_NLPTERMSTAT SCIPgetNLPTermstat ( SCIP scip)

    gets termination status of last NLP solve

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 596 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIP_NLPTERMSTAT_OTHER, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetTermstat(), and TRUE.

    Referenced by resolveNLPWithTighterFeastol(), SCIP_DECL_HEUREXEC(), SCIPbendersComputeSubproblemLowerbound(), SCIPbendersSolveSubproblemLP(), and solveSubNLP().

    ◆ SCIPgetNLPStatistics()

    SCIP_RETCODE SCIPgetNLPStatistics ( SCIP scip,
    SCIP_NLPSTATISTICS statistics 
    )

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

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    statisticspointer to store statistics

    Definition at line 621 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetStatistics(), and TRUE.

    Referenced by SCIP_DECL_HEUREXEC(), and solveSubNLP().

    ◆ SCIPgetNLPObjval()

    SCIP_Real SCIPgetNLPObjval ( SCIP scip)

    gets objective value of current NLP

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 645 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIP_INVALID, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetObjval(), and TRUE.

    Referenced by processNLPSol(), SCIP_DECL_HEUREXEC(), SCIPbendersComputeSubproblemLowerbound(), SCIPbendersSolveSubproblemLP(), separateCuts(), and solveSubNLP().

    ◆ SCIPhasNLPSolution()

    SCIP_Bool SCIPhasNLPSolution ( SCIP scip)

    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.

    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure

    Definition at line 671 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL_ABORT, SCIPABORT, SCIPcheckStage, SCIPerrorMessage, SCIPnlpHasSolution(), and TRUE.

    Referenced by computeStandardNLPOptimalityCut(), createSolFromNLP(), and processNLPSol().

    ◆ SCIPgetNLPFracVars()

    SCIP_RETCODE SCIPgetNLPFracVars ( SCIP scip,
    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

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    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 696 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPblkmem(), SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetFracVars(), and TRUE.

    Referenced by getNLPFracVars().

    ◆ SCIPwriteNLP()

    SCIP_RETCODE SCIPwriteNLP ( SCIP scip,
    const char *  filename 
    )

    writes current NLP to a file

    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    filenamefile name

    Definition at line 727 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpWrite(), and TRUE.

    Referenced by SCIP_DECL_DIALOGEXEC().

    ◆ SCIPgetNLPI()

    SCIP_RETCODE SCIPgetNLPI ( SCIP scip,
    SCIP_NLPI **  nlpi,
    SCIP_NLPIPROBLEM **  nlpiproblem 
    )

    gets the NLP interface and problem used by the SCIP NLP

    Warning
    With the NLPI and its problem, all methods defined in scip_nlpi.h and pub_nlpi.h can be used. It needs to be ensured that the full internal state of the NLPI does not change or is recovered completely after the end of the method that uses the NLPI. In particular, if the NLP or its solution is manipulated (e.g. by calling one of the SCIPaddNlpi...() or the SCIPsolveNlpi() method), one has to check in advance whether the NLP is currently solved. If this is the case, one has to make sure that the internal solution status is recovered completely again. Additionally one has to resolve the NLP with SCIPsolveNlpi() in order to reinstall the internal solution status.
    Returns
    SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
    Precondition
    This method can be called if SCIP is in one of the following stages:
    Parameters
    scipSCIP data structure
    nlpipointer to store the NLP solver interface
    nlpiproblempointer to store the NLP solver interface problem

    Definition at line 762 of file scip_nlp.c.

    References FALSE, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPcheckStage, SCIPerrorMessage, SCIPnlpGetNLPI(), SCIPnlpGetNLPIProblem(), and TRUE.