Scippy

SCIP

Solving Constraint Integer Programs

nlpi.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2022 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file nlpi.h
17  * @ingroup INTERNALAPI
18  * @brief internal methods for NLP solver interfaces
19  * @author Stefan Vigerske
20  * @author Thorsten Gellermann
21  */
22 
23 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
24 
25 #ifndef __SCIP_NLPI_H__
26 #define __SCIP_NLPI_H__
27 
28 #include "scip/type_nlpi.h"
29 #include "scip/type_misc.h"
30 #include "scip/type_set.h"
31 #include "scip/type_stat.h"
32 #include "blockmemshell/memory.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /** creates an NLP solver interface */
40  SCIP_NLPI** nlpi, /**< pointer to NLP interface data structure */
41  const char* name, /**< name of NLP interface */
42  const char* description, /**< description of NLP interface */
43  int priority, /**< priority of NLP interface */
44  SCIP_DECL_NLPICOPY ((*nlpicopy)), /**< copying of NLPI, can be NULL */
45  SCIP_DECL_NLPIFREE ((*nlpifree)), /**< free NLPI user data */
46  SCIP_DECL_NLPIGETSOLVERPOINTER ((*nlpigetsolverpointer)), /**< get solver pointer, can be NULL */
47  SCIP_DECL_NLPICREATEPROBLEM ((*nlpicreateproblem)), /**< create a new problem instance */
48  SCIP_DECL_NLPIFREEPROBLEM ((*nlpifreeproblem)), /**< free a problem instance */
49  SCIP_DECL_NLPIGETPROBLEMPOINTER ((*nlpigetproblempointer)), /**< get problem pointer, can be NULL */
50  SCIP_DECL_NLPIADDVARS ((*nlpiaddvars)), /**< add variables */
51  SCIP_DECL_NLPIADDCONSTRAINTS ((*nlpiaddconstraints)), /**< add constraints */
52  SCIP_DECL_NLPISETOBJECTIVE ((*nlpisetobjective)), /**< set objective */
53  SCIP_DECL_NLPICHGVARBOUNDS ((*nlpichgvarbounds)), /**< change variable bounds */
54  SCIP_DECL_NLPICHGCONSSIDES ((*nlpichgconssides)), /**< change constraint sides */
55  SCIP_DECL_NLPIDELVARSET ((*nlpidelvarset)), /**< delete a set of constraints */
56  SCIP_DECL_NLPIDELCONSSET ((*nlpidelconsset)), /**< delete a set of constraints */
57  SCIP_DECL_NLPICHGLINEARCOEFS ((*nlpichglinearcoefs)), /**< change coefficients in linear part of a constraint or objective */
58  SCIP_DECL_NLPICHGEXPR ((*nlpichgexpr)), /**< change nonlinear expression a constraint or objective */
59  SCIP_DECL_NLPICHGOBJCONSTANT ((*nlpichgobjconstant)), /**< change the constant offset in the objective */
60  SCIP_DECL_NLPISETINITIALGUESS ((*nlpisetinitialguess)), /**< set initial guess, can be NULL */
61  SCIP_DECL_NLPISOLVE ((*nlpisolve)), /**< solve NLP */
62  SCIP_DECL_NLPIGETSOLSTAT ((*nlpigetsolstat)), /**< get solution status */
63  SCIP_DECL_NLPIGETTERMSTAT ((*nlpigettermstat)), /**< get termination status */
64  SCIP_DECL_NLPIGETSOLUTION ((*nlpigetsolution)), /**< get solution */
65  SCIP_DECL_NLPIGETSTATISTICS ((*nlpigetstatistics)), /**< get solve statistics */
66  SCIP_NLPIDATA* nlpidata /**< NLP interface local data */
67  );
68 
69 /** sets NLP solver priority */
71  SCIP_NLPI* nlpi, /**< NLP interface structure */
72  int priority /**< new priority of NLPI */
73  );
74 
75 /** copies an NLPI and includes it into another SCIP instance */
77  SCIP_NLPI* sourcenlpi, /**< the NLP interface to copy */
78  SCIP_SET* targetset /**< global SCIP settings where to include copy */
79  );
80 
81 /** frees NLPI */
83  SCIP_NLPI** nlpi, /**< pointer to NLPI data structure */
84  SCIP_SET* set /**< global SCIP settings */
85  );
86 
87 /** initializes NLPI */
88 void SCIPnlpiInit(
89  SCIP_NLPI* nlpi /**< solver interface */
90  );
91 
92 /** gets pointer for NLP solver */
94  SCIP_SET* set, /**< global SCIP settings */
95  SCIP_NLPI* nlpi, /**< solver interface */
96  SCIP_NLPIPROBLEM* problem /**< problem instance, or NULL */
97  );
98 
99 /** creates a problem instance */
101  SCIP_SET* set, /**< global SCIP settings */
102  SCIP_NLPI* nlpi, /**< solver interface */
103  SCIP_NLPIPROBLEM** problem, /**< problem pointer to store the problem data */
104  const char* name /**< name of problem, can be NULL */
105  );
106 
107 /** frees a problem instance */
109  SCIP_SET* set, /**< global SCIP settings */
110  SCIP_NLPI* nlpi, /**< solver interface */
111  SCIP_NLPIPROBLEM** problem /**< pointer where problem instance is stored */
112  );
113 
114 /** gets pointer to solver-internal problem instance */
116  SCIP_SET* set, /**< global SCIP settings */
117  SCIP_NLPI* nlpi, /**< solver interface */
118  SCIP_NLPIPROBLEM* problem /**< problem instance */
119  );
120 
121 /** add variables to nlpi */
123  SCIP_SET* set, /**< global SCIP settings */
124  SCIP_NLPI* nlpi, /**< solver interface */
125  SCIP_NLPIPROBLEM* problem, /**< problem instance */
126  int nvars, /**< number of variables */
127  const SCIP_Real* lbs, /**< lower bounds of variables, can be NULL if -infinity */
128  const SCIP_Real* ubs, /**< upper bounds of variables, can be NULL if +infinity */
129  const char** varnames /**< names of variables, can be NULL */
130  );
131 
132 /** add constraints to nlpi */
134  SCIP_SET* set, /**< global SCIP settings */
135  SCIP_NLPI* nlpi, /**< solver interface */
136  SCIP_NLPIPROBLEM* problem, /**< problem instance */
137  int nconss, /**< number of constraints */
138  const SCIP_Real* lhss, /**< left hand sides of constraints, can be NULL if -infinity */
139  const SCIP_Real* rhss, /**< right hand sides of constraints, can be NULL if +infinity */
140  const int* nlininds, /**< number of linear coefficients for each constraint, may be NULL in case of no linear part */
141  int* const* lininds, /**< indices of variables for linear coefficients for each constraint, may be NULL in case of no linear part */
142  SCIP_Real* const* linvals, /**< values of linear coefficient for each constraint, may be NULL in case of no linear part */
143  SCIP_EXPR** exprs, /**< expressions for nonlinear part of constraints, entry of array may be NULL in case of no nonlinear part, may be NULL in case of no nonlinear part in any constraint */
144  const char** names /**< names of constraints, may be NULL or entries may be NULL */
145  );
146 
147 /** sets or overwrites objective, a minimization problem is expected */
149  SCIP_SET* set, /**< global SCIP settings */
150  SCIP_NLPI* nlpi, /**< solver interface */
151  SCIP_NLPIPROBLEM* problem, /**< problem instance */
152  int nlins, /**< number of linear variables */
153  const int* lininds, /**< variable indices, may be NULL in case of no linear part */
154  const SCIP_Real* linvals, /**< coefficient values, may be NULL in case of no linear part */
155  SCIP_EXPR* expr, /**< expression for nonlinear part of objective function, may be NULL in case of no nonlinear part */
156  const SCIP_Real constant /**< objective value offset */
157  );
158 
159 /** change variable bounds */
161  SCIP_SET* set, /**< global SCIP settings */
162  SCIP_NLPI* nlpi, /**< solver interface */
163  SCIP_NLPIPROBLEM* problem, /**< problem instance */
164  const int nvars, /**< number of variables to change bounds */
165  const int* indices, /**< indices of variables to change bounds */
166  const SCIP_Real* lbs, /**< new lower bounds */
167  const SCIP_Real* ubs /**< new upper bounds */
168  );
169 
170 /** change constraint sides */
172  SCIP_SET* set, /**< global SCIP settings */
173  SCIP_NLPI* nlpi, /**< solver interface */
174  SCIP_NLPIPROBLEM* problem, /**< problem instance */
175  int nconss, /**< number of constraints to change sides */
176  const int* indices, /**< indices of constraints to change sides */
177  const SCIP_Real* lhss, /**< new left hand sides */
178  const SCIP_Real* rhss /**< new right hand sides */
179  );
180 
181 /** delete a set of variables */
183  SCIP_SET* set, /**< global SCIP settings */
184  SCIP_NLPI* nlpi, /**< solver interface */
185  SCIP_NLPIPROBLEM* problem, /**< problem instance */
186  int* dstats, /**< deletion status of vars; 1 if var should be deleted, 0 if not */
187  int dstatssize /**< size of the dstats array */
188  );
189 
190 /** delete a set of constraints */
192  SCIP_SET* set, /**< global SCIP settings */
193  SCIP_NLPI* nlpi, /**< solver interface */
194  SCIP_NLPIPROBLEM* problem, /**< problem instance */
195  int* dstats, /**< deletion status of constraints; 1 if constraint should be deleted, 0 if not */
196  int dstatssize /**< size of the dstats array */
197  );
198 
199 /** changes or adds linear coefficients in a constraint or objective */
201  SCIP_SET* set, /**< global SCIP settings */
202  SCIP_NLPI* nlpi, /**< solver interface */
203  SCIP_NLPIPROBLEM* problem, /**< problem instance */
204  int idx, /**< index of constraint or -1 for objective */
205  int nvals, /**< number of values in linear constraint to change */
206  const int* varidxs, /**< indices of variables which coefficient to change */
207  const SCIP_Real* vals /**< new values for coefficients */
208  );
209 
210 /** change the expression in the nonlinear part */
212  SCIP_SET* set, /**< global SCIP settings */
213  SCIP_NLPI* nlpi, /**< solver interface */
214  SCIP_NLPIPROBLEM* problem, /**< problem instance */
215  int idxcons, /**< index of constraint or -1 for objective */
216  SCIP_EXPR* expr /**< new expression for constraint or objective, or NULL to only remove previous tree */
217  );
218 
219 /** change the constant offset in the objective */
221  SCIP_SET* set, /**< global SCIP settings */
222  SCIP_NLPI* nlpi, /**< solver interface */
223  SCIP_NLPIPROBLEM* problem, /**< problem instance */
224  SCIP_Real objconstant /**< new value for objective constant */
225  );
226 
227 /** sets initial guess for primal variables */
229  SCIP_SET* set, /**< global SCIP settings */
230  SCIP_NLPI* nlpi, /**< solver interface */
231  SCIP_NLPIPROBLEM* problem, /**< problem instance */
232  SCIP_Real* primalvalues, /**< initial primal values for variables, or NULL to clear previous values */
233  SCIP_Real* consdualvalues, /**< initial dual values for constraints, or NULL to clear previous values */
234  SCIP_Real* varlbdualvalues, /**< initial dual values for variable lower bounds, or NULL to clear previous values */
235  SCIP_Real* varubdualvalues /**< initial dual values for variable upper bounds, or NULL to clear previous values */
236  );
237 
238 /** tries to solve NLP */
240  SCIP_SET* set, /**< global SCIP settings */
241  SCIP_STAT* stat, /**< problem statistics */
242  SCIP_NLPI* nlpi, /**< solver interface */
243  SCIP_NLPIPROBLEM* problem, /**< problem instance */
244  SCIP_NLPPARAM* param /**< solve parameters */
245  );
246 
247 /** gives solution status */
249  SCIP_SET* set, /**< global SCIP settings */
250  SCIP_NLPI* nlpi, /**< solver interface */
251  SCIP_NLPIPROBLEM* problem /**< problem instance */
252  );
253 
254 /** gives termination reason */
256  SCIP_SET* set, /**< global SCIP settings */
257  SCIP_NLPI* nlpi, /**< solver interface */
258  SCIP_NLPIPROBLEM* problem /**< problem instance */
259  );
260 
261 /** gives primal and dual solution
262  * for a ranged constraint, the dual variable is positive if the right hand side is active and negative if the left hand side is active
263  */
265  SCIP_SET* set, /**< global SCIP settings */
266  SCIP_NLPI* nlpi, /**< solver interface */
267  SCIP_NLPIPROBLEM* problem, /**< problem instance */
268  SCIP_Real** primalvalues, /**< buffer to store pointer to array to primal values, or NULL if not needed */
269  SCIP_Real** consdualvalues, /**< buffer to store pointer to array to dual values of constraints, or NULL if not needed */
270  SCIP_Real** varlbdualvalues, /**< buffer to store pointer to array to dual values of variable lower bounds, or NULL if not needed */
271  SCIP_Real** varubdualvalues, /**< buffer to store pointer to array to dual values of variable lower bounds, or NULL if not needed */
272  SCIP_Real* objval /**< pointer to store the objective value, or NULL if not needed */
273  );
274 
275 /** gives solve statistics */
277  SCIP_SET* set, /**< global SCIP settings */
278  SCIP_NLPI* nlpi, /**< solver interface */
279  SCIP_NLPIPROBLEM* problem, /**< problem instance */
280  SCIP_NLPSTATISTICS* statistics /**< pointer to store statistics */
281  );
282 
283 #ifdef __cplusplus
284 }
285 #endif
286 
287 #endif /* __SCIP_NLPI_H__ */
#define SCIP_DECL_NLPIGETSOLVERPOINTER(x)
Definition: type_nlpi.h:234
SCIP_RETCODE SCIPnlpiCopyInclude(SCIP_NLPI *sourcenlpi, SCIP_SET *targetset)
Definition: nlpi.c:140
enum SCIP_NlpTermStat SCIP_NLPTERMSTAT
Definition: type_nlpi.h:185
SCIP_RETCODE SCIPnlpiAddConstraints(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nconss, const SCIP_Real *lhss, const SCIP_Real *rhss, const int *nlininds, int *const *lininds, SCIP_Real *const *linvals, SCIP_EXPR **exprs, const char **names)
Definition: nlpi.c:298
type definitions for miscellaneous datastructures
void * SCIPnlpiGetProblemPointer(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
Definition: nlpi.c:258
void SCIPnlpiSetPriority(SCIP_NLPI *nlpi, int priority)
Definition: nlpi.c:129
#define SCIP_DECL_NLPIGETTERMSTAT(x)
Definition: type_nlpi.h:515
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
type definitions for global SCIP settings
#define SCIP_DECL_NLPIGETSOLUTION(x)
Definition: type_nlpi.h:536
#define SCIP_DECL_NLPICHGOBJCONSTANT(x)
Definition: type_nlpi.h:454
SCIP_RETCODE SCIPnlpiGetSolution(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_Real **primalvalues, SCIP_Real **consdualvalues, SCIP_Real **varlbdualvalues, SCIP_Real **varubdualvalues, SCIP_Real *objval)
Definition: nlpi.c:624
SCIP_RETCODE SCIPnlpiAddVars(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nvars, const SCIP_Real *lbs, const SCIP_Real *ubs, const char **varnames)
Definition: nlpi.c:275
type definitions for problem statistics
#define SCIP_DECL_NLPIGETPROBLEMPOINTER(x)
Definition: type_nlpi.h:273
SCIP_NLPTERMSTAT SCIPnlpiGetTermstat(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
Definition: nlpi.c:607
void * SCIPnlpiGetSolverPointer(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
Definition: nlpi.c:201
#define SCIP_DECL_NLPIADDCONSTRAINTS(x)
Definition: type_nlpi.h:311
SCIP_RETCODE SCIPnlpiSetInitialGuess(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_Real *primalvalues, SCIP_Real *consdualvalues, SCIP_Real *varlbdualvalues, SCIP_Real *varubdualvalues)
Definition: nlpi.c:501
struct SCIP_NlpiData SCIP_NLPIDATA
Definition: type_nlpi.h:43
enum SCIP_NlpSolStat SCIP_NLPSOLSTAT
Definition: type_nlpi.h:159
SCIP_RETCODE SCIPnlpiChgVarBounds(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, const int nvars, const int *indices, const SCIP_Real *lbs, const SCIP_Real *ubs)
Definition: nlpi.c:349
#define SCIP_DECL_NLPICOPY(x)
Definition: type_nlpi.h:206
#define SCIP_DECL_NLPICHGVARBOUNDS(x)
Definition: type_nlpi.h:355
SCIP_RETCODE SCIPnlpiCreateProblem(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM **problem, const char *name)
Definition: nlpi.c:217
#define SCIP_DECL_NLPIGETSTATISTICS(x)
Definition: type_nlpi.h:553
SCIP_RETCODE SCIPnlpiGetStatistics(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_NLPSTATISTICS *statistics)
Definition: nlpi.c:646
#define SCIP_DECL_NLPIDELVARSET(x)
Definition: type_nlpi.h:391
#define SCIP_DECL_NLPICHGCONSSIDES(x)
Definition: type_nlpi.h:374
SCIP_RETCODE SCIPnlpiCreate(SCIP_NLPI **nlpi, const char *name, const char *description, int priority, SCIP_DECL_NLPICOPY((*nlpicopy)), SCIP_DECL_NLPIFREE((*nlpifree)), SCIP_DECL_NLPIGETSOLVERPOINTER((*nlpigetsolverpointer)), SCIP_DECL_NLPICREATEPROBLEM((*nlpicreateproblem)), SCIP_DECL_NLPIFREEPROBLEM((*nlpifreeproblem)), SCIP_DECL_NLPIGETPROBLEMPOINTER((*nlpigetproblempointer)), SCIP_DECL_NLPIADDVARS((*nlpiaddvars)), SCIP_DECL_NLPIADDCONSTRAINTS((*nlpiaddconstraints)), SCIP_DECL_NLPISETOBJECTIVE((*nlpisetobjective)), SCIP_DECL_NLPICHGVARBOUNDS((*nlpichgvarbounds)), SCIP_DECL_NLPICHGCONSSIDES((*nlpichgconssides)), SCIP_DECL_NLPIDELVARSET((*nlpidelvarset)), SCIP_DECL_NLPIDELCONSSET((*nlpidelconsset)), SCIP_DECL_NLPICHGLINEARCOEFS((*nlpichglinearcoefs)), SCIP_DECL_NLPICHGEXPR((*nlpichgexpr)), SCIP_DECL_NLPICHGOBJCONSTANT((*nlpichgobjconstant)), SCIP_DECL_NLPISETINITIALGUESS((*nlpisetinitialguess)), SCIP_DECL_NLPISOLVE((*nlpisolve)), SCIP_DECL_NLPIGETSOLSTAT((*nlpigetsolstat)), SCIP_DECL_NLPIGETTERMSTAT((*nlpigettermstat)), SCIP_DECL_NLPIGETSOLUTION((*nlpigetsolution)), SCIP_DECL_NLPIGETSTATISTICS((*nlpigetstatistics)), SCIP_NLPIDATA *nlpidata)
Definition: nlpi.c:44
SCIP_RETCODE SCIPnlpiChgExpr(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int idxcons, SCIP_EXPR *expr)
Definition: nlpi.c:460
SCIP_RETCODE SCIPnlpiDelVarSet(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int *dstats, int dstatssize)
Definition: nlpi.c:395
SCIP_RETCODE SCIPnlpiChgLinearCoefs(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int idx, int nvals, const int *varidxs, const SCIP_Real *vals)
Definition: nlpi.c:437
SCIP_NLPSOLSTAT SCIPnlpiGetSolstat(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem)
Definition: nlpi.c:592
SCIP_RETCODE SCIPnlpiFreeProblem(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM **problem)
Definition: nlpi.c:239
SCIP_RETCODE SCIPnlpiSolve(SCIP_SET *set, SCIP_STAT *stat, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_NLPPARAM *param)
Definition: nlpi.c:524
#define SCIP_DECL_NLPIFREE(x)
Definition: type_nlpi.h:216
#define SCIP_DECL_NLPISETINITIALGUESS(x)
Definition: type_nlpi.h:472
#define SCIP_Real
Definition: def.h:177
#define SCIP_DECL_NLPICREATEPROBLEM(x)
Definition: type_nlpi.h:246
#define SCIP_DECL_NLPISOLVE(x)
Definition: type_nlpi.h:488
#define SCIP_DECL_NLPICHGEXPR(x)
Definition: type_nlpi.h:440
#define SCIP_DECL_NLPIFREEPROBLEM(x)
Definition: type_nlpi.h:258
void SCIPnlpiInit(SCIP_NLPI *nlpi)
Definition: nlpi.c:184
#define SCIP_DECL_NLPISETOBJECTIVE(x)
Definition: type_nlpi.h:335
SCIP_RETCODE SCIPnlpiChgConsSides(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nconss, const int *indices, const SCIP_Real *lhss, const SCIP_Real *rhss)
Definition: nlpi.c:372
#define SCIP_DECL_NLPIGETSOLSTAT(x)
Definition: type_nlpi.h:502
SCIP_RETCODE SCIPnlpiSetObjective(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int nlins, const int *lininds, const SCIP_Real *linvals, SCIP_EXPR *expr, const SCIP_Real constant)
Definition: nlpi.c:325
SCIP_RETCODE SCIPnlpiDelConsSet(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, int *dstats, int dstatssize)
Definition: nlpi.c:416
#define SCIP_DECL_NLPIDELCONSSET(x)
Definition: type_nlpi.h:406
SCIP_RETCODE SCIPnlpiFree(SCIP_NLPI **nlpi, SCIP_SET *set)
Definition: nlpi.c:157
SCIP_RETCODE SCIPnlpiChgObjConstant(SCIP_SET *set, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *problem, SCIP_Real objconstant)
Definition: nlpi.c:481
#define SCIP_DECL_NLPICHGLINEARCOEFS(x)
Definition: type_nlpi.h:423
type definitions for NLP solver interfaces
#define SCIP_DECL_NLPIADDVARS(x)
Definition: type_nlpi.h:288
memory allocation routines