Scippy

SCIP

Solving Constraint Integer Programs

certificate.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-2025 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file certificate.h
26 * @ingroup INTERNALAPI
27 * @brief methods for certificate output
28 * @author Ambros Gleixner
29 * @author Daniel Steffy
30 * @author Leon Eifler
31 */
32
33/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
34
35#ifndef __SCIP_CERTIFICATE_H__
36#define __SCIP_CERTIFICATE_H__
37
38
39#include "scip/def.h"
40#include "scip/type_set.h"
41#include "scip/type_cuts.h"
42#include "scip/type_stat.h"
43#include "scip/type_tree.h"
45#include "scip/type_message.h"
46#include "scip/type_rational.h"
47#include "scip/type_sol.h"
48#include "scip/type_lpexact.h"
49#include "scip/type_cons.h"
50#include "scip/type_var.h"
51#include "scip/pub_fileio.h"
52#include "scip/type_prob.h"
54
55#ifdef __cplusplus
56extern "C" {
57#endif
58
59/** creates certificate data structure */
61 SCIP_CERTIFICATE** certificate, /**< pointer to store the certificate information */
62 SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
63 );
64
65/** frees certificate data structure */
67 SCIP_CERTIFICATE** certificate /**< pointer to store the certificate information */
68 );
69
70/** initializes certificate information and creates files for certificate output */
72 SCIP* scip, /**< scip data structure */
73 SCIP_CERTIFICATE* certificate, /**< certificate information */
74 BMS_BLKMEM* blkmem, /**< block memory */
75 SCIP_SET* set, /**< global SCIP settings */
76 SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
77 );
78
79/** initializes certificate information and creates files for certificate output */
81 SCIP* scip /**< scip data structure */
82 );
83
84/** closes the certificate output files */
86 SCIP* scip /**< certificate information */
87 );
88
89
90/** returns certificate data structure */
92 SCIP* scip /**< SCIP data structure */
93 );
94
95/** returns whether the certificate output is activated */
97 SCIP_CERTIFICATE* certificate /**< certificate information */
98 );
99
100/** returns current certificate index (return -1 if certificate not active) */
102 SCIP_CERTIFICATE* certificate /**< certificate information */
103 );
104
105/** returns current certificate index*/
107 SCIP_CERTIFICATE* certificate /**< certificate information */
108 );
109
110#ifndef NDEBUG
111/** checks if information is consistent with printed certificate line */
113 SCIP_CERTIFICATE* certificate, /**< certificate information */
114 SCIP_VAR* var, /**< variable that gets changed */
115 SCIP_BOUNDTYPE boundtype, /**< lb or ub changed? */
116 SCIP_Real newbound, /**< new bound */
117 SCIP_Bool needsglobal /**< if the bound needs to be global */
118 );
119#endif
120
121/** sets the objective function used when printing dual bounds */
123 SCIP_CERTIFICATE* certificate, /**< certificate information */
124 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
125 BMS_BLKMEM* blkmem, /**< block memory */
126 SCIP_RATIONAL** coefs, /**< objective function coefficients */
127 int nvars /**< number of variables */
128 );
129
130/** prints a string to the problem section of the certificate file */
132 SCIP_CERTIFICATE* certificate, /**< certificate information */
133 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
134 const char* formatstr, /**< format string like in printf() function */
135 ... /**< format arguments line in printf() function */
136 );
137
138/** prints a string to the proof section of the certificate file */
140 SCIP_CERTIFICATE* certificate, /**< certificate information */
141 const char* formatstr, /**< format string like in printf() function */
142 ... /**< format arguments line in printf() function */
143 );
144
145/** prints a rational number to the problem section of the certificate file */
147 SCIP_CERTIFICATE* certificate, /**< certificate information */
148 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
149 SCIP_RATIONAL* val /**< rational number to print */
150 );
151
152/** prints a rational number to the proof section of the certificate file */
154 SCIP_CERTIFICATE* certificate, /**< certificate information */
155 SCIP_RATIONAL* val /**< rational to print */
156 );
157
158/** prints a comment to the problem section of the certificate file */
160 SCIP_CERTIFICATE* certificate, /**< certificate information */
161 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
162 const char* formatstr, /**< format string like in printf() function */
163 ... /**< format arguments line in printf() function */
164 );
165
166/** prints a comment to the proof section of the certificate file */
168 SCIP_CERTIFICATE* certificate, /**< certificate information */
169 const char* formatstr, /**< format string like in printf() function */
170 ... /**< format arguments line in printf() function */
171 );
172
173/** prints variable section header */
175 SCIP_CERTIFICATE* certificate, /**< certificate information */
176 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
177 int nvars /**< number of variables */
178 );
179
180/** prints version header */
182 SCIP_CERTIFICATE* certificate, /**< certificate information */
183 SCIP_Bool isorigfile /**< should the original solution be printed or in transformed space */
184 );
185
186/** prints integer section header */
188 SCIP_CERTIFICATE* certificate, /**< certificate information */
189 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
190 int nintvars /**< number of integer variables */
191 );
192
193/** prints constraint section header */
195 SCIP_CERTIFICATE* certificate, /**< certificate information */
196 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
197 int nconss, /**< number of all constraints */
198 int nboundconss /**< number of bound constraints */
199 );
200
201/** prints derivation section header */
203 SCIP_CERTIFICATE* certificate, /**< certificate information */
204 SCIP_Bool isorigfile /**< shoud the line be printed to the origfile or the transfile */
205 );
206
207/** prints constraint */
209 SCIP_CERTIFICATE* certificate, /**< certificate information */
210 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
211 const char* consname, /**< name of the constraint */
212 const char sense, /**< sense of the constraint, i.e., G, L, or E */
213 SCIP_RATIONAL* side, /**< left/right-hand side */
214 int len, /**< number of nonzeros */
215 int* ind, /**< index array */
216 SCIP_RATIONAL** val /**< coefficient array */
217 );
218
219/** prints verification of row as a MIR cut (viewed as a split cut) */
221 SCIP_SET* set, /**< SCIP settings */
222 SCIP_LP* lp, /**< SCIP lp data structure */
223 SCIP_CERTIFICATE* certificate, /**< certificate information */
224 SCIP_PROB* prob, /**< SCIP problem data */
225 SCIP_ROW* row, /**< the row to be printed */
226 const char sense /**< sense of the constraint, i.e., G, L, or E */
227 );
228
229/** prints cutoff bound for objective value **/
231 SCIP* scip, /**< SCIP data structure */
232 SCIP_CERTIFICATE* certificate, /**< SCIP certificate */
233 SCIP_RATIONAL* bound, /**< the bound */
234 SCIP_Longint* certificateline /**< save the line index */
235 );
236
237/** create a new node data structure for the current node */
239 SCIP_SET* set, /**< general SCIP settings */
240 SCIP_PROB* prob, /**< SCIP problem data */
241 SCIP_CERTIFICATE* certificate, /**< SCIP certificate */
242 SCIP_AGGRROW* aggrrow, /**< agrrrow that results from the aggregation */
243 SCIP_ROW** aggrrows, /**< array of rows used fo the aggregation */
244 SCIP_Real* weights, /**< array of weights */
245 int naggrrows, /**< length of the arrays */
246 SCIP_Bool local, /**< true if local bound information can be used */
247 SCIP_Longint* certificateline /**< pointer to store the certificate line index or NULL */
248 );
249
250/** prints a variable bound to the problem section of the certificate file and returns line index */
252 SCIP_CERTIFICATE* certificate, /**< certificate information */
253 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
254 const char* boundname, /**< name of the bound constraint */
255 SCIP_VAR* var, /**< variable to print the bound cons for */
256 SCIP_RATIONAL* boundval, /**< value of the bound */
257 SCIP_Bool isupper /**< is it the upper bound? */
258 );
259
260/** installs updated node data in parent node */
262 SCIP_CERTIFICATE* certificate, /**< certificate information */
263 SCIP_NODE* node, /**< node data structure */
264 SCIP_Longint fileindex, /**< index of new bound */
265 SCIP_RATIONAL* newbound /**< pointer to value of new bound, NULL if infeasible */
266 );
267
268/** prints a dual bound from an exact lp solution */
270 SCIP_CERTIFICATE* certificate, /**< scip certificate struct */
271 SCIP_LPEXACT* lpexact, /**< the exact lp */
272 SCIP_SET* set, /**< scip settings */
273 SCIP_NODE* node, /**< the current node */
274 SCIP_PROB* prob, /**< problem data */
275 SCIP_Bool usefarkas /**< should an infeasibility proof be printed? */
276 );
277
278/** prints a dual bound from an exact lp solution
279 *
280 * in case of a bound change (branching), this happens before the bound change is processed;
281 * therefore we add the option to give on varindex, boundchgindex pair to pass directly to the method
282 */
284 SCIP_CERTIFICATE* certificate, /**< scip certificate struct */
285 SCIP_LPEXACT* lpexact, /**< the exact lp */
286 SCIP_NODE* node, /**< current node */
287 SCIP_SET* set, /**< scip settings */
288 SCIP_PROB* prob, /**< problem data */
289 SCIP_Bool lowerchanged, /**< to the modified indices address a change in lb or ub? */
290 int modifiedvarindex, /**< index of modified variable, or -1 */
291 SCIP_Longint boundchangeindex, /**< index of unprocessed bound change in the certificate, or -1 */
292 SCIP_Real psval /**< the pseudo obj value */
293 );
294
295/** prints the bound that a node inherits from its parent to the certificate */
297 SCIP_SET* set, /**< general SCIP settings */
298 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
299 SCIP_NODE* node /**< node data */
300 );
301
302/** updates the parent certificate node data when branching */
304 SCIP_SET* set, /**< general SCIP settings */
305 SCIP_CERTIFICATE* certificate, /**< certificate information */
306 SCIP_STAT* stat, /**< dynamic problem statistics */
307 SCIP_LP* lp, /**< LP informations */
308 SCIP_NODE* node, /**< node data */
309 SCIP_VAR* branchvar, /**< the variable that gets branched on */
310 SCIP_BOUNDTYPE boundtype, /**< the bounding type */
311 SCIP_Real newbound /**< the new bound */
312 );
313
314/** create a new node data structure for the current node */
316 SCIP_CERTIFICATE* certificate, /**< SCIP certificate */
317 SCIP_STAT* stat, /**< problem statistics */
318 SCIP_NODE* node /**< new node, that was created */
319 );
320
321/** create a new split info structure for the current cut */
323 SCIP* scip /**< SCIP data structure */
324 );
325
326/** free all aggregation information */
328 SCIP* scip /**< global SCIP data structure */
329 );
330
331/** free all mir information */
333 SCIP* scip /**< global SCIP data structure */
334 );
335
336/** free aggregation information */
338 SCIP_SET* set, /**< general SCIP settings */
339 SCIP_CERTIFICATE* certificate, /**< SCIP certificate structure */
340 SCIP_LP* lp, /**< SCIP lp data structure */
341 SCIP_AGGREGATIONINFO* aggrinfo, /**< SCIP aggregation info */
342 SCIP_ROW* row /**< new row, that info should be stored for */
343 );
344
345/** free mir information for row */
347 SCIP_SET* set, /**< general SCIP settings */
348 SCIP_CERTIFICATE* certificate, /**< SCIP certificate structure */
349 SCIP_LP* lp, /**< SCIP lp data structure */
350 SCIP_MIRINFO* mirinfo, /**< SCIP mir info */
351 SCIP_ROW* row /**< row that should be freed, or NULL if not needed */
352 );
353
354/** free information that is possibly still stored about this row in the certificate structure */
356 SCIP* scip, /**< SCIP data structure */
357 SCIP_ROW* row /**< a SCIP row */
358 );
359
360/** create a new aggregation info for a row */
362 SCIP* scip, /**< SCIP data structure */
363 SCIP_AGGRROW* aggrrow, /**< agrrrow that results from the aggregation */
364 SCIP_ROW** aggrrows, /**< array of rows used fo the aggregation */
365 SCIP_Real* weights, /**< array of weights */
366 int naggrrows, /**< length of the arrays */
367 SCIP_ROW** negslackrows, /**< array of rows that are added implicitly with negative slack */
368 SCIP_Real* negslackweights, /**< array of negative slack weights */
369 int nnegslackrows /**< length of the negative slack array */
370 );
371
372/** prints unsplitting information to proof section */
374 SCIP_SET* set, /**< general SCIP settings */
375 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
376 SCIP_NODE* node /**< node data */
377 );
378
379/** prints RTP section with lowerbound and upperbound range */
381 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
382 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
383 SCIP_RATIONAL* lowerbound, /**< pointer to lower bound on the objective */
384 SCIP_RATIONAL* upperbound /**< pointer to upper bound on the objective */
385 );
386
387/** prints the last part of the certificate header (RTP range/sol, ...) */
389 SCIP* scip, /**< SCIP data structure */
390 SCIP_Bool isorigfile, /**< should the original solution be printed or in transformed space */
391 SCIP_SET* set, /**< general SCIP settings */
392 SCIP_CERTIFICATE* certificate /**< certificate information */
393 );
394
395/** prints the last part of the certificate header (RTP range/sol, ...) */
397 SCIP* scip, /**< SCIP data structure */
398 SCIP_CERTIFICATE* certificate /**< certificate information */
399 );
400
401/** prints RTP section for infeasibility */
403 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
404 SCIP_Bool isorigfile /**< should the original solution be printed or in transformed space */
405 );
406
407/** updates the current derived bound of the node with newbound, if newbound is better */
409 SCIP_CERTIFICATE* certificate, /**< certificate information */
410 SCIP_NODE* node, /**< node data structure */
411 SCIP_Longint fileindex, /**< index of new bound's proof */
412 SCIP_RATIONAL* newbound /**< value of new bound */
413 );
414
415/** sets the last bound index for the certificate */
417 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
418 SCIP_Longint index /**< index of new bound */
419 );
420
421/** returns the last bound index for the certificate */
423 SCIP_CERTIFICATE* certificate /**< certificate data structure */
424 );
425
426/** returns the index for a row in the certificate
427 *
428 * @todo let this method return LONG_MAX if row is not in the hashmap; add method to check existence, and to insert an
429 * element, and use these throughout the SCIP core
430 */
432 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
433 SCIP_ROWEXACT* row, /**< row to consider */
434 SCIP_Bool rhs /**< whether we want the index for the rhs or the lhs */
435 );
436
437/** prints a proof that boundchange is leads to infeasibility */
439 SCIP* scip, /**< SCIP data structure */
440 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
441 SCIP_VAR* var, /**< variable */
442 SCIP_RATIONAL* lb, /**< lower bound */
443 SCIP_RATIONAL* ub, /**< upper bound */
444 SCIP_Longint lbindex, /**< index of the lower bound */
445 SCIP_Longint ubindex /**< index of the upper bound */
446 );
447
448/** prints a proof for a new global bound */
450 SCIP* scip, /**< SCIP data structure */
451 SCIP_CERTIFICATE* certificate, /**< SCIP certificate */
452 SCIP_VAR* var, /**< variable */
453 SCIP_BOUNDTYPE boundtype, /**< Whether we have an upper bound or a lower bound */
454 SCIP_RATIONAL* value, /**< value of the bound */
455 SCIP_Longint certificateindex /**< index in the certificate */
456 );
457
458/* prints information for constraint to certificate file */
460 SCIP* scip, /**< SCIP data structure */
461 SCIP_CONS* cons /**< constraint */
462 );
463
464/** returns the index of the given constraint in the certificate */
466 SCIP_CERTIFICATE* certificate, /**< certificate data structure */
467 SCIP_CONS* cons, /**< constraint */
468 SCIP_RATIONAL* lhs, /**< lhs of the constraint */
469 SCIP_RATIONAL* rhs, /**< rhs of the constraint */
470 SCIP_Bool useRhs /**< whether to return the index of the rhs or lhs */
471 );
472
473
474#ifdef __cplusplus
475}
476#endif
477
478#endif
static long bound
SCIP_RETCODE SCIPcertificatePrintInheritedBound(SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
SCIP_RETCODE SCIPcertificatePrintAggrrow(SCIP_SET *set, SCIP_PROB *prob, SCIP_CERTIFICATE *certificate, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_Bool local, SCIP_Longint *certificateline)
SCIP_RETCODE SCIPcertificatePrintDualboundPseudo(SCIP_CERTIFICATE *certificate, SCIP_LPEXACT *lpexact, SCIP_NODE *node, SCIP_SET *set, SCIP_PROB *prob, SCIP_Bool lowerchanged, int modifiedvarindex, SCIP_Longint boundchangeindex, SCIP_Real psval)
SCIP_RETCODE SCIPcertificatePrintResult(SCIP *scip, SCIP_Bool isorigfile, SCIP_SET *set, SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPconsPrintCertificateExactLinear(SCIP *scip, SCIP_CONS *cons)
void SCIPcertificateFree(SCIP_CERTIFICATE **certificate)
SCIP_CERTIFICATE * SCIPgetCertificate(SCIP *scip)
SCIP_RETCODE SCIPcertificateNewNodeData(SCIP_CERTIFICATE *certificate, SCIP_STAT *stat, SCIP_NODE *node)
SCIP_RETCODE SCIPcertificateClearMirinfo(SCIP *scip)
SCIP_Longint SCIPcertificateGetRowIndex(SCIP_CERTIFICATE *certificate, SCIP_ROWEXACT *row, SCIP_Bool rhs)
SCIP_RETCODE SCIPcertificatePrintMirCut(SCIP_SET *set, SCIP_LP *lp, SCIP_CERTIFICATE *certificate, SCIP_PROB *prob, SCIP_ROW *row, const char sense)
SCIP_RETCODE SCIPcertificateUpdateParentData(SCIP_CERTIFICATE *certificate, SCIP_NODE *node, SCIP_Longint fileindex, SCIP_RATIONAL *newbound)
SCIP_RETCODE SCIPcertificateInitTransFile(SCIP *scip)
SCIP_RETCODE SCIPcertificateSetLastBoundIndex(SCIP_CERTIFICATE *certificate, SCIP_Longint index)
SCIP_RETCODE SCIPcertificateFreeMirInfo(SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_LP *lp, SCIP_MIRINFO *mirinfo, SCIP_ROW *row)
void SCIPcertificatePrintRtpInfeas(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
void SCIPcertificatePrintVersionHeader(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
void SCIPcertificatePrintDerHeader(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile)
SCIP_RETCODE SCIPcertificateUpdateBoundData(SCIP_CERTIFICATE *certificate, SCIP_NODE *node, SCIP_Longint fileindex, SCIP_RATIONAL *newbound)
SCIP_RETCODE SCIPcertificateSaveFinalbound(SCIP *scip, SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificatePrintDualboundExactLP(SCIP_CERTIFICATE *certificate, SCIP_LPEXACT *lpexact, SCIP_SET *set, SCIP_NODE *node, SCIP_PROB *prob, SCIP_Bool usefarkas)
SCIP_RETCODE SCIPcertificatePrintGlobalBound(SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_RATIONAL *value, SCIP_Longint certificateindex)
SCIP_Longint SCIPcertificateGetLastBoundIndex(SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificatePrintProofRational(SCIP_CERTIFICATE *certificate, SCIP_RATIONAL *val)
SCIP_Bool SCIPcertificateIsEnabled(SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificatePrintCutoffBound(SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_RATIONAL *bound, SCIP_Longint *certificateline)
SCIP_Longint SCIPcertificateGetConsIndex(SCIP_CERTIFICATE *certificate, SCIP_CONS *cons, SCIP_RATIONAL *lhs, SCIP_RATIONAL *rhs, SCIP_Bool useRhs)
void SCIPcertificatePrintConsHeader(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nconss, int nboundconss)
SCIP_RETCODE SCIPcertificateClearAggrinfo(SCIP *scip)
void SCIPcertificatePrintIntHeader(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nintvars)
SCIP_RETCODE SCIPcertificateExit(SCIP *scip)
SCIP_Longint SCIPcertificateGetCurrentIndex(SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificatePrintUnsplitting(SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_NODE *node)
SCIP_RETCODE SCIPcertificateInit(SCIP *scip, SCIP_CERTIFICATE *certificate, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Bool SCIPcertificateEnsureLastBoundInfoConsistent(SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_Real newbound, SCIP_Bool needsglobal)
SCIP_RETCODE SCIPcertificateFreeRowInfo(SCIP *scip, SCIP_ROW *row)
SCIP_RETCODE SCIPcertificateFreeAggrInfo(SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_LP *lp, SCIP_AGGREGATIONINFO *aggrinfo, SCIP_ROW *row)
SCIP_RETCODE SCIPcertificateSetAndPrintObjective(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, BMS_BLKMEM *blkmem, SCIP_RATIONAL **coefs, int nvars)
SCIP_RETCODE SCIPcertificatePrintCutoffConflictingBounds(SCIP *scip, SCIP_CERTIFICATE *certificate, SCIP_VAR *var, SCIP_RATIONAL *lb, SCIP_RATIONAL *ub, SCIP_Longint lbindex, SCIP_Longint ubindex)
SCIP_RETCODE SCIPcertificatePrintBoundCons(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *boundname, SCIP_VAR *var, SCIP_RATIONAL *boundval, SCIP_Bool isupper)
SCIP_RETCODE SCIPcertificateCreate(SCIP_CERTIFICATE **certificate, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Real SCIPcertificateGetFilesize(SCIP_CERTIFICATE *certificate)
SCIP_RETCODE SCIPcertificatePrintCons(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *consname, const char sense, SCIP_RATIONAL *side, int len, int *ind, SCIP_RATIONAL **val)
void SCIPcertificatePrintProofMessage(SCIP_CERTIFICATE *certificate, const char *formatstr,...)
SCIP_RETCODE SCIPcertificatePrintRtpRange(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, SCIP_RATIONAL *lowerbound, SCIP_RATIONAL *upperbound)
void SCIPcertificatePrintProblemComment(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *formatstr,...)
SCIP_RETCODE SCIPcertificateUpdateBranchingData(SCIP_SET *set, SCIP_CERTIFICATE *certificate, SCIP_STAT *stat, SCIP_LP *lp, SCIP_NODE *node, SCIP_VAR *branchvar, SCIP_BOUNDTYPE boundtype, SCIP_Real newbound)
SCIP_RETCODE SCIPcertificateNewAggrInfo(SCIP *scip, SCIP_AGGRROW *aggrrow, SCIP_ROW **aggrrows, SCIP_Real *weights, int naggrrows, SCIP_ROW **negslackrows, SCIP_Real *negslackweights, int nnegslackrows)
void SCIPcertificatePrintProofComment(SCIP_CERTIFICATE *certificate, const char *formatstr,...)
SCIP_RETCODE SCIPcertificateNewMirInfo(SCIP *scip)
void SCIPcertificatePrintProblemMessage(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, const char *formatstr,...)
SCIP_RETCODE SCIPcertificatePrintProblemRational(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, SCIP_RATIONAL *val)
void SCIPcertificatePrintVarHeader(SCIP_CERTIFICATE *certificate, SCIP_Bool isorigfile, int nvars)
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:141
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:437
wrapper functions to map file i/o to standard or zlib file i/o
Definition: heur_padm.c:135
type definitions for certificate output
type definitions for constraints and constraint handlers
type definitions for cuts
enum SCIP_BoundType SCIP_BOUNDTYPE
Definition: type_lp.h:60
type definitions for exact LP management
type definitions for message output methods
type definitions for storing and manipulating the main problem
type definitions for rational numbers
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for global SCIP settings
type definitions for storing primal CIP solutions
type definitions for problem statistics
type definitions for branch and bound tree
type definitions for problem variables