Detailed Description
pseudo-Boolean file reader (opb format)
This file reader parses the opb format and is also used by the wbo reader for the wbo format. For a detailed description of this format see
The syntax of the input file format can be described by a simple Backus-Naur form. <formula> is the start symbol of this grammar.
<formula>::= <sequence_of_comments> [<objective>] | [<softheader>] <sequence_of_comments_or_constraints>
<sequence_of_comments>::= <comment> [<sequence_of_comments>] <comment>::= "*" <any_sequence_of_characters_other_than_EOL> <EOL> <sequence_of_comments_or_constraints>::=<comment_or_constraint> [<sequence_of_comments_or_constraints>] <comment_or_constraint>::=<comment>|<constraint>
<objective>::= "min:" <zeroOrMoreSpace> <sum> ";" <constraint>::= <sum> <relational_operator> <zeroOrMoreSpace> <integer> <zeroOrMoreSpace> ";"
<sum>::= <weightedterm> | <weightedterm> <sum> <weightedterm>::= <integer> <oneOrMoreSpace> <term> <oneOrMoreSpace>
<integer>::= <unsigned_integer> | "+" <unsigned_integer> | "-" <unsigned_integer> <unsigned_integer>::= <digit> | <digit><unsigned_integer>
<relational_operator>::= "\>=" | "="
<variablename>::= "x" <unsigned_integer>
<oneOrMoreSpace>::= " " [<oneOrMoreSpace>] <zeroOrMoreSpace>::= [" " <zeroOrMoreSpace>]
For linear pseudo-Boolean instances, <term> is defined as
<term>::=<variablename>
For non-linear instances, <term> is defined as
<term>::= <oneOrMoreLiterals> <oneOrMoreLiterals>::= <literal> | <literal> <oneOrMoreSpace> <oneOrMoreLiterals> <literal>::= <variablename> | "~"<variablename>
For wbo-files are the following additional/changed things possible.
<softheader>::= "soft:" [<unsigned integer>] ";"
<comment_or_constraint>::=<comment>|<constraint>|<softconstraint>
<softconstraint>::= "[" <zeroOrMoreSpace> <unsigned integer> <zeroOrMoreSpace> "]" <constraint>
Definition in file reader_opb.c.
#include "blockmemshell/memory.h"
#include <ctype.h>
#include "scip/cons_and.h"
#include "scip/cons_indicator.h"
#include "scip/cons_knapsack.h"
#include "scip/cons_linear.h"
#include "scip/cons_logicor.h"
#include "scip/cons_pseudoboolean.h"
#include "scip/cons_setppc.h"
#include "scip/cons_varbound.h"
#include "scip/debug.h"
#include "scip/pub_cons.h"
#include "scip/pub_fileio.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_reader.h"
#include "scip/pub_var.h"
#include "scip/reader_opb.h"
#include "scip/scip_cons.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_reader.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_var.h"
#include <stdlib.h>
#include <string.h>
#include <strings.h>
Go to the source code of this file.
Macros | |
#define | READER_NAME "opbreader" |
#define | READER_DESC "file reader for pseudo-Boolean problem in opb format" |
#define | READER_EXTENSION "opb" |
#define | GENCONSNAMES TRUE /* remove if no constraint names should be generated */ |
#define | LINEAROBJECTIVE |
#define | INDICATORVARNAME "indicatorvar" /* standard part of name for all indicator variables */ |
#define | INDICATORSLACKVARNAME "indslack" /* standard part of name for all indicator slack variables; should be the same in cons_indicator */ |
#define | TOPCOSTCONSNAME "topcostcons" /* standard name for artificial topcost constraint in wbo problems */ |
#define | OPB_MAX_LINELEN 65536 |
#define | OPB_MAX_PUSHEDTOKENS 2 |
#define | OPB_INIT_COEFSSIZE 8192 |
Typedefs | |
typedef enum OpbExpType | OPBEXPTYPE |
typedef enum OpbSense | OPBSENSE |
typedef struct OpbInput | OPBINPUT |
Enumerations | |
enum | OpbExpType { OPB_EXP_NONE, OPB_EXP_UNSIGNED, OPB_EXP_SIGNED } |
enum | OpbSense { OPB_SENSE_NOTHING, OPB_SENSE_LE, OPB_SENSE_GE, OPB_SENSE_EQ } |
Functions | |
static void | syntaxError (SCIP *scip, OPBINPUT *opbinput, const char *msg) |
static SCIP_Bool | hasError (OPBINPUT *opbinput) |
static SCIP_Bool | isDelimChar (char c) |
static SCIP_Bool | isTokenChar (char c) |
static SCIP_Bool | isValueChar (char c, char nextc, SCIP_Bool firstchar, SCIP_Bool *hasdot, OPBEXPTYPE *exptype) |
static SCIP_Bool | getNextLine (SCIP *scip, OPBINPUT *opbinput) |
static void | swapPointers (char **pointer1, char **pointer2) |
static SCIP_Bool | getNextToken (SCIP *scip, OPBINPUT *opbinput) |
static void | pushToken (OPBINPUT *opbinput) |
static void | pushBufferToken (OPBINPUT *opbinput) |
static void | swapTokenBuffer (OPBINPUT *opbinput) |
static SCIP_Bool | isEndLine (OPBINPUT *opbinput) |
static SCIP_Bool | isSign (OPBINPUT *opbinput, int *sign) |
static SCIP_Bool | isValue (SCIP *scip, OPBINPUT *opbinput, SCIP_Real *value) |
static SCIP_Bool | isSense (OPBINPUT *opbinput, OPBSENSE *sense) |
static SCIP_Bool | isStartingSoftConstraintWeight (SCIP *scip, OPBINPUT *opbinput) |
static SCIP_Bool | isEndingSoftConstraintWeight (SCIP *scip, OPBINPUT *opbinput) |
static SCIP_RETCODE | createVariable (SCIP *scip, SCIP_VAR **var, char *name) |
static SCIP_RETCODE | getVariableOrTerm (SCIP *scip, OPBINPUT *opbinput, SCIP_VAR ***vars, int *nvars, int *varssize) |
static SCIP_RETCODE | readCoefficients (SCIP *const scip, OPBINPUT *const opbinput, char *const name, SCIP_VAR ***linvars, SCIP_Real **lincoefs, int *const nlincoefs, SCIP_VAR ****terms, SCIP_Real **termcoefs, int **ntermvars, int *const ntermcoefs, SCIP_Bool *const newsection, SCIP_Bool *const isNonlinear, SCIP_Bool *const issoftcons, SCIP_Real *const weight) |
static SCIP_RETCODE | setObjective (SCIP *const scip, OPBINPUT *const opbinput, const char *sense, SCIP_VAR **const linvars, SCIP_Real *const coefs, int const ncoefs, SCIP_VAR ***const terms, SCIP_Real *const termcoefs, int *const ntermvars, int const ntermcoefs) |
static SCIP_RETCODE | readConstraints (SCIP *scip, OPBINPUT *opbinput, int *nNonlinearConss) |
static SCIP_RETCODE | getMaxAndConsDim (SCIP *scip, OPBINPUT *opbinput, SCIP_Real *objoffset) |
static SCIP_RETCODE | readOPBFile (SCIP *scip, OPBINPUT *opbinput, const char *filename) |
static SCIP_RETCODE | getBinVarsRepresentatives (SCIP *const scip, SCIP_VAR **const vars, int const nvars, SCIP_Bool const transformed) |
static SCIP_RETCODE | getActiveVariables (SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, SCIP_Real *constant, SCIP_Bool transformed) |
static SCIP_RETCODE | computeAndConstraintInfos (SCIP *const scip, SCIP_Bool const transformed, SCIP_VAR ***resvars, int *nresvars, SCIP_VAR ****andvars, int **nandvars, SCIP_Bool *const existandconshdlr, SCIP_Bool *const existands) |
static void | clearBuffer (char *linebuffer, int *linecnt) |
static void | writeBuffer (SCIP *scip, FILE *file, char *linebuffer, int *linecnt) |
static void | appendBuffer (SCIP *scip, FILE *file, char *linebuffer, int *linecnt, const char *extension) |
static SCIP_RETCODE | writeOpbObjective (SCIP *const scip, FILE *const file, SCIP_VAR **const vars, int const nvars, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, SCIP_OBJSENSE const objsense, SCIP_Real const objscale, SCIP_Real const objoffset, char const *const multisymbol, SCIP_Bool const existands, SCIP_Bool const transformed) |
static SCIP_RETCODE | printNLRow (SCIP *const scip, FILE *const file, char const *const type, SCIP_VAR **const vars, SCIP_Real const *const vals, int const nvars, SCIP_Real lhs, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, SCIP_Longint weight, SCIP_Longint *const mult, char const *const multisymbol) |
static SCIP_RETCODE | printNonLinearCons (SCIP *const scip, FILE *const file, SCIP_VAR **const vars, SCIP_Real *const vals, int const nvars, SCIP_Real const lhs, SCIP_Real const rhs, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, SCIP_Longint weight, SCIP_Bool const transformed, char const *const multisymbol) |
static SCIP_RETCODE | printRow (SCIP *scip, FILE *file, const char *type, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Longint weight, SCIP_Longint *mult, const char *multisymbol) |
static SCIP_RETCODE | printLinearCons (SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Real lhs, SCIP_Real rhs, SCIP_Longint weight, SCIP_Bool transformed, const char *multisymbol) |
static SCIP_RETCODE | printPBRow (SCIP *const scip, FILE *const file, const char *type, SCIP_VAR **const linvars, SCIP_Real *const linvals, int const nlinvars, SCIP_VAR ***const termvars, int *const ntermvars, SCIP_Real *const termvals, int const ntermvals, SCIP_Bool **const negatedarrays, SCIP_VAR *const indvar, SCIP_Real lhs, SCIP_Longint *mult, const char *multisymbol) |
static SCIP_RETCODE | printPseudobooleanCons (SCIP *const scip, FILE *const file, SCIP_VAR **const linvars, SCIP_Real *const linvals, int const nlinvars, SCIP_VAR ***const termvars, int *const ntermvars, SCIP_Real *const termvals, int const ntermvals, SCIP_VAR *const indvar, SCIP_Real const lhs, SCIP_Real const rhs, SCIP_Bool transformed, const char *multisymbol) |
static void | determineTotalNumberLinearConss (SCIP *const scip, SCIP_CONS **const conss, int const nconss, int *nlinearconss, int *nsplitlinearconss) |
static SCIP_RETCODE | writeOpbConstraints (SCIP *const scip, FILE *const file, SCIP_CONS **const conss, int const nconss, SCIP_VAR **const vars, int const nvars, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, char const *const multisymbol, SCIP_Bool const existandconshdlr, SCIP_Bool const existands, SCIP_Bool const transformed) |
static SCIP_RETCODE | writeOpbFixedVars (SCIP *const scip, FILE *const file, SCIP_VAR **vars, int nvars, SCIP_HASHTABLE *const printedfixing, char const *const multisymbol, SCIP_Bool const transformed) |
static SCIP_RETCODE | writeOpbRelevantAnds (SCIP *const scip, FILE *const file, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, SCIP_HASHTABLE *const printedfixing, char const *const multisymbol, SCIP_Bool const transformed) |
static SCIP_RETCODE | writeOpb (SCIP *scip, FILE *file, const char *name, SCIP_Bool transformed, SCIP_OBJSENSE objsense, SCIP_Real objscale, SCIP_Real objoffset, SCIP_VAR **vars, int nvars, SCIP_CONS **conss, int nconss, SCIP_VAR **const resvars, int const nresvars, SCIP_VAR **const *const andvars, int const *const nandvars, SCIP_Bool const existandconshdlr, SCIP_Bool const existands, SCIP_RESULT *result) |
SCIP_RETCODE | SCIPreadOpb (SCIP *scip, SCIP_READER *reader, const char *filename, SCIP_RESULT *result) |
SCIP_RETCODE | SCIPwriteOpb (SCIP *scip, FILE *file, const char *name, SCIP_Bool transformed, SCIP_OBJSENSE objsense, SCIP_Real objscale, SCIP_Real objoffset, SCIP_VAR **vars, int nvars, int nbinvars, int nintvars, int nimplvars, int ncontvars, SCIP_VAR **fixedvars, int nfixedvars, SCIP_CONS **conss, int nconss, SCIP_Bool genericnames, SCIP_RESULT *result) |
static | SCIP_DECL_READERCOPY (readerCopyOpb) |
static | SCIP_DECL_READERREAD (readerReadOpb) |
static | SCIP_DECL_READERWRITE (readerWriteOpb) |
SCIP_RETCODE | SCIPincludeReaderOpb (SCIP *scip) |
Variables | |
static const char | commentchars [] = "*" |
Macro Definition Documentation
◆ READER_NAME
#define READER_NAME "opbreader" |
Definition at line 125 of file reader_opb.c.
Referenced by readConstraints(), SCIP_DECL_READERCOPY(), SCIPincludeReaderOpb(), and writeOpb().
◆ READER_DESC
#define READER_DESC "file reader for pseudo-Boolean problem in opb format" |
Definition at line 126 of file reader_opb.c.
Referenced by SCIPincludeReaderOpb().
◆ READER_EXTENSION
#define READER_EXTENSION "opb" |
Definition at line 127 of file reader_opb.c.
Referenced by SCIPincludeReaderOpb().
◆ GENCONSNAMES
#define GENCONSNAMES TRUE /* remove if no constraint names should be generated */ |
Definition at line 129 of file reader_opb.c.
◆ LINEAROBJECTIVE
#define LINEAROBJECTIVE |
Definition at line 130 of file reader_opb.c.
◆ INDICATORVARNAME
#define INDICATORVARNAME "indicatorvar" /* standard part of name for all indicator variables */ |
Definition at line 135 of file reader_opb.c.
Referenced by printPBRow(), printRow(), readConstraints(), SCIPwriteOpb(), and writeOpbObjective().
◆ INDICATORSLACKVARNAME
#define INDICATORSLACKVARNAME "indslack" /* standard part of name for all indicator slack variables; should be the same in cons_indicator */ |
Definition at line 136 of file reader_opb.c.
Referenced by SCIPwriteOpb().
◆ TOPCOSTCONSNAME
#define TOPCOSTCONSNAME "topcostcons" /* standard name for artificial topcost constraint in wbo problems */ |
Definition at line 137 of file reader_opb.c.
Referenced by readOPBFile(), and writeOpbObjective().
◆ OPB_MAX_LINELEN
#define OPB_MAX_LINELEN 65536 |
size of the line buffer for reading or writing
Definition at line 142 of file reader_opb.c.
Referenced by appendBuffer(), getNextToken(), printNLRow(), printPBRow(), printRow(), readConstraints(), SCIPreadOpb(), writeBuffer(), writeOpb(), writeOpbFixedVars(), writeOpbObjective(), and writeOpbRelevantAnds().
◆ OPB_MAX_PUSHEDTOKENS
#define OPB_MAX_PUSHEDTOKENS 2 |
Definition at line 143 of file reader_opb.c.
Referenced by pushBufferToken(), pushToken(), and SCIPreadOpb().
◆ OPB_INIT_COEFSSIZE
#define OPB_INIT_COEFSSIZE 8192 |
Definition at line 144 of file reader_opb.c.
Referenced by readCoefficients().
Typedef Documentation
◆ OPBEXPTYPE
typedef enum OpbExpType OPBEXPTYPE |
Definition at line 153 of file reader_opb.c.
◆ OPBSENSE
Definition at line 162 of file reader_opb.c.
◆ OPBINPUT
typedef struct OpbInput OPBINPUT |
Definition at line 188 of file reader_opb.c.
Enumeration Type Documentation
◆ OpbExpType
enum OpbExpType |
Section in OPB File
Enumerator | |
---|---|
OPB_EXP_NONE | |
OPB_EXP_UNSIGNED | |
OPB_EXP_SIGNED |
Definition at line 147 of file reader_opb.c.
◆ OpbSense
enum OpbSense |
Enumerator | |
---|---|
OPB_SENSE_NOTHING | |
OPB_SENSE_LE | |
OPB_SENSE_GE | |
OPB_SENSE_EQ |
Definition at line 155 of file reader_opb.c.
Function Documentation
◆ syntaxError()
issues an error message and marks the OPB data to have errors
- Parameters
-
scip SCIP data structure opbinput OPB reading data msg error message
Definition at line 197 of file reader_opb.c.
References NULL, SCIPerrorMessage, and TRUE.
Referenced by getVariableOrTerm(), readCoefficients(), and readConstraints().
◆ hasError()
returns whether a syntax error was detected
- Parameters
-
opbinput OPB reading data
Definition at line 221 of file reader_opb.c.
References NULL.
Referenced by readCoefficients(), readConstraints(), readOPBFile(), and setObjective().
◆ isDelimChar()
|
static |
returns whether the given character is a token delimiter
- Parameters
-
c input character
Definition at line 232 of file reader_opb.c.
Referenced by getNextToken().
◆ isTokenChar()
|
static |
returns whether the given character is a single token
- Parameters
-
c input character
Definition at line 253 of file reader_opb.c.
Referenced by getNextToken(), and getVariableOrTerm().
◆ isValueChar()
|
static |
returns whether the current character is member of a value string
- Parameters
-
c input character nextc next input character firstchar is the given character the first char of the token? hasdot pointer to update the dot flag exptype pointer to update the exponent type
Definition at line 276 of file reader_opb.c.
References FALSE, NULL, OPB_EXP_NONE, OPB_EXP_SIGNED, OPB_EXP_UNSIGNED, and TRUE.
Referenced by getNextToken().
◆ getNextLine()
reads the next line from the input file into the line buffer; skips comments; returns whether a line could be read
- Parameters
-
scip SCIP data structure opbinput OPB reading data
Definition at line 320 of file reader_opb.c.
References commentchars, FALSE, NULL, SCIP_CALL_ABORT, SCIPcalcMemGrowSize(), SCIPdebugMsg, SCIPfgets(), SCIPreallocBlockMemoryArray, and TRUE.
Referenced by getNextToken().
◆ swapPointers()
|
static |
swaps the addresses of two pointers
- Parameters
-
pointer1 first pointer pointer2 second pointer
Definition at line 375 of file reader_opb.c.
Referenced by getNextToken(), pushBufferToken(), pushToken(), and swapTokenBuffer().
◆ getNextToken()
reads the next token from the input file into the token buffer; returns whether a token was read
- Parameters
-
scip SCIP data structure opbinput OPB reading data
Definition at line 389 of file reader_opb.c.
References FALSE, getNextLine(), isDelimChar(), isTokenChar(), isValueChar(), NULL, OPB_EXP_NONE, OPB_MAX_LINELEN, SCIP_Bool, SCIPdebugMsg, swapPointers(), and TRUE.
Referenced by getVariableOrTerm(), readCoefficients(), and readConstraints().
◆ pushToken()
|
static |
puts the current token on the token stack, such that it is read at the next call to getNextToken()
- Parameters
-
opbinput OPB reading data
Definition at line 490 of file reader_opb.c.
References NULL, OPB_MAX_PUSHEDTOKENS, and swapPointers().
Referenced by getVariableOrTerm(), and readCoefficients().
◆ pushBufferToken()
|
static |
puts the buffered token on the token stack, such that it is read at the next call to getNextToken()
- Parameters
-
opbinput OPB reading data
Definition at line 503 of file reader_opb.c.
References NULL, OPB_MAX_PUSHEDTOKENS, and swapPointers().
Referenced by readCoefficients().
◆ swapTokenBuffer()
|
static |
swaps the current token with the token buffer
- Parameters
-
opbinput OPB reading data
Definition at line 516 of file reader_opb.c.
References NULL, and swapPointers().
Referenced by readCoefficients().
◆ isEndLine()
checks whether the current token is a section identifier, and if yes, switches to the corresponding section
- Parameters
-
opbinput OPB reading data
Definition at line 527 of file reader_opb.c.
References FALSE, NULL, and TRUE.
Referenced by readCoefficients(), readConstraints(), and setObjective().
◆ isSign()
returns whether the current token is a sign
- Parameters
-
opbinput OPB reading data sign pointer to update the sign
Definition at line 541 of file reader_opb.c.
References FALSE, NULL, and TRUE.
Referenced by readCoefficients(), and readConstraints().
◆ isValue()
returns whether the current token is a value
- Parameters
-
scip SCIP data structure opbinput OPB reading data value pointer to store the value (unchanged, if token is no value)
Definition at line 568 of file reader_opb.c.
References FALSE, NULL, SCIPinfinity(), and TRUE.
Referenced by readCoefficients(), and readConstraints().
◆ isSense()
returns whether the current token is an equation sense
- Parameters
-
opbinput OPB reading data sense pointer to store the equation sense, or NULL
Definition at line 602 of file reader_opb.c.
References FALSE, NULL, OPB_SENSE_EQ, OPB_SENSE_GE, OPB_SENSE_LE, and TRUE.
Referenced by readCoefficients(), and readConstraints().
◆ isStartingSoftConstraintWeight()
returns whether the current token is a value
- Parameters
-
scip SCIP data structure opbinput OPB reading data
Definition at line 633 of file reader_opb.c.
References FALSE, NULL, and TRUE.
Referenced by readCoefficients().
◆ isEndingSoftConstraintWeight()
returns whether the current token is a value
- Parameters
-
scip SCIP data structure opbinput OPB reading data
Definition at line 649 of file reader_opb.c.
References FALSE, NULL, and TRUE.
Referenced by readCoefficients().
◆ createVariable()
|
static |
create binary variable with given name
- Parameters
-
scip SCIP data structure var pointer to store the variable name name for the variable
Definition at line 665 of file reader_opb.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIPaddVar(), SCIPcreateVar(), SCIPdebugMsg, SCIPgetBoolParam(), and SCIPreleaseVar().
Referenced by getVariableOrTerm(), and readConstraints().
◆ getVariableOrTerm()
|
static |
returns the variable with the given name, or creates a new variable if it does not exist
- Parameters
-
scip SCIP data structure opbinput OPB reading data vars pointer to store the variables nvars pointer to store the number of variables varssize pointer to store the varsize, if changed (should already be initialized)
Definition at line 697 of file reader_opb.c.
References createVariable(), FALSE, getNextToken(), isTokenChar(), NULL, pushToken(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPcalcMemGrowSize(), SCIPfindVar(), SCIPgetNegatedVar(), SCIPreallocBufferArray, syntaxError(), and TRUE.
Referenced by readCoefficients().
◆ readCoefficients()
|
static |
reads an objective or constraint with name and coefficients
- Parameters
-
scip SCIP data structure opbinput OPB reading data name pointer to store the name of the line; must be at least of size OPB_MAX_LINELEN linvars pointer to store the array with linear variables (must be freed by caller) lincoefs pointer to store the array with linear coefficients (must be freed by caller) nlincoefs pointer to store the number of linear coefficients terms pointer to store the array with nonlinear variables (must be freed by caller) termcoefs pointer to store the array with nonlinear coefficients (must be freed by caller) ntermvars pointer to store the number of nonlinear variables in the terms (must be freed by caller) ntermcoefs pointer to store the number of nonlinear coefficients newsection pointer to store whether a new section was encountered isNonlinear pointer to store if we have a nonlinear constraint issoftcons pointer to store whether it is a soft constraint (for wbo files) weight pointer to store the weight of the soft constraint
Definition at line 773 of file reader_opb.c.
References FALSE, getNextToken(), getVariableOrTerm(), hasError(), isEndingSoftConstraintWeight(), isEndLine(), isSense(), isSign(), isStartingSoftConstraintWeight(), isValue(), NULL, OPB_INIT_COEFSSIZE, pushBufferToken(), pushToken(), SCIP_Bool, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPdebugMsg, SCIPdebugMsgPrint, SCIPfeof(), SCIPfreeBufferArray, SCIPgetNConss(), SCIPgetNVars(), SCIPisIntegral(), SCIPisZero(), SCIPmemccpy(), SCIPreallocBufferArray, SCIPvarGetName(), SCIPwarningMessage(), swapTokenBuffer(), syntaxError(), and TRUE.
Referenced by readConstraints().
◆ setObjective()
|
static |
set the objective section
- Parameters
-
scip SCIP data structure opbinput OPB reading data sense objective sense linvars array of linear variables coefs array of objective values for linear variables ncoefs number of coefficients for linear part terms array with nonlinear variables termcoefs array of objective values for nonlinear variables ntermvars number of nonlinear variables in the terms ntermcoefs number of nonlinear coefficients
Definition at line 1126 of file reader_opb.c.
References ARTIFICIALVARNAMEPREFIX, FALSE, hasError(), isEndLine(), NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MAXIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPaddCons(), SCIPaddOrigObjoffset(), SCIPaddVar(), SCIPchgVarBranchPriority(), SCIPchgVarObj(), SCIPcreateConsAnd(), SCIPcreateConsPseudoboolean(), SCIPcreateVar(), SCIPdebugAddSolVal, SCIPdebugGetSolVal, SCIPdebugPrintCons, SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasLE(), SCIPisFeasZero(), SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarIsNegated(), and TRUE.
Referenced by readConstraints().
◆ readConstraints()
|
static |
reads the constraints section
- Parameters
-
scip SCIP data structure opbinput OPB reading data nNonlinearConss pointer to store number of nonlinear constraints
Definition at line 1334 of file reader_opb.c.
References createVariable(), FALSE, getNextToken(), hasError(), INDICATORVARNAME, isEndLine(), isSense(), isSign(), isValue(), NULL, OPB_MAX_LINELEN, OPB_SENSE_EQ, OPB_SENSE_GE, OPB_SENSE_LE, OPB_SENSE_NOTHING, readCoefficients(), READER_NAME, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPchgVarObj(), SCIPcreateConsLinear(), SCIPcreateConsPseudoboolean(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPerrorMessage, SCIPfreeBufferArrayNull, SCIPgetBoolParam(), SCIPinfinity(), SCIPisInfinity(), SCIPreleaseCons(), SCIPsnprintf(), setObjective(), syntaxError(), and TRUE.
Referenced by readOPBFile().
◆ getMaxAndConsDim()
|
static |
tries to read the first comment line which usually contains information about the max size of "and" products
- Parameters
-
scip SCIP data structure opbinput OPB reading data objoffset pointer to store objective offset
Definition at line 1567 of file reader_opb.c.
References commentchars, delimchars, FALSE, NULL, SCIP_Bool, SCIP_OKAY, SCIPdebugMsg, SCIPfeof(), SCIPfgets(), and TRUE.
Referenced by readOPBFile().
◆ readOPBFile()
|
static |
reads an OPB file
- Parameters
-
scip SCIP data structure opbinput OPB reading data filename name of the input file
Definition at line 1658 of file reader_opb.c.
References FALSE, getMaxAndConsDim(), hasError(), NULL, readConstraints(), SCIP_CALL, SCIP_Longint, SCIP_NOFILE, SCIP_OKAY, SCIP_Real, SCIPaddCons(), SCIPaddOrigObjoffset(), SCIPallocBufferArray, SCIPcreateConsLinear(), SCIPcreateProb(), SCIPdebugPrintCons, SCIPerrorMessage, SCIPfclose(), SCIPfeof(), SCIPfloor(), SCIPfopen(), SCIPfreeBufferArray, SCIPgetNVars(), SCIPgetVars(), SCIPinfinity(), SCIPisIntegral(), SCIPisZero(), SCIPprintSysError(), SCIPreleaseCons(), SCIPvarGetObj(), TOPCOSTCONSNAME, and TRUE.
Referenced by SCIPreadOpb().
◆ getBinVarsRepresentatives()
|
static |
transforms given and constraint variables to the corresponding active or negated variables
- Parameters
-
scip SCIP data structure vars vars array to get active variables for nvars pointer to number of variables and values in vars and vals array transformed transformed constraint?
Definition at line 1757 of file reader_opb.c.
References NULL, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPdebugMsg, SCIPgetBinvarRepresentative(), SCIPgetNegatedVar(), SCIPisEQ(), SCIPisZero(), and SCIPvarGetOrigvarSum().
Referenced by computeAndConstraintInfos().
◆ getActiveVariables()
|
static |
transforms given variables, scalars, and constant to the corresponding active variables, scalars, and constant
- Parameters
-
scip SCIP data structure vars vars array to get active variables for scalars scalars a_1, ..., a_n in linear sum a_1*x_1 + ... + a_n*x_n + c nvars pointer to number of variables and values in vars and vals array constant pointer to constant c in linear sum a_1*x_1 + ... + a_n*x_n + c transformed transformed constraint?
Definition at line 1821 of file reader_opb.c.
References NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPgetProbvarLinearSum(), SCIPreallocBufferArray, SCIPvarGetOrigvarSum(), and TRUE.
Referenced by printLinearCons(), printNonLinearCons(), and printPseudobooleanCons().
◆ computeAndConstraintInfos()
|
static |
- Parameters
-
scip SCIP data structure transformed transformed problem? resvars pointer to store all resultant variables nresvars pointer to store the number of all resultant variables andvars pointer to store to all resultant variables their corresponding active( or negated) and-constraint variables nandvars pointer to store the number of all corresponding and-variables to their corresponding resultant variable existandconshdlr pointer to store whether the and-constrainthandler exists existands pointer to store if their exists some and-constraints
Definition at line 1866 of file reader_opb.c.
References a, FALSE, getBinVarsRepresentatives(), NULL, r, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPallocBufferArray, SCIPallocMemoryArray, SCIPconsGetHdlr(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPdebug, SCIPdebugMsg, SCIPduplicateMemoryArray, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetNOrigConss(), SCIPgetNVarsAnd(), SCIPgetOrigConss(), SCIPgetResultantAnd(), SCIPgetVarsAnd(), SCIPprintVar(), SCIPreallocMemoryArray, SCIPsortedvecFindPtr(), SCIPsortPtrPtrInt(), SCIPwarningMessage(), and TRUE.
Referenced by SCIPwriteOpb().
◆ clearBuffer()
|
static |
clears the given line buffer
- Parameters
-
linebuffer line linecnt number of characters in line
Definition at line 2070 of file reader_opb.c.
References NULL.
Referenced by printNLRow(), printPBRow(), printRow(), writeBuffer(), writeOpbFixedVars(), writeOpbObjective(), and writeOpbRelevantAnds().
◆ writeBuffer()
|
static |
ends the given line with '\0' and prints it to the given file stream
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) linebuffer line linecnt number of characters in line
Definition at line 2085 of file reader_opb.c.
References clearBuffer(), NULL, OPB_MAX_LINELEN, and SCIPinfoMessage().
Referenced by appendBuffer(), printNLRow(), printPBRow(), printRow(), writeOpbFixedVars(), writeOpbObjective(), and writeOpbRelevantAnds().
◆ appendBuffer()
|
static |
appends extension to line and prints it to the give file stream if the line buffer get full
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) linebuffer line buffer linecnt number of characters in line extension string to extent the line
Definition at line 2108 of file reader_opb.c.
References NULL, OPB_MAX_LINELEN, and writeBuffer().
Referenced by printNLRow(), printPBRow(), printRow(), writeOpbFixedVars(), writeOpbObjective(), and writeOpbRelevantAnds().
◆ writeOpbObjective()
|
static |
write objective function
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used vars array with active (binary) variables nvars number of active variables in the problem resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables objsense objective sense objscale scalar applied to objective function; external objective value is extobj = objsense * objscale * (intobj + objoffset) objoffset objective offset from bound shifting and fixing multisymbol the multiplication symbol to use between coefficient and variable existands does some and-constraints exist? transformed TRUE iff problem is the transformed problem
Definition at line 2131 of file reader_opb.c.
References a, appendBuffer(), clearBuffer(), FALSE, INDICATORVARNAME, NULL, OPB_MAX_LINELEN, SCIP_Bool, SCIP_INVALIDDATA, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OBJSENSE_MAXIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPABORT, SCIPconsGetHdlr(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindCons(), SCIPfindConshdlr(), SCIPgetCapacityKnapsack(), SCIPgetNVarsKnapsack(), SCIPgetNVarsLinear(), SCIPgetNVarsSetppc(), SCIPgetRhsLinear(), SCIPgetVarsKnapsack(), SCIPgetVarsLinear(), SCIPgetVarsSetppc(), SCIPinfoMessage(), SCIPisIntegral(), SCIPisZero(), SCIPround(), SCIPsnprintf(), SCIPsortedvecFindPtr(), SCIPvarGetIndex(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarIsNegated(), TOPCOSTCONSNAME, TRUE, w, and writeBuffer().
Referenced by writeOpb().
◆ printNLRow()
|
static |
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) type row type ("=" or ">=") vars array of variables vals array of values nvars number of variables lhs left hand side resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables weight if we found a soft constraint this is the weight, otherwise 0 mult multiplier for the coefficients multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 2503 of file reader_opb.c.
References a, appendBuffer(), clearBuffer(), NULL, OPB_MAX_LINELEN, SCIP_Bool, SCIP_INVALIDDATA, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPinfoMessage(), SCIPisIntegral(), SCIPisZero(), SCIPround(), SCIPsnprintf(), SCIPsortedvecFindPtr(), SCIPvarGetIndex(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarIsNegated(), and writeBuffer().
Referenced by printNonLinearCons().
◆ printNonLinearCons()
|
static |
prints given maybe non-linear constraint information in OPB format to file stream
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) vars array of variables vals array of coefficients values (or NULL if all coefficient values are 1) nvars number of variables lhs left hand side rhs right hand side resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables weight if we found a soft constraint this is the weight, otherwise 0 transformed transformed constraint? multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 2637 of file reader_opb.c.
References getActiveVariables(), NULL, printNLRow(), SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPisEQ(), and SCIPisInfinity().
Referenced by writeOpbConstraints().
◆ printRow()
|
static |
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) type row type ("=" or ">=") vars array of variables vals array of values nvars number of variables lhs left hand side weight if we found a soft constraint this is the weight, otherwise 0 mult multiplier for the coefficients multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 2734 of file reader_opb.c.
References appendBuffer(), clearBuffer(), INDICATORVARNAME, NULL, OPB_MAX_LINELEN, SCIP_Bool, SCIP_INVALIDDATA, SCIP_Longint, SCIP_LONGINT_MAX, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPinfoMessage(), SCIPisIntegral(), SCIPisZero(), SCIPround(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarIsNegated(), and writeBuffer().
Referenced by printLinearCons().
◆ printLinearCons()
|
static |
prints given linear constraint information in OPB format to file stream
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) vars array of variables vals array of coefficients values (or NULL if all coefficient values are 1) nvars number of variables lhs left hand side rhs right hand side weight if we found a soft constraint this is the weight, otherwise 0 transformed transformed constraint? multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 2829 of file reader_opb.c.
References getActiveVariables(), NULL, printRow(), SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPisEQ(), and SCIPisInfinity().
Referenced by writeOpbConstraints().
◆ printPBRow()
|
static |
- Parameters
-
scip SCIP data structure file output file (or NULL for standard output) type row type ("=" or ">=") linvars array of variables linvals array of values nlinvars number of variables termvars term array with array of variables to print ntermvars array with number of variables in each term termvals array of coefficient values for non-linear variables ntermvals number non-linear variables in the problem negatedarrays array of arrays to know which variable in a non-linear part is negated indvar indicator variable, or NULL lhs left hand side mult multiplier for the coefficients multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 2918 of file reader_opb.c.
References appendBuffer(), clearBuffer(), INDICATORVARNAME, NULL, OPB_MAX_LINELEN, SCIP_Bool, SCIP_INVALIDDATA, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPinfoMessage(), SCIPisIntegral(), SCIPisZero(), SCIPround(), SCIPsnprintf(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarIsNegated(), and writeBuffer().
Referenced by printPseudobooleanCons().
◆ printPseudobooleanCons()
|
static |
prints given pseudo boolean constraint information in OPB format to file stream
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used linvars array with variables of linear part linvals array of coefficients values of linear part nlinvars number variables in linear part of the problem termvars term array with array of variables to print ntermvars array with number of variables in each term termvals array of coefficient values for non-linear variables ntermvals number non-linear variables in the problem indvar indicator variable, or NULL lhs left hand side of constraint rhs right hand side of constraint transformed should the transformed problem be printed ? multisymbol the multiplication symbol to use between coefficient and variable
Definition at line 3055 of file reader_opb.c.
References BMSclearMemoryArray, getActiveVariables(), NULL, printPBRow(), SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPgetBinvarRepresentatives(), SCIPisEQ(), and SCIPisInfinity().
Referenced by writeOpbConstraints().
◆ determineTotalNumberLinearConss()
|
static |
determine total number of linear constraints split into lhs/rhs
- Parameters
-
scip SCIP data structure conss array with constraints of the problem nconss number of constraints in the problem nlinearconss pointer to store the total number of linear constraints nsplitlinearconss pointer to store the total number of linear constraints split into lhs/rhs
Definition at line 3207 of file reader_opb.c.
References NULL, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPgetLhsLinear(), SCIPgetLhsVarbound(), SCIPgetRhsLinear(), SCIPgetRhsVarbound(), and SCIPisInfinity().
Referenced by writeOpb().
◆ writeOpbConstraints()
|
static |
write constraints
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used conss array with constraints of the problem nconss number of constraints in the problem vars array with active (binary) variables nvars number of active variables in the problem resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables multisymbol the multiplication symbol to use between coefficient and variable existandconshdlr does and-constrainthandler exist? existands does some and-constraints exist? transformed TRUE iff problem is the transformed problem
Definition at line 3264 of file reader_opb.c.
References FALSE, NULL, printLinearCons(), printNonLinearCons(), printPseudobooleanCons(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_SETPPCTYPE_COVERING, SCIP_SETPPCTYPE_PACKING, SCIP_SETPPCTYPE_PARTITIONING, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPblkmem(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetConss(), SCIPconshdlrGetName(), SCIPconshdlrGetNConss(), SCIPconsIsEnabled(), SCIPconsIsTransformed(), SCIPduplicateBufferArray, SCIPerrorMessage, SCIPfindConshdlr(), SCIPfreeBufferArray, SCIPgetAndDatasPseudoboolean(), SCIPgetBinaryVarIndicator(), SCIPgetCapacityKnapsack(), SCIPgetIndVarPseudoboolean(), SCIPgetLhsLinear(), SCIPgetLhsPseudoboolean(), SCIPgetLhsVarbound(), SCIPgetLinDatasWithoutAndPseudoboolean(), SCIPgetLinearConsIndicator(), SCIPgetLinearConsPseudoboolean(), SCIPgetNAndsPseudoboolean(), SCIPgetNLinVarsWithoutAndPseudoboolean(), SCIPgetNVarsAnd(), SCIPgetNVarsKnapsack(), SCIPgetNVarsLinear(), SCIPgetNVarsLogicor(), SCIPgetNVarsSetppc(), SCIPgetRhsLinear(), SCIPgetRhsPseudoboolean(), SCIPgetRhsVarbound(), SCIPgetSlackVarIndicator(), SCIPgetTypeSetppc(), SCIPgetValsLinear(), SCIPgetVarsAnd(), SCIPgetVarsKnapsack(), SCIPgetVarsLinear(), SCIPgetVarsLogicor(), SCIPgetVarsSetppc(), SCIPgetVarVarbound(), SCIPgetVbdcoefVarbound(), SCIPgetVbdvarVarbound(), SCIPgetWeightsKnapsack(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPhashmapInsert(), SCIPinfinity(), SCIPinfoMessage(), SCIPisGT(), SCIPprintCons(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPwarningMessage(), and TRUE.
Referenced by writeOpb().
◆ writeOpbFixedVars()
|
static |
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used vars array with active (binary) variables nvars number of active variables in the problem printedfixing hashmap to store if a fixed variable was already printed multisymbol the multiplication symbol to use between coefficient and variable transformed TRUE iff problem is the transformed problem
Definition at line 3819 of file reader_opb.c.
References appendBuffer(), clearBuffer(), FALSE, NULL, OPB_MAX_LINELEN, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPgetBinvarRepresentative(), SCIPhashtableExists(), SCIPhashtableInsert(), SCIPisFeasIntegral(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetLbOriginal(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetUbLocal(), SCIPvarGetUbOriginal(), and writeBuffer().
Referenced by writeOpb().
◆ writeOpbRelevantAnds()
|
static |
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables printedfixing hashmap to store if a fixed variable was already printed multisymbol the multiplication symbol to use between coefficient and variable transformed TRUE iff problem is the transformed problem
Definition at line 3893 of file reader_opb.c.
References a, appendBuffer(), clearBuffer(), FALSE, NULL, OPB_MAX_LINELEN, r, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIPgetBinvarRepresentative(), SCIPhashtableInsert(), SCIPisFeasIntegral(), SCIPsnprintf(), SCIPsortedvecFindPtr(), SCIPvarGetLbLocal(), SCIPvarGetLbOriginal(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetUbLocal(), SCIPvarGetUbOriginal(), SCIPvarIsActive(), SCIPvarIsNegated(), TRUE, and writeBuffer().
Referenced by writeOpb().
◆ writeOpb()
|
static |
- Parameters
-
scip SCIP data structure file output file, or NULL if standard output should be used name problem name transformed TRUE iff problem is the transformed problem objsense objective sense objscale scalar applied to objective function; external objective value is extobj = objsense * objscale * (intobj + objoffset) objoffset objective offset from bound shifting and fixing vars array with active (binary) variables nvars number of active variables in the problem conss array with constraints of the problem nconss number of constraints in the problem resvars array of resultant variables nresvars number of resultant variables andvars corresponding array of and-variables nandvars array of numbers of corresponding and-variables existandconshdlr does and-constrainthandler exist? existands does some and-constraints exist? result pointer to store the result of the file writing call
Definition at line 4158 of file reader_opb.c.
References determineTotalNumberLinearConss(), NULL, OPB_MAX_LINELEN, READER_NAME, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_SUCCESS, SCIPblkmem(), SCIPgetBoolParam(), SCIPhashtableCreate(), SCIPhashtableFree(), SCIPinfoMessage(), SCIPsnprintf(), writeOpbConstraints(), writeOpbFixedVars(), writeOpbObjective(), and writeOpbRelevantAnds().
Referenced by SCIPwriteOpb().
◆ SCIP_DECL_READERCOPY()
|
static |
copy method for reader plugins (called when SCIP copies plugins)
Definition at line 4498 of file reader_opb.c.
References NULL, READER_NAME, SCIP_CALL, SCIP_OKAY, SCIPincludeReaderOpb(), and SCIPreaderGetName().
◆ SCIP_DECL_READERREAD()
|
static |
problem reading method of reader
Definition at line 4513 of file reader_opb.c.
References SCIP_CALL, SCIP_OKAY, and SCIPreadOpb().
◆ SCIP_DECL_READERWRITE()
|
static |
problem writing method of reader
Definition at line 4524 of file reader_opb.c.
References SCIP_CALL, SCIP_OKAY, and SCIPwriteOpb().
Variable Documentation
◆ commentchars
|
static |
Definition at line 190 of file reader_opb.c.
Referenced by getMaxAndConsDim(), and getNextLine().