/** creates the NLP local search primal heuristic and includes it in SCIP
*
* @ingroup PrimalHeuristicIncludes
*/
SCIP_EXPORT
SCIP_RETCODESCIPincludeHeurSubNlp(
SCIP*scip/**< SCIP data structure */
);
/**@addtogroup PRIMALHEURISTICS
*
* @{
*/
/** updates the starting point for the NLP heuristic
*
* Is called, for example, by a constraint handler that handles nonlinear constraints when a check on feasibility of a solution fails.
*/
SCIP_EXPORT
SCIP_RETCODESCIPupdateStartpointHeurSubNlp(
SCIP*scip,/**< SCIP data structure */
SCIP_HEUR*heur,/**< subNLP heuristic */
SCIP_SOL*solcand,/**< solution candidate */
SCIP_Realviolation/**< constraint violation of solution candidate */
);
/** main procedure of the subNLP heuristic */
SCIP_EXPORT
SCIP_RETCODESCIPapplyHeurSubNlp(
SCIP*scip,/**< original SCIP data structure */
SCIP_HEUR*heur,/**< heuristic data structure */
SCIP_RESULT*result,/**< pointer to store result of: solution found, no solution found, or fixing is infeasible (cutoff) */
SCIP_SOL*refpoint,/**< point to take fixation of discrete variables from, and startpoint for NLP solver; if NULL, then LP solution is used */
SCIP_Longintitercontingent,/**< iteration limit for NLP solver */
SCIP_Realtimelimit,/**< time limit for NLP solver */
SCIP_Realminimprove,/**< desired minimal relative improvement in objective function value */
SCIP_Longint*iterused,/**< buffer to store number of iterations used by NLP solver, or NULL if not of interest */
SCIP_SOL*resultsol/**< a solution where to store found solution values, if any, or NULL if to try adding to SCIP */
);
/** for a given solution, resolves the corresponding subNLP and updates solution values for continuous variables, if NLP solution is feasible in original problem */
SCIP_EXPORT
SCIP_RETCODESCIPresolveSolHeurSubNlp(
SCIP*scip,/**< original SCIP data structure */
SCIP_HEUR*heur,/**< heuristic data structure */
SCIP_SOL*sol,/**< solution for which to solve NLP, and where to store resolved solution values */
SCIP_Bool*success,/**< buffer where to store whether a feasible solution was found */
SCIP_Longintitercontingent,/**< iteration limit for NLP solver, or -1 for default of NLP heuristic */
SCIP_Realtimelimit/**< time limit for NLP solver */
);
/** adds all known linear constraint to the NLP, if initialized and not done already
* This function is temporary and will hopefully become obsolete in the near future.
*/
SCIP_EXPORT
SCIP_RETCODESCIPaddLinearConsToNlpHeurSubNlp(
SCIP*scip,/**< original SCIP data structure */
SCIP_HEUR*heur,/**< heuristic data structure */
SCIP_Booladdcombconss,/**< whether to add combinatorial linear constraints, i.e., linear constraints that involve only discrete variables */
SCIP_Booladdcontconss/**< whether to add continuous linear constraints, i.e., linear constraints that involve not only discrete variables */
);
/** gets sub-SCIP used by NLP heuristic, or NULL if none */
SCIP_EXPORT
SCIP*SCIPgetSubScipHeurSubNlp(
SCIP*scip,/**< original SCIP data structure */
SCIP_HEUR*heur/**< heuristic data structure */
);
/** gets mapping of SCIP variables to sub-SCIP variables */