(extended) MPS file reader
This reader/writer handles MPS files in extended MPS format, as it is used by CPLEX. In the extended format the limits on variable name lengths and coefficients are considerably relaxed. The columns in the format are then separated by whitespaces.
Definition in file reader_mps.c.
#include "blockmemshell/memory.h"#include <ctype.h>#include "scip/cons_and.h"#include "scip/cons_bounddisjunction.h"#include "scip/cons_nonlinear.h"#include "scip/cons_exactlinear.h"#include "scip/cons_indicator.h"#include "scip/cons_knapsack.h"#include "scip/cons_linear.h"#include "scip/cons_logicor.h"#include "scip/cons_setppc.h"#include "scip/cons_sos1.h"#include "scip/cons_sos2.h"#include "scip/cons_varbound.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_mps.h"#include "scip/rational.h"#include "scip/scip_cons.h"#include "scip/scip_exact.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>Go to the source code of this file.
Data Structures | |
| struct | ConsNameFreq |
Macros | |
| #define | READER_NAME "mpsreader" |
| #define | READER_DESC "file reader for MIQPs in IBM's Mathematical Programming System format" |
| #define | READER_EXTENSION "mps" |
| #define | DEFAULT_LINEARIZE_ANDS TRUE |
| #define | DEFAULT_AGGRLINEARIZATION_ANDS TRUE |
| #define | MPS_MAX_LINELEN 1024 |
| #define | MPS_MAX_NAMELEN 256 |
| #define | MPS_MAX_VALUELEN 26 |
| #define | MPS_MAX_FIELDLEN 20 |
| #define | PATCH_CHAR '_' |
| #define | BLANK ' ' |
| #define | MPSINTCOMP_LEVEL(IMPLINTLEVEL) |
Functions | |
| static SCIP_RETCODE | mpsinputCreate (SCIP *scip, MPSINPUT **mpsi, SCIP_FILE *fp) |
| static void | mpsinputFree (SCIP *scip, MPSINPUT **mpsi) |
| static MPSSECTION | mpsinputSection (const MPSINPUT *mpsi) |
| static const char * | mpsinputField0 (const MPSINPUT *mpsi) |
| static const char * | mpsinputField1 (const MPSINPUT *mpsi) |
| static const char * | mpsinputField2 (const MPSINPUT *mpsi) |
| static const char * | mpsinputField3 (const MPSINPUT *mpsi) |
| static const char * | mpsinputField4 (const MPSINPUT *mpsi) |
| static const char * | mpsinputField5 (const MPSINPUT *mpsi) |
| static const char * | mpsinputObjname (const MPSINPUT *mpsi) |
| static SCIP_OBJSENSE | mpsinputObjsense (const MPSINPUT *mpsi) |
| static SCIP_Bool | mpsinputHasError (const MPSINPUT *mpsi) |
| static SCIP_Bool | mpsinputIsInteger (const MPSINPUT *mpsi) |
| static void | mpsinputSetSection (MPSINPUT *mpsi, MPSSECTION section) |
| static void | mpsinputSetProbname (MPSINPUT *mpsi, const char *probname) |
| static void | mpsinputSetObjname (MPSINPUT *mpsi, const char *objname) |
| static void | mpsinputSetObjsense (MPSINPUT *mpsi, SCIP_OBJSENSE sense) |
| static void | mpsinputSyntaxerror (MPSINPUT *mpsi) |
| static void | mpsinputEntryIgnored (SCIP *scip, MPSINPUT *mpsi, const char *what, const char *what_name, const char *entity, const char *entity_name, SCIP_VERBLEVEL verblevel) |
| static void | clearFrom (char *buf, unsigned int pos) |
| static void | patchField (char *buf, int beg, int end) |
| static SCIP_Bool | mpsinputReadLine (MPSINPUT *mpsi) |
| static void | mpsinputInsertField4 (MPSINPUT *mpsi, const char *str) |
| static void | mpsinputInsertName (MPSINPUT *mpsi, const char *name, SCIP_Bool second) |
| static SCIP_RETCODE | addVarNameToStorage (SCIP *scip, const char ***varnames, int *varnamessize, int *nvars, const char *colname) |
| static SCIP_RETCODE | addConsNameToStorage (SCIP *scip, const char ***consnames, int *consnamessize, int *ncons, const char *rowname) |
| static SCIP_RETCODE | readName (SCIP *scip, MPSINPUT *mpsi) |
| static SCIP_RETCODE | readObjsen (SCIP *scip, MPSINPUT *mpsi) |
| static SCIP_RETCODE | readObjname (SCIP *scip, MPSINPUT *mpsi) |
| static SCIP_RETCODE | readRows (MPSINPUT *mpsi, SCIP *scip, const char ***consnames, int *consnamessize, int *nconsnames) |
| static SCIP_RETCODE | readRowsExact (MPSINPUT *mpsi, SCIP *scip, const char ***consnames, int *consnamessize, int *nconsnames) |
| static SCIP_RETCODE | readCols (MPSINPUT *mpsi, SCIP *scip, const char ***varnames, int *varnamessize, int *nvarnames) |
| static SCIP_RETCODE | readColsExact (MPSINPUT *mpsi, SCIP *scip, const char ***varnames, int *varnamessize, int *nvarnames) |
| static SCIP_RETCODE | readRhs (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readRhsExact (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readRanges (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readRangesExact (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readBounds (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readBoundsExact (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readSOS (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readQMatrix (MPSINPUT *mpsi, SCIP_Bool isQuadObj, SCIP *scip) |
| static SCIP_RETCODE | readQCMatrix (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readIndicators (MPSINPUT *mpsi, SCIP *scip) |
| static SCIP_RETCODE | readMps (SCIP *scip, const char *filename, const char ***varnames, const char ***consnames, int *varnamessize, int *consnamessize, int *nvarnames, int *nconsnames) |
| static SCIP_RETCODE | readMpsExact (SCIP *scip, const char *filename, const char ***varnames, const char ***consnames, int *varnamessize, int *consnamessize, int *nvarnames, int *nconsnames) |
| static | SCIP_DECL_HASHGETKEY (hashGetKeyNamefreq) |
| static | SCIP_DECL_HASHKEYEQ (hashKeyEqString) |
| static | SCIP_DECL_HASHGETKEY (hashGetKeyVar) |
| static | SCIP_DECL_HASHKEYEQ (hashKeyEqVar) |
| static | SCIP_DECL_HASHKEYVAL (hashKeyValVar) |
| static unsigned int | computeFieldWidth (unsigned int width) |
| static void | printRecord (SCIP *scip, FILE *file, const char *col1, const char *col2, unsigned int maxnamelen) |
| static void | printStart (SCIP *scip, FILE *file, const char *col1, const char *col2, int maxnamelen) |
| static void | printEntry (SCIP *scip, FILE *file, const char *varname, const char *consname, SCIP_Real value, int *recordcnt, unsigned int maxnamelen) |
| static void | printRowType (SCIP *scip, FILE *file, SCIP_Real lhs, SCIP_Real rhs, const char *name) |
| static SCIP_RETCODE | initializeMatrix (SCIP *scip, SPARSEMATRIX **matrix, int slots) |
| static SCIP_RETCODE | checkSparseMatrixCapacity (SCIP *scip, SPARSEMATRIX *matrix, int capacity) |
| static void | freeMatrix (SCIP *scip, SPARSEMATRIX *matrix) |
| static SCIP_RETCODE | getLinearCoeffs (SCIP *scip, const char *consname, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool transformed, SPARSEMATRIX *matrix, SCIP_Real *rhs) |
| static SCIP_RETCODE | collectAggregatedVars (SCIP *scip, SCIP_VAR **vars, int nvars, SCIP_VAR ***aggvars, int *naggvars, int *saggvars, SCIP_HASHTABLE *varAggregated) |
| static SCIP_RETCODE | checkVarnames (SCIP *scip, SCIP_VAR **vars, int nvars, unsigned int *maxnamelen, const char ***varnames, SCIP_HASHMAP **varnameHashmap) |
| static SCIP_RETCODE | checkConsnames (SCIP *scip, SCIP_CONS **conss, int nconss, SCIP_Bool transformed, unsigned int *maxnamelen, const char ***consnames, SCIP_Bool *error) |
| static SCIP_Bool | writeVarIsIntegral (SCIP_VAR *var, int implintlevel) |
| static | SCIP_DECL_SORTPTRCOMP (mpsIntCompM2) |
| static void | printRhsSection (SCIP *scip, FILE *file, int nconss, const char **consnames, SCIP_Real *rhss, unsigned int maxnamelen, SCIP_Real objoffset) |
| static void | printRangeSection (SCIP *scip, FILE *file, SCIP_CONS **conss, int nconss, const char **consnames, SCIP_Bool transformed, unsigned int maxnamelen) |
| static void | printBoundSectionName (SCIP *scip, FILE *file) |
| static void | printBoundSection (SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_VAR **aggvars, int naggvars, SCIP_VAR **fixvars, int nfixvars, SCIP_Bool transformed, const char **varnames, SCIP_HASHTABLE *indicatorSlackHash, unsigned int maxnamelen) |
| static | SCIP_DECL_READERCOPY (readerCopyMps) |
| static | SCIP_DECL_READERFREE (readerFreeMps) |
| static | SCIP_DECL_READERREAD (readerReadMps) |
| static | SCIP_DECL_READERWRITE (readerWriteMps) |
| SCIP_RETCODE | SCIPincludeReaderMps (SCIP *scip) |
| SCIP_RETCODE | SCIPreadMps (SCIP *scip, SCIP_READER *reader, const char *filename, SCIP_RESULT *result, const char ***varnames, const char ***consnames, int *varnamessize, int *consnamessize, int *nvarnames, int *nconsnames) |
| SCIP_RETCODE | SCIPwriteMps (SCIP *scip, SCIP_READER *reader, FILE *file, const char *name, SCIP_Bool transformed, SCIP_OBJSENSE objsense, SCIP_Real objoffset, SCIP_Real objscale, SCIP_RATIONAL *objoffsetexact, SCIP_RATIONAL *objscaleexact, SCIP_VAR **vars, int nvars, int nbinvars, int nintvars, int nimplvars, int ncontvars, SCIP_VAR **fixedvars, int nfixedvars, SCIP_CONS **conss, int nconss, SCIP_RESULT *result) |
| #define READER_NAME "mpsreader" |
Definition at line 81 of file reader_mps.c.
| #define READER_DESC "file reader for MIQPs in IBM's Mathematical Programming System format" |
Definition at line 82 of file reader_mps.c.
| #define READER_EXTENSION "mps" |
Definition at line 83 of file reader_mps.c.
| #define DEFAULT_LINEARIZE_ANDS TRUE |
should possible "and" constraint be linearized when writing the mps file?
Definition at line 85 of file reader_mps.c.
| #define DEFAULT_AGGRLINEARIZATION_ANDS TRUE |
should an aggregated linearization for and constraints be used?
Definition at line 86 of file reader_mps.c.
| #define MPS_MAX_LINELEN 1024 |
Definition at line 92 of file reader_mps.c.
Referenced by mpsinputReadLine().
| #define MPS_MAX_NAMELEN 256 |
Definition at line 93 of file reader_mps.c.
Referenced by checkConsnames(), checkVarnames(), mpsinputSetObjname(), mpsinputSetProbname(), printRecord(), printStart(), readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readSOS(), SCIP_DECL_HASHKEYEQ(), and SCIPwriteMps().
| #define MPS_MAX_VALUELEN 26 |
Definition at line 94 of file reader_mps.c.
Referenced by printBoundSection(), printEntry(), printRecord(), and SCIPwriteMps().
| #define MPS_MAX_FIELDLEN 20 |
Definition at line 95 of file reader_mps.c.
Referenced by computeFieldWidth().
| #define PATCH_CHAR '_' |
Definition at line 97 of file reader_mps.c.
Referenced by patchField().
| #define BLANK ' ' |
Definition at line 98 of file reader_mps.c.
Referenced by clearFrom(), clearFrom(), clearFrom(), clearFrom(), mpsinputReadLine(), patchField(), smpsinputReadLine(), stoinputReadLine(), and timinputReadLine().
| #define MPSINTCOMP_LEVEL | ( | IMPLINTLEVEL | ) |
template implementation of mpsIntComp for given implied integral level
Definition at line 4324 of file reader_mps.c.
Referenced by SCIP_DECL_SORTPTRCOMP().
| typedef enum MpsSection MPSSECTION |
Definition at line 127 of file reader_mps.c.
| typedef struct MpsInput MPSINPUT |
Definition at line 153 of file reader_mps.c.
| typedef struct SparseMatrix SPARSEMATRIX |
Definition at line 164 of file reader_mps.c.
| typedef struct ConsNameFreq CONSNAMEFREQ |
Definition at line 172 of file reader_mps.c.
| enum MpsSection |
enum containing all mps sections
| Enumerator | |
|---|---|
| MPS_NAME | |
| MPS_OBJSEN | |
| MPS_OBJNAME | |
| MPS_ROWS | |
| MPS_USERCUTS | |
| MPS_LAZYCONS | |
| MPS_COLUMNS | |
| MPS_RHS | |
| MPS_RANGES | |
| MPS_BOUNDS | |
| MPS_SOS | |
| MPS_QUADOBJ | |
| MPS_QMATRIX | |
| MPS_QCMATRIX | |
| MPS_INDICATORS | |
| MPS_ENDATA | |
Definition at line 108 of file reader_mps.c.
|
static |
creates the mps input structure
| scip | SCIP data structure |
| mpsi | mps input structure |
| fp | file object for the input file |
Definition at line 176 of file reader_mps.c.
References assert(), FALSE, MPS_NAME, NULL, SCIP_CALL, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIPallocBlockMemory, and SCIPgetBoolParam().
Referenced by readMps(), and readMpsExact().
free the mps input structure
| scip | SCIP data structure |
| mpsi | mps input structure |
Definition at line 214 of file reader_mps.c.
References SCIPfreeBlockMemory.
Referenced by readMps(), and readMpsExact().
|
static |
returns the current section
| mpsi | mps input structure |
Definition at line 224 of file reader_mps.c.
References assert(), and NULL.
Referenced by readMps(), readMpsExact(), readRows(), and readRowsExact().
|
static |
return the current value of field 0
| mpsi | mps input structure |
Definition at line 235 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
return the current value of field 1
| mpsi | mps input structure |
Definition at line 246 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
return the current value of field 2
| mpsi | mps input structure |
Definition at line 257 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
return the current value of field 3
| mpsi | mps input structure |
Definition at line 268 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), and readSOS().
|
static |
return the current value of field 4
| mpsi | mps input structure |
Definition at line 279 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), and readSOS().
|
static |
return the current value of field 5
| mpsi | mps input structure |
Definition at line 290 of file reader_mps.c.
References assert(), and NULL.
Referenced by readCols(), readColsExact(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), and readSOS().
|
static |
returns the objective name
| mpsi | mps input structure |
Definition at line 301 of file reader_mps.c.
References assert(), and NULL.
Referenced by readCols(), readColsExact(), readRhs(), readRhsExact(), readRows(), and readRowsExact().
|
static |
returns the objective sense
| mpsi | mps input structure |
Definition at line 312 of file reader_mps.c.
References assert(), and NULL.
Referenced by readMps(), readMpsExact(), and readQMatrix().
returns if an error was detected
| mpsi | mps input structure |
Definition at line 323 of file reader_mps.c.
References assert(), NULL, and SCIP_Bool.
Referenced by readMps(), and readMpsExact().
returns the value of the Bool "is integer" in the mps input
| mpsi | mps input structure |
Definition at line 334 of file reader_mps.c.
References assert(), NULL, and SCIP_Bool.
Referenced by readCols(), and readColsExact().
|
static |
set the section in the mps input structure to given section
| mpsi | mps input structure |
| section | section that is set |
Definition at line 345 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
set the problem name in the mps input structure to given problem name
| mpsi | mps input structure |
| probname | name of the problem to set |
Definition at line 357 of file reader_mps.c.
References assert(), MPS_MAX_NAMELEN, NULL, and SCIPmemccpy().
Referenced by readName().
|
static |
set the objective name in the mps input structure to given objective name
| mpsi | mps input structure |
| objname | name of the objective function to set |
Definition at line 371 of file reader_mps.c.
References assert(), MPS_MAX_NAMELEN, NULL, and SCIPmemccpy().
Referenced by readObjname(), readRows(), and readRowsExact().
|
static |
set the objective sense in the mps input structure to given objective sense
| mpsi | mps input structure |
| sense | sense of the objective function |
Definition at line 385 of file reader_mps.c.
References assert(), and NULL.
Referenced by readObjsen().
|
static |
| mpsi | mps input structure |
Definition at line 396 of file reader_mps.c.
References assert(), MPS_ENDATA, NULL, SCIPerrorMessage, and TRUE.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readMps(), readMpsExact(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
method post a ignore message
| scip | SCIP data structure |
| mpsi | mps input structure |
| what | what get ignored |
| what_name | name of that object |
| entity | entity |
| entity_name | entity name |
| verblevel | SCIP verblevel for this message |
Definition at line 409 of file reader_mps.c.
References assert(), NULL, and SCIPverbMessage().
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
fill the line from pos up to column 80 with blanks.
| buf | buffer to clear |
| pos | position to start the clearing process |
Definition at line 431 of file reader_mps.c.
Referenced by mpsinputReadLine().
|
static |
change all blanks inside a field to PATCH_CHAR.
| buf | buffer to patch |
| beg | position to begin |
| end | position to end |
Definition at line 445 of file reader_mps.c.
References BLANK, i, and PATCH_CHAR.
Referenced by mpsinputReadLine().
read a mps format data line and parse the fields.
| mpsi | mps input structure |
Definition at line 466 of file reader_mps.c.
References assert(), BLANK, clearFrom(), FALSE, i, MPS_BOUNDS, MPS_COLUMNS, MPS_MAX_LINELEN, MPS_RANGES, MPS_RHS, MPS_ROWS, NULL, number, patchField(), SCIP_Bool, SCIPdebugMessage, SCIPfgets(), SCIPstrtok(), and TRUE.
Referenced by readBounds(), readBoundsExact(), readCols(), readColsExact(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRangesExact(), readRhs(), readRhsExact(), readRows(), readRowsExact(), and readSOS().
|
static |
Insert str as field 4 and shift all other fields up.
| mpsi | mps input structure |
| str | str to insert |
Definition at line 649 of file reader_mps.c.
References assert(), and NULL.
Referenced by readBounds(), and readBoundsExact().
Insert name as field 1 or 2 and shift all other fields up.
| mpsi | mps input structure |
| name | name to insert |
| second | insert as second field? |
Definition at line 663 of file reader_mps.c.
References assert(), NULL, and SCIP_Bool.
Referenced by readBounds(), readBoundsExact(), readRanges(), readRangesExact(), readRhs(), and readRhsExact().
|
static |
Add variable name to storage
| scip | SCIP data structure |
| varnames | the variable name storage |
| varnamessize | the size of the variable names storage |
| nvars | the number of variables |
| colname | the name of the variable |
Definition at line 687 of file reader_mps.c.
References assert(), NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPduplicateBlockMemoryArray, and SCIPensureBlockMemoryArray.
Referenced by readCols(), and readColsExact().
|
static |
Add constraint name to storage
| scip | SCIP data structure |
| consnames | the constraint name storage |
| consnamessize | the size of the constraint names storage |
| ncons | the number of constraint |
| rowname | the name of the constraint |
Definition at line 709 of file reader_mps.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPduplicateBlockMemoryArray, and SCIPensureBlockMemoryArray.
Referenced by readRows(), and readRowsExact().
|
static |
Process NAME section.
| scip | SCIP data structure |
| mpsi | mps input structure |
Definition at line 731 of file reader_mps.c.
References assert(), MPS_LAZYCONS, MPS_OBJNAME, MPS_OBJSEN, MPS_ROWS, MPS_USERCUTS, mpsinputField0(), mpsinputField1(), mpsinputReadLine(), mpsinputSetProbname(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_OKAY, and SCIPdebugMsg.
Referenced by readMps(), and readMpsExact().
|
static |
Process OBJSEN section. This Section is a CPLEX extension.
| scip | SCIP data structure |
| mpsi | mps input structure |
Definition at line 779 of file reader_mps.c.
References assert(), MPS_LAZYCONS, MPS_OBJNAME, MPS_ROWS, MPS_USERCUTS, mpsinputField0(), mpsinputField1(), mpsinputReadLine(), mpsinputSetObjsense(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_OBJSENSE_MAXIMIZE, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, and SCIPdebugMsg.
Referenced by readMps(), and readMpsExact().
|
static |
Process OBJNAME section. This Section is a CPLEX extension.
| scip | SCIP data structure |
| mpsi | mps input structure |
Definition at line 838 of file reader_mps.c.
References assert(), MPS_LAZYCONS, MPS_ROWS, MPS_USERCUTS, mpsinputField0(), mpsinputField1(), mpsinputReadLine(), mpsinputSetObjname(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_OKAY, and SCIPdebugMsg.
Referenced by readMps(), and readMpsExact().
|
static |
Process ROWS, USERCUTS, or LAZYCONS section.
| mpsi | mps input structure |
| scip | SCIP data structure |
| consnames | storage for the constraint names, or NULL |
| consnamessize | the size of the constraint names storage, or NULL |
| nconsnames | the number of stored constraint names, or NULL |
Definition at line 877 of file reader_mps.c.
References addConsNameToStorage(), FALSE, MPS_COLUMNS, MPS_LAZYCONS, MPS_ROWS, MPS_USERCUTS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputObjname(), mpsinputReadLine(), mpsinputSection(), mpsinputSetObjname(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, propagate, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPaddCons(), SCIPcreateConsLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPinfinity(), SCIPreleaseCons(), separate(), and TRUE.
Referenced by readMps().
|
static |
Process ROWS, USERCUTS, or LAZYCONS section. (exact version)
| mpsi | mps input structure |
| scip | SCIP data structure |
| consnames | storage for the constraint names, or NULL |
| consnamessize | the size of the constraint names storage, or NULL |
| nconsnames | the number of stored constraint names, or NULL |
Definition at line 973 of file reader_mps.c.
References addConsNameToStorage(), FALSE, MPS_COLUMNS, MPS_LAZYCONS, MPS_ROWS, MPS_USERCUTS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputObjname(), mpsinputReadLine(), mpsinputSection(), mpsinputSetObjname(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, propagate, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPaddCons(), SCIPbuffer(), SCIPcreateConsExactLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetInfinity(), SCIPrationalSetNegInfinity(), SCIPrationalSetReal(), SCIPreleaseCons(), separate(), and TRUE.
Referenced by readMpsExact().
|
static |
Process COLUMNS section.
| mpsi | mps input structure |
| scip | SCIP data structure |
| varnames | storage for the variable names, or NULL |
| varnamessize | the size of the variable names storage, or NULL |
| nvarnames | the number of stored variable names, or NULL |
Definition at line 1079 of file reader_mps.c.
References addVarNameToStorage(), assert(), MPS_MAX_NAMELEN, MPS_RHS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputIsInteger(), mpsinputObjname(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_READERROR, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VERBLEVEL_FULL, SCIPaddCoefLinear(), SCIPaddVar(), SCIPchgVarObj(), SCIPconsGetName(), SCIPcreateVar(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindCons(), SCIPfindVar(), SCIPgetBoolParam(), SCIPinfinity(), SCIPisInfinity(), SCIPisZero(), SCIPmemccpy(), SCIPreleaseVar(), SCIPvarGetName(), SCIPwarningMessage(), and var.
Referenced by readMps().
|
static |
Process COLUMNS section. (exact version)
| mpsi | mps input structure |
| scip | SCIP data structure |
| varnames | storage for the variable names, or NULL |
| varnamessize | the size of the variable names storage, or NULL |
| nvarnames | the number of stored variable names, or NULL |
Definition at line 1210 of file reader_mps.c.
References addVarNameToStorage(), assert(), MPS_MAX_NAMELEN, MPS_RHS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputIsInteger(), mpsinputObjname(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_OKAY, SCIP_READERROR, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VERBLEVEL_FULL, SCIPaddCoefExactLinear(), SCIPaddVar(), SCIPaddVarExactData(), SCIPbuffer(), SCIPchgVarObjExact(), SCIPcreateVar(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindCons(), SCIPfindVar(), SCIPgetBoolParam(), SCIPinfinity(), SCIPisExact(), SCIPmemccpy(), SCIPrationalCanonicalize(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsZero(), SCIPrationalSetString(), SCIPreleaseVar(), and var.
Referenced by readMpsExact().
|
static |
Process RHS section.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 1355 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_RANGES, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputInsertName(), mpsinputObjname(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPaddOrigObjoffset(), SCIPchgLhsLinear(), SCIPchgRhsLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPgetLhsLinear(), SCIPgetRhsLinear(), SCIPisInfinity(), SCIPisZero(), SCIPmemccpy(), and SCIPwarningMessage().
Referenced by readMps().
|
static |
Process RHS section (exact version).
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 1502 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_RANGES, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputInsertName(), mpsinputObjname(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPaddOrigObjoffset(), SCIPbuffer(), SCIPchgLhsExactLinear(), SCIPchgRhsExactLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPgetLhsExactLinear(), SCIPgetRhsExactLinear(), SCIPmemccpy(), SCIPrationalCanonicalize(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsNegInfinity(), SCIPrationalIsZero(), SCIPrationalSetString(), and SCIPwarningMessage().
Referenced by readMpsExact().
|
static |
Process RANGES section
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 1657 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputInsertName(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPchgLhsLinear(), SCIPchgRhsLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPgetLhsLinear(), SCIPgetRhsLinear(), SCIPisEQ(), SCIPisInfinity(), SCIPmemccpy(), and SCIPwarningMessage().
Referenced by readMps().
|
static |
Process RANGES section (exact version)
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 1797 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputInsertName(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPbuffer(), SCIPchgLhsExactLinear(), SCIPchgRhsExactLinear(), SCIPdebugMsg, SCIPfindCons(), SCIPgetLhsExactLinear(), SCIPgetRhsExactLinear(), SCIPmemccpy(), SCIPrationalAbs(), SCIPrationalAdd(), SCIPrationalCanonicalize(), SCIPrationalCreateBuffer(), SCIPrationalDiff(), SCIPrationalFreeBuffer(), SCIPrationalIsEQ(), SCIPrationalIsInfinity(), SCIPrationalIsNegative(), SCIPrationalIsNegInfinity(), SCIPrationalSetString(), and SCIPwarningMessage().
Referenced by readMpsExact().
|
static |
Process BOUNDS section.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 1956 of file reader_mps.c.
References assert(), FALSE, i, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputInsertField4(), mpsinputInsertName(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_INTEGER, SCIP_VERBLEVEL_NORMAL, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPchgVarLb(), SCIPchgVarType(), SCIPchgVarUb(), SCIPcreateConsBounddisjunction(), SCIPcreateVar(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPfindVar(), SCIPfreeBufferArrayNull, SCIPinfinity(), SCIPisFeasGT(), SCIPisFeasIntegral(), SCIPisFeasNegative(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPisZero(), SCIPmemccpy(), SCIPreallocBufferArray, SCIPreleaseCons(), SCIPreleaseVar(), SCIPsnprintf(), SCIPtightenVarLb(), SCIPtightenVarUb(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarIsImpliedIntegral(), SCIPwarningMessage(), TRUE, var, and vars.
Referenced by readMps().
|
static |
Process BOUNDS section.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 2329 of file reader_mps.c.
References assert(), FALSE, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_SOS, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputInsertField4(), mpsinputInsertName(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_INTEGER, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPaddVar(), SCIPaddVarExactData(), SCIPallocBufferArray, SCIPbuffer(), SCIPcalcMemGrowSize(), SCIPchgVarLbExact(), SCIPchgVarType(), SCIPchgVarUbExact(), SCIPcreateVar(), SCIPdebugMsg, SCIPerrorMessage, SCIPfindVar(), SCIPfreeBufferArrayNull, SCIPinfinity(), SCIPmemccpy(), SCIPrationalCanonicalize(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalGetReal(), SCIPrationalIsGT(), SCIPrationalIsGTReal(), SCIPrationalIsInfinity(), SCIPrationalIsIntegral(), SCIPrationalIsLT(), SCIPrationalIsNegative(), SCIPrationalIsZero(), SCIPrationalSetInfinity(), SCIPrationalSetNegInfinity(), SCIPrationalSetReal(), SCIPrationalSetString(), SCIPreallocBufferArray, SCIPreleaseVar(), SCIPtightenVarLbExact(), SCIPtightenVarUbExact(), SCIPvarGetLbGlobal(), SCIPvarGetLbGlobalExact(), SCIPvarGetName(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPvarGetUbGlobalExact(), SCIPvarIsImpliedIntegral(), SCIPwarningMessage(), TRUE, and var.
Referenced by readMpsExact().
|
static |
Process SOS section.
We read the SOS section, which is a nonstandard section introduced by CPLEX.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 2680 of file reader_mps.c.
References assert(), FALSE, MPS_ENDATA, MPS_INDICATORS, MPS_MAX_NAMELEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, propagate, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_READERROR, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPaddCons(), SCIPaddVarSOS1(), SCIPaddVarSOS2(), SCIPconsGetName(), SCIPcreateConsSOS1(), SCIPcreateConsSOS2(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPerrorMessage, SCIPfindVar(), SCIPisExact(), SCIPmemccpy(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetName(), SCIPwarningMessage(), separate(), TRUE, and var.
Referenced by readMps(), and readMpsExact().
|
static |
Process QMATRIX or QUADOBJ section.
| mpsi | mps input structure |
| isQuadObj | whether we actually read a QUADOBJ section |
| scip | SCIP data structure |
Definition at line 2880 of file reader_mps.c.
References assert(), FALSE, MPS_ENDATA, MPS_INDICATORS, MPS_QCMATRIX, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputObjsense(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, propagate, SCIP_Bool, SCIP_CALL, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_READERROR, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIP_VERBLEVEL_NORMAL, SCIPaddCons(), SCIPaddVar(), SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPconsGetName(), SCIPcreateConsQuadraticNonlinear(), SCIPcreateVar(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPerrorMessage, SCIPfindVar(), SCIPfreeBufferArray, SCIPinfinity(), SCIPisExact(), SCIPreallocBufferArray, SCIPreleaseCons(), SCIPreleaseVar(), SCIPvarGetName(), SCIPwarningMessage(), separate(), and TRUE.
Referenced by readMps(), and readMpsExact().
|
static |
Process QCMATRIX section.
We read the QCMATRIX section, which is a nonstandard section introduced by CPLEX.
We replace the corresponding linear constraint by a quadratic constraint which contains the original linear constraint plus the quadratic part specified in the QCMATRIX.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 3099 of file reader_mps.c.
References assert(), MPS_ENDATA, MPS_INDICATORS, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, mpsinputEntryIgnored(), mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputField5(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_READERROR, SCIP_Real, SCIP_VERBLEVEL_NORMAL, SCIPaddCons(), SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPconsGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPcreateConsQuadraticNonlinear(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPdelCons(), SCIPerrorMessage, SCIPfindCons(), SCIPfindVar(), SCIPfreeBufferArray, SCIPgetLhsLinear(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPisExact(), SCIPreallocBufferArray, SCIPreleaseCons(), SCIPvarGetName(), and SCIPwarningMessage().
Referenced by readMps(), and readMpsExact().
|
static |
Process INDICATORS section.
We read the INDICATORS section, which is a nonstandard section introduced by CPLEX. Note that CPLEX does not allow ranged rows.
If the linear constraints are equations or ranged rows, we generate two indicator constraints.
The section has to come after the QMATRIX* sections.
| mpsi | mps input structure |
| scip | SCIP data structure |
Definition at line 3289 of file reader_mps.c.
References assert(), FALSE, i, MPS_ENDATA, MPS_MAX_NAMELEN, mpsinputField0(), mpsinputField1(), mpsinputField2(), mpsinputField3(), mpsinputField4(), mpsinputReadLine(), mpsinputSetSection(), mpsinputSyntaxerror(), NULL, propagate, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_READERROR, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPaddCons(), SCIPallocBufferArray, SCIPchgLhsLinear(), SCIPconsGetHdlr(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPcreateConsIndicator(), SCIPcreateConsIndicatorLinConsPure(), SCIPdebugMsg, SCIPdebugPrintCons, SCIPerrorMessage, SCIPfindCons(), SCIPfindVar(), SCIPfreeBufferArray, SCIPgetLhsLinear(), SCIPgetNegatedVar(), SCIPgetNVarsLinear(), SCIPgetRhsLinear(), SCIPgetValsLinear(), SCIPgetVarsLinear(), SCIPinfinity(), SCIPisExact(), SCIPisInfinity(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetType(), separate(), TRUE, var, and vars.
Referenced by readMps(), and readMpsExact().
|
static |
Read LP in "MPS File Format".
A specification of the MPS format can be found at
http://plato.asu.edu/ftp/mps_format.txt, ftp://ftp.caam.rice.edu/pub/people/bixby/miplib/mps_format,
and in the
CPLEX Reference Manual
This routine should read all valid MPS format files. What it will not do, is to find all cases where a file is ill formed. If this happens it may complain and read nothing or read "something".
| scip | SCIP data structure |
| filename | name of the input file |
| varnames | storage for the variable names, or NULL |
| consnames | storage for the constraint names, or NULL |
| varnamessize | the size of the variable names storage, or NULL |
| consnamessize | the size of the constraint names storage, or NULL |
| nvarnames | the number of stored variable names, or NULL |
| nconsnames | the number of stored constraint names, or NULL |
Definition at line 3504 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_COLUMNS, MPS_ENDATA, MPS_INDICATORS, MPS_LAZYCONS, MPS_OBJNAME, MPS_OBJSEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_RANGES, MPS_RHS, MPS_ROWS, MPS_SOS, MPS_USERCUTS, mpsinputCreate(), mpsinputFree(), mpsinputHasError(), mpsinputObjsense(), mpsinputSection(), mpsinputSyntaxerror(), NULL, readBounds(), readCols(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRanges(), readRhs(), readRows(), readSOS(), SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_NOFILE, SCIP_READERROR, SCIPcreateProb(), SCIPerrorMessage, SCIPfclose(), SCIPfopen(), SCIPprintSysError(), SCIPsetObjsense(), and TRUE.
Referenced by SCIPreadMps().
|
static |
Read LP in "MPS File Format" (version for exact solving mode, numbers can also be rationals).
A specification of the MPS format can be found at
http://plato.asu.edu/ftp/mps_format.txt, ftp://ftp.caam.rice.edu/pub/people/bixby/miplib/mps_format,
and in the
CPLEX Reference Manual
This routine should read all valid MPS format files. What it will not do, is to find all cases where a file is ill formed. If this happens it may complain and read nothing or read "something".
| scip | SCIP data structure |
| filename | name of the input file |
| varnames | storage for the variable names, or NULL |
| consnames | storage for the constraint names, or NULL |
| varnamessize | the size of the variable names storage, or NULL |
| consnamessize | the size of the constraint names storage, or NULL |
| nvarnames | the number of stored variable names, or NULL |
| nconsnames | the number of stored constraint names, or NULL |
Definition at line 3624 of file reader_mps.c.
References assert(), FALSE, MPS_BOUNDS, MPS_COLUMNS, MPS_ENDATA, MPS_INDICATORS, MPS_LAZYCONS, MPS_OBJNAME, MPS_OBJSEN, MPS_QCMATRIX, MPS_QMATRIX, MPS_QUADOBJ, MPS_RANGES, MPS_RHS, MPS_ROWS, MPS_SOS, MPS_USERCUTS, mpsinputCreate(), mpsinputFree(), mpsinputHasError(), mpsinputObjsense(), mpsinputSection(), mpsinputSyntaxerror(), NULL, readBoundsExact(), readColsExact(), readIndicators(), readName(), readObjname(), readObjsen(), readQCMatrix(), readQMatrix(), readRangesExact(), readRhsExact(), readRowsExact(), readSOS(), SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_NOFILE, SCIP_READERROR, SCIPcreateProb(), SCIPerrorMessage, SCIPfclose(), SCIPfopen(), SCIPisExact(), SCIPprintSysError(), SCIPsetObjsense(), and TRUE.
Referenced by SCIPreadMps().
|
static |
gets the key (i.e. the name) of the given namefreq
Definition at line 3735 of file reader_mps.c.
References assert(), ConsNameFreq::consname, and NULL.
|
static |
returns TRUE iff both keys (i.e. strings) are equal up to max length
Definition at line 3747 of file reader_mps.c.
References MPS_MAX_NAMELEN.
|
static |
hash key retrieval function for variables
Definition at line 3757 of file reader_mps.c.
|
static |
returns TRUE iff the indices of both variables are equal
Definition at line 3764 of file reader_mps.c.
|
static |
returns the hash value of the key
Definition at line 3773 of file reader_mps.c.
References assert(), and SCIPvarGetIndex().
|
static |
computes the field width such that the output file is nicely arranged
| width | required width |
Definition at line 3782 of file reader_mps.c.
References MAX, MIN, and MPS_MAX_FIELDLEN.
Referenced by printRecord(), and printStart().
|
static |
output two strings in columns 1 and 2 with computed widths
| scip | SCIP data structure |
| file | output file (or NULL for standard output) |
| col1 | column 1 |
| col2 | column 2 |
| maxnamelen | maximum name length |
Definition at line 3793 of file reader_mps.c.
References assert(), computeFieldWidth(), MPS_MAX_NAMELEN, MPS_MAX_VALUELEN, NULL, SCIPinfoMessage(), and SCIPsnprintf().
Referenced by printBoundSection(), printEntry(), SCIP_DECL_SORTPTRCOMP(), and SCIPwriteMps().
|
static |
output two strings in columns 1 (width 2) and 2 (width 8)
| scip | SCIP data structure |
| file | output file (or NULL for standard output) |
| col1 | column 1 |
| col2 | column 2 |
| maxnamelen | maximum name length (-1 if irrelevant) |
Definition at line 3819 of file reader_mps.c.
References assert(), computeFieldWidth(), MPS_MAX_NAMELEN, NULL, SCIPinfoMessage(), and SCIPsnprintf().
Referenced by printBoundSection(), printEntry(), printRowType(), SCIP_DECL_SORTPTRCOMP(), and SCIPwriteMps().
|
static |
prints the given data as column entry
| scip | SCIP data structure |
| file | output file (or NULL for standard output) |
| varname | variable name |
| consname | constraint name |
| value | value to display |
| recordcnt | pointer to store the number of records per line |
| maxnamelen | maximum name length |
Definition at line 3853 of file reader_mps.c.
References assert(), ConsNameFreq::consname, MPS_MAX_VALUELEN, NULL, printRecord(), printStart(), SCIP_Real, SCIPinfoMessage(), and SCIPsnprintf().
Referenced by printRangeSection(), printRhsSection(), and SCIP_DECL_SORTPTRCOMP().
|
static |
prints the constraint type to file stream
| scip | SCIP data structure |
| file | output file (or NULL for standard output) |
| lhs | left hand side |
| rhs | right hand side |
| name | constraint name |
Definition at line 3891 of file reader_mps.c.
References assert(), NULL, printStart(), SCIP_Real, SCIPinfoMessage(), SCIPisEQ(), SCIPisGT(), SCIPisInfinity(), and SCIPsnprintf().
Referenced by SCIPwriteMps().
|
static |
initializes the sparse matrix
| scip | SCIP data structure |
| matrix | pointer to sparse matrix containing the entries |
| slots | number of slots |
Definition at line 3929 of file reader_mps.c.
References SCIP_CALL, SCIP_OKAY, SCIPallocBuffer, and SCIPallocBufferArray.
Referenced by SCIPwriteMps().
|
static |
this method takes care that the required capacity is available in the sparse matrix
| scip | SCIP data structure |
| matrix | sparse matrix for storing the coefficient |
| capacity | needed capacity |
Definition at line 3947 of file reader_mps.c.
References SCIP_CALL, SCIP_OKAY, and SCIPreallocBufferArray.
Referenced by getLinearCoeffs(), and SCIPwriteMps().
|
static |
frees the sparse matrix
| scip | SCIP data structure |
| matrix | sparse matrix to free |
Definition at line 3965 of file reader_mps.c.
References SCIPfreeBuffer, and SCIPfreeBufferArray.
Referenced by SCIPwriteMps().
|
static |
computes the coefficient for the given variables and linear constraint information
| scip | SCIP data structure |
| consname | name of the constraint |
| vars | array of variables |
| vals | array of coefficients values (or NULL if all coefficient values are 1) |
| nvars | number of variables |
| transformed | transformed constraint? |
| matrix | sparse matrix for storing the coefficient |
| rhs | pointer to right hand side |
Definition at line 3980 of file reader_mps.c.
References assert(), checkSparseMatrixCapacity(), ConsNameFreq::consname, NULL, nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_NEGATED, SCIPallocBufferArray, SCIPduplicateBufferArray, SCIPfreeBufferArray, SCIPgetProbvarLinearSum(), SCIPisInfinity(), SCIPreallocBufferArray, SCIPvarGetNegatedVar(), SCIPvarGetOrigvarSum(), SCIPvarGetStatus(), and vars.
Referenced by SCIPwriteMps().
|
static |
check whether given variables are aggregated and put them into an array without duplication
| scip | SCIP data structure |
| vars | variable array |
| nvars | number of active variables in the problem |
| aggvars | pointer to array storing the aggregated variables on output |
| naggvars | pointer to number of aggregated variables on output |
| saggvars | pointer to number of slots in aggvars array |
| varAggregated | hashtable for checking duplicates |
Definition at line 4083 of file reader_mps.c.
References assert(), NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIPcalcMemGrowSize(), SCIPhashtableExists(), SCIPhashtableInsert(), SCIPreallocBlockMemoryArray, SCIPvarGetStatus(), var, and vars.
Referenced by SCIPwriteMps().
|
static |
method check if the variable names are not longer than MPS_MAX_NAMELEN - 1
| scip | SCIP data structure |
| vars | array of variables |
| nvars | number of variables |
| maxnamelen | pointer to store the maximum name length |
| varnames | pointer to array of variable names |
| varnameHashmap | pointer to hash map storing variable, variable name mapping |
Definition at line 4140 of file reader_mps.c.
References assert(), MAX, MPS_MAX_NAMELEN, NULL, nvars, SCIP_CALL, SCIP_OKAY, SCIPallocBufferArray, SCIPblkmem(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapInsert(), SCIPsnprintf(), SCIPvarGetName(), SCIPwarningMessage(), var, and vars.
Referenced by SCIPwriteMps().
|
static |
method check if the constraint names are not longer than MPS_MAX_NAMELEN - 1
| scip | SCIP data structure |
| conss | array of all constraints |
| nconss | number of all constraints |
| transformed | TRUE iff problem is the transformed problem |
| maxnamelen | pointer to store the maximum name length |
| consnames | pointer to array of constraint names |
| error | pointer to store whether all constraint names exist |
Definition at line 4204 of file reader_mps.c.
References assert(), ConsNameFreq::consname, FALSE, ConsNameFreq::freq, i, MAX, MPS_MAX_NAMELEN, NULL, SCIP_Bool, SCIP_CALL, SCIP_HASHSIZE_NAMES, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPblkmem(), SCIPconsGetName(), SCIPconsIsEnabled(), SCIPfreeBufferArray, SCIPhashtableCreate(), SCIPhashtableFree(), SCIPhashtableInsert(), SCIPhashtableRetrieve(), SCIPsnprintf(), SCIPwarningMessage(), and TRUE.
Referenced by SCIPwriteMps().
returns whether to print an integrality constraint for the given variable
| var | variable to check |
| implintlevel | implied integral level |
Definition at line 4309 of file reader_mps.c.
References assert(), SCIP_Bool, SCIP_VARTYPE_CONTINUOUS, SCIPvarGetImplType(), SCIPvarGetType(), and var.
Referenced by SCIP_DECL_SORTPTRCOMP(), and SCIPwriteMps().
|
static |
implied integral level
Definition at line 4336 of file reader_mps.c.
References assert(), FALSE, MPSINTCOMP_LEVEL, NULL, printEntry(), printRecord(), printStart(), SCIP_Bool, SCIP_DECL_SORTPTRCOMP, SCIP_Real, SCIPABORT, SCIPdebugMsg, SCIPerrorMessage, SCIPhashmapExists(), SCIPhashmapGetImage(), SCIPhashtableExists(), SCIPinfoMessage(), SCIPsortPtrPtrReal(), SCIPvarGetName(), TRUE, var, and writeVarIsIntegral().
|
static |
outputs the right hand side section
| scip | SCIP data structure |
| file | output file, or NULL if standard output should be used |
| nconss | number of constraints |
| consnames | constraint names |
| rhss | right hand side array |
| maxnamelen | maximum name length |
| objoffset | objective offset |
Definition at line 4461 of file reader_mps.c.
References assert(), c, NULL, printEntry(), SCIP_Real, SCIPdebugMsg, SCIPinfoMessage(), SCIPisInfinity(), and SCIPisZero().
Referenced by SCIPwriteMps().
|
static |
outputs the range section
| scip | SCIP data structure |
| file | output file, or NULL if standard output should be used |
| conss | constraint array |
| nconss | number of constraints |
| consnames | constraint names |
| transformed | TRUE iff problem is the transformed problem |
| maxnamelen | maximum name length |
Definition at line 4503 of file reader_mps.c.
References assert(), c, NULL, printEntry(), SCIP_Bool, SCIP_Real, SCIPconsGetHdlr(), SCIPconshdlrGetName(), SCIPconsIsEnabled(), SCIPdebugMsg, SCIPgetLhsLinear(), SCIPgetLhsVarbound(), SCIPgetRhsLinear(), SCIPgetRhsVarbound(), SCIPinfoMessage(), SCIPisEQ(), SCIPisGT(), and SCIPisInfinity().
Referenced by SCIPwriteMps().
|
static |
print bound section name
| scip | SCIP data structure |
| file | output file, or NULL if standard output should be used |
Definition at line 4568 of file reader_mps.c.
References SCIPdebugMsg, and SCIPinfoMessage().
Referenced by printBoundSection().
|
static |
output bound section
| scip | SCIP data structure |
| file | output file, or NULL if standard output should be used |
| vars | active variables |
| nvars | number of active variables |
| aggvars | needed aggregated variables |
| naggvars | number of aggregated variables |
| fixvars | all fixed variables (or NULL if nfixvars is 0) |
| nfixvars | number of fixed variables |
| transformed | TRUE iff problem is the transformed problem |
| varnames | array with variable names |
| indicatorSlackHash | hashtable containing slack variables from indicators (or NULL) |
| maxnamelen | maximum name length |
Definition at line 4579 of file reader_mps.c.
References assert(), FALSE, MPS_MAX_VALUELEN, NULL, nvars, printBoundSectionName(), printRecord(), printStart(), SCIP_Bool, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARTYPE_BINARY, SCIPhashtableExists(), SCIPinfoMessage(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisZero(), SCIPsnprintf(), SCIPvarGetLbLocal(), SCIPvarGetLbOriginal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetUbOriginal(), TRUE, var, and vars.
Referenced by SCIPwriteMps().
|
static |
copy method for reader plugins (called when SCIP copies plugins) ! [SnippetReaderCopyMps]
Definition at line 4841 of file reader_mps.c.
References assert(), NULL, READER_NAME, SCIP_CALL, SCIP_OKAY, SCIPincludeReaderMps(), and SCIPreaderGetName().
|
static |
! [SnippetReaderCopyMps] destructor of reader to free user data (called when SCIP is exiting) ! [SnippetReaderFreeMps]
Definition at line 4857 of file reader_mps.c.
References assert(), NULL, READER_NAME, SCIP_OKAY, SCIPfreeBlockMemory, SCIPreaderGetData(), and SCIPreaderGetName().
|
static |
! [SnippetReaderFreeMps] problem reading method of reader
Definition at line 4872 of file reader_mps.c.
References assert(), NULL, READER_NAME, result, SCIP_CALL, SCIP_OKAY, SCIPreaderGetName(), and SCIPreadMps().
|
static |
problem writing method of reader
Definition at line 4885 of file reader_mps.c.
References assert(), NULL, nvars, objscale, READER_NAME, result, SCIP_CALL, SCIP_OKAY, SCIP_WRITEERROR, SCIPerrorMessage, SCIPisExact(), SCIPreaderGetName(), SCIPwriteMps(), and vars.