39#ifndef __SCIP_TYPE_NLPI_H__
40#define __SCIP_TYPE_NLPI_H__
84#if defined(SCIP_DEBUG) || defined(SCIP_MOREDEBUG) || defined(SCIP_EVENMOREDEBUG)
85#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL 1
87#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL 0
90#if !defined(_MSC_VER) || _MSC_VER >= 1800
102#define SCIP_NLPPARAM_DEFAULT_INITS(scip) \
103 .lobjlimit = SCIP_REAL_MIN, \
104 .feastol = SCIPfeastol(scip), \
105 .opttol = SCIPdualfeastol(scip), \
107 .timelimit = SCIP_REAL_MAX, \
108 .iterlimit = INT_MAX, \
109 .verblevel = SCIP_NLPPARAM_DEFAULT_VERBLEVEL, \
110 .fastfail = SCIP_NLPPARAM_FASTFAIL_CONSERVATIVE, \
111 .expectinfeas= FALSE, \
112 .warmstart = FALSE, \
126#define SCIP_NLPPARAM_DEFAULT(scip) (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT_INITS(scip) }
131 SCIP_REAL_MIN,
SCIP_DEFAULT_FEASTOL,
SCIP_DEFAULT_DUALFEASTOL, 0.0,
SCIP_REAL_MAX, INT_MAX,
SCIP_NLPPARAM_DEFAULT_VERBLEVEL,
SCIP_NLPPARAM_FASTFAIL_CONSERVATIVE,
FALSE,
FALSE, __FILE__
133#define SCIP_NLPPARAM_DEFAULT(scip) SCIP_NLPPARAM_DEFAULT_STATIC
142#define SCIP_NLPPARAM_PRINT(param) \
149 "verblevel = %hd, " \
151 "expectinfeas = %d, " \
154 (param).lobjlimit, (param).feastol, (param).opttol, (param).solvertol, (param).timelimit, (param).iterlimit, \
155 (param).verblevel, (param).fastfail, (param).expectinfeas, (param).warmstart, (param).caller != NULL ? (param).caller : "unknown"
205#define SCIP_DECL_NLPICOPY(x) SCIP_RETCODE x (\
207 SCIP_NLPI* sourcenlpi)
215#define SCIP_DECL_NLPIFREE(x) SCIP_RETCODE x (\
218 SCIP_NLPIDATA** nlpidata)
233#define SCIP_DECL_NLPIGETSOLVERPOINTER(x) void* x (\
236 SCIP_NLPIPROBLEM* problem)
245#define SCIP_DECL_NLPICREATEPROBLEM(x) SCIP_RETCODE x (\
248 SCIP_NLPIPROBLEM** problem, \
257#define SCIP_DECL_NLPIFREEPROBLEM(x) SCIP_RETCODE x (\
260 SCIP_NLPIPROBLEM** problem)
272#define SCIP_DECL_NLPIGETPROBLEMPOINTER(x) void* x (\
275 SCIP_NLPIPROBLEM* problem)
287#define SCIP_DECL_NLPIADDVARS(x) SCIP_RETCODE x (\
290 SCIP_NLPIPROBLEM* problem, \
292 const SCIP_Real* lbs, \
293 const SCIP_Real* ubs, \
294 const char** varnames)
310#define SCIP_DECL_NLPIADDCONSTRAINTS(x) SCIP_RETCODE x (\
313 SCIP_NLPIPROBLEM* problem, \
315 const SCIP_Real* lhss, \
316 const SCIP_Real* rhss, \
317 const int* nlininds, \
318 int* const* lininds, \
319 SCIP_Real* const* linvals, \
334#define SCIP_DECL_NLPISETOBJECTIVE(x) SCIP_RETCODE x (\
337 SCIP_NLPIPROBLEM* problem, \
339 const int* lininds, \
340 const SCIP_Real* linvals, \
342 const SCIP_Real constant)
354#define SCIP_DECL_NLPICHGVARBOUNDS(x) SCIP_RETCODE x (\
357 SCIP_NLPIPROBLEM* problem, \
359 const int* indices, \
360 const SCIP_Real* lbs, \
361 const SCIP_Real* ubs)
373#define SCIP_DECL_NLPICHGCONSSIDES(x) SCIP_RETCODE x (\
376 SCIP_NLPIPROBLEM* problem, \
378 const int* indices, \
379 const SCIP_Real* lhss, \
380 const SCIP_Real* rhss)
390#define SCIP_DECL_NLPIDELVARSET(x) SCIP_RETCODE x (\
393 SCIP_NLPIPROBLEM* problem, \
405#define SCIP_DECL_NLPIDELCONSSET(x) SCIP_RETCODE x (\
408 SCIP_NLPIPROBLEM* problem, \
422#define SCIP_DECL_NLPICHGLINEARCOEFS(x) SCIP_RETCODE x (\
425 SCIP_NLPIPROBLEM* problem, \
428 const int* varidxs, \
429 const SCIP_Real* vals)
439#define SCIP_DECL_NLPICHGEXPR(x) SCIP_RETCODE x (\
442 SCIP_NLPIPROBLEM* problem, \
453#define SCIP_DECL_NLPICHGOBJCONSTANT(x) SCIP_RETCODE x (\
456 SCIP_NLPIPROBLEM* problem, \
457 SCIP_Real objconstant)
471#define SCIP_DECL_NLPISETINITIALGUESS(x) SCIP_RETCODE x (\
474 SCIP_NLPIPROBLEM* problem, \
475 SCIP_Real* primalvalues, \
476 SCIP_Real* consdualvalues, \
477 SCIP_Real* varlbdualvalues, \
478 SCIP_Real* varubdualvalues)
487#define SCIP_DECL_NLPISOLVE(x) SCIP_RETCODE x (\
490 SCIP_NLPIPROBLEM* problem, \
501#define SCIP_DECL_NLPIGETSOLSTAT(x) SCIP_NLPSOLSTAT x (\
504 SCIP_NLPIPROBLEM* problem)
514#define SCIP_DECL_NLPIGETTERMSTAT(x) SCIP_NLPTERMSTAT x (\
517 SCIP_NLPIPROBLEM* problem)
535#define SCIP_DECL_NLPIGETSOLUTION(x) SCIP_RETCODE x (\
538 SCIP_NLPIPROBLEM* problem, \
539 SCIP_Real** primalvalues, \
540 SCIP_Real** consdualvalues, \
541 SCIP_Real** varlbdualvalues, \
542 SCIP_Real** varubdualvalues, \
552#define SCIP_DECL_NLPIGETSTATISTICS(x) SCIP_RETCODE x (\
555 SCIP_NLPIPROBLEM* problem, \
556 SCIP_NLPSTATISTICS* statistics)
common defines and data types used in all packages of SCIP
#define SCIP_DEFAULT_DUALFEASTOL
#define SCIP_DEFAULT_FEASTOL
SCIP_NLPPARAM_FASTFAIL fastfail
type and macro definitions related to algebraic expressions
type definitions for NLP management
struct SCIP_NlpiProblem SCIP_NLPIPROBLEM
struct SCIP_NlpStatistics SCIP_NLPSTATISTICS
struct SCIP_Nlpi SCIP_NLPI
@ SCIP_NLPPARAM_FASTFAIL_CONSERVATIVE
@ SCIP_NLPPARAM_FASTFAIL_OFF
@ SCIP_NLPPARAM_FASTFAIL_AGGRESSIVE
enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
@ SCIP_NLPTERMSTAT_TIMELIMIT
@ SCIP_NLPTERMSTAT_NUMERICERROR
@ SCIP_NLPTERMSTAT_EVALERROR
@ SCIP_NLPTERMSTAT_LICENSEERROR
@ SCIP_NLPTERMSTAT_LOBJLIMIT
@ SCIP_NLPTERMSTAT_ITERLIMIT
@ SCIP_NLPTERMSTAT_OUTOFMEMORY
@ SCIP_NLPTERMSTAT_INTERRUPT
#define SCIP_NLPPARAM_DEFAULT_VERBLEVEL
@ SCIP_NLPSOLSTAT_UNBOUNDED
@ SCIP_NLPSOLSTAT_GLOBINFEASIBLE
@ SCIP_NLPSOLSTAT_LOCINFEASIBLE
@ SCIP_NLPSOLSTAT_FEASIBLE
@ SCIP_NLPSOLSTAT_GLOBOPT
@ SCIP_NLPSOLSTAT_UNKNOWN
enum SCIP_NlpParam_FastFail SCIP_NLPPARAM_FASTFAIL
struct SCIP_NlpParam SCIP_NLPPARAM
enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
struct SCIP_NlpiData SCIP_NLPIDATA
type definitions for SCIP's main datastructure