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"
183#if defined(GCC_VERSION) && GCC_VERSION >= 600 && !defined(__INTEL_COMPILER)
215#define SCIP_DECL_NLPICOPY(x) SCIP_RETCODE x (\
217 SCIP_NLPI* sourcenlpi)
225#define SCIP_DECL_NLPIFREE(x) SCIP_RETCODE x (\
228 SCIP_NLPIDATA** nlpidata)
243#define SCIP_DECL_NLPIGETSOLVERPOINTER(x) void* x (\
246 SCIP_NLPIPROBLEM* problem)
255#define SCIP_DECL_NLPICREATEPROBLEM(x) SCIP_RETCODE x (\
258 SCIP_NLPIPROBLEM** problem, \
267#define SCIP_DECL_NLPIFREEPROBLEM(x) SCIP_RETCODE x (\
270 SCIP_NLPIPROBLEM** problem)
282#define SCIP_DECL_NLPIGETPROBLEMPOINTER(x) void* x (\
285 SCIP_NLPIPROBLEM* problem)
297#define SCIP_DECL_NLPIADDVARS(x) SCIP_RETCODE x (\
300 SCIP_NLPIPROBLEM* problem, \
302 const SCIP_Real* lbs, \
303 const SCIP_Real* ubs, \
304 const char** varnames)
320#define SCIP_DECL_NLPIADDCONSTRAINTS(x) SCIP_RETCODE x (\
323 SCIP_NLPIPROBLEM* problem, \
325 const SCIP_Real* lhss, \
326 const SCIP_Real* rhss, \
327 const int* nlininds, \
328 int* const* lininds, \
329 SCIP_Real* const* linvals, \
344#define SCIP_DECL_NLPISETOBJECTIVE(x) SCIP_RETCODE x (\
347 SCIP_NLPIPROBLEM* problem, \
349 const int* lininds, \
350 const SCIP_Real* linvals, \
352 const SCIP_Real constant)
364#define SCIP_DECL_NLPICHGVARBOUNDS(x) SCIP_RETCODE x (\
367 SCIP_NLPIPROBLEM* problem, \
369 const int* indices, \
370 const SCIP_Real* lbs, \
371 const SCIP_Real* ubs)
383#define SCIP_DECL_NLPICHGCONSSIDES(x) SCIP_RETCODE x (\
386 SCIP_NLPIPROBLEM* problem, \
388 const int* indices, \
389 const SCIP_Real* lhss, \
390 const SCIP_Real* rhss)
400#define SCIP_DECL_NLPIDELVARSET(x) SCIP_RETCODE x (\
403 SCIP_NLPIPROBLEM* problem, \
415#define SCIP_DECL_NLPIDELCONSSET(x) SCIP_RETCODE x (\
418 SCIP_NLPIPROBLEM* problem, \
432#define SCIP_DECL_NLPICHGLINEARCOEFS(x) SCIP_RETCODE x (\
435 SCIP_NLPIPROBLEM* problem, \
438 const int* varidxs, \
439 const SCIP_Real* vals)
449#define SCIP_DECL_NLPICHGEXPR(x) SCIP_RETCODE x (\
452 SCIP_NLPIPROBLEM* problem, \
463#define SCIP_DECL_NLPICHGOBJCONSTANT(x) SCIP_RETCODE x (\
466 SCIP_NLPIPROBLEM* problem, \
467 SCIP_Real objconstant)
481#define SCIP_DECL_NLPISETINITIALGUESS(x) SCIP_RETCODE x (\
484 SCIP_NLPIPROBLEM* problem, \
485 SCIP_Real* primalvalues, \
486 SCIP_Real* consdualvalues, \
487 SCIP_Real* varlbdualvalues, \
488 SCIP_Real* varubdualvalues)
497#define SCIP_DECL_NLPISOLVE(x) SCIP_RETCODE x (\
500 SCIP_NLPIPROBLEM* problem, \
511#define SCIP_DECL_NLPIGETSOLSTAT(x) SCIP_NLPSOLSTAT x (\
514 SCIP_NLPIPROBLEM* problem)
524#define SCIP_DECL_NLPIGETTERMSTAT(x) SCIP_NLPTERMSTAT x (\
527 SCIP_NLPIPROBLEM* problem)
545#define SCIP_DECL_NLPIGETSOLUTION(x) SCIP_RETCODE x (\
548 SCIP_NLPIPROBLEM* problem, \
549 SCIP_Real** primalvalues, \
550 SCIP_Real** consdualvalues, \
551 SCIP_Real** varlbdualvalues, \
552 SCIP_Real** varubdualvalues, \
562#define SCIP_DECL_NLPIGETSTATISTICS(x) SCIP_RETCODE x (\
565 SCIP_NLPIPROBLEM* problem, \
566 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