Scippy

SoPlex

Sequential object-oriented simPlex

MPSInput Class Reference

#include <mpsinput.h>

Public Types

Types
enum  Section {
  NAME, OBJSEN, OBJNAME, ROWS,
  COLUMNS, RHS, RANGES, BOUNDS,
  ENDATA
}
 
enum  Sense { MAXIMIZE = 1, MINIMIZE = -1 }
 optimization sense. More...
 
enum  { MAX_LINE_LEN = 256 }
 

Public Member Functions

Construction / destruction
 MPSInput (std::istream &p_input)
 
virtual ~MPSInput ()
 
Access
Section section () const
 
int lineno () const
 
const char * field0 () const
 
const char * field1 () const
 
const char * field2 () const
 
const char * field3 () const
 
const char * field4 () const
 
const char * field5 () const
 
const char * probName () const
 
const char * objName () const
 
Sense objSense () const
 
bool hasError () const
 
bool isInteger () const
 
Modification
void setSection (Section p_section)
 
void setProbName (const char *p_probname)
 
void setObjName (const char *p_objname)
 
void setObjSense (Sense sense)
 
Warnings and Errors
void syntaxError ()
 
void entryIgnored (const char *what, const char *what_name, const char *entity, const char *entity_name)
 
Helpers
bool readLine ()
 reads an MPS format data line and parse the fields. More...
 
void insertName (const char *name, bool second=false)
 Inserts name as field 1 and shifts all other fields up. More...
 

Private data

Section m_section
 
std::istream & m_input
 the input stream from which the file is read More...
 
int m_lineno
 line number More...
 
Sense m_objsense
 objctive sense (maximization or minimization) More...
 
bool m_has_error
 is set to true upon a syntax error More...
 
char m_buf [MAX_LINE_LEN]
 the line buffer More...
 
const char * m_f0
 first field in a line More...
 
const char * m_f1
 second field in a line More...
 
const char * m_f2
 third field in a line More...
 
const char * m_f3
 fourth field in a line More...
 
const char * m_f4
 fifth field in a line More...
 
const char * m_f5
 sixth field in a line More...
 
char m_probname [MAX_LINE_LEN]
 problem name More...
 
char m_objname [MAX_LINE_LEN]
 objective name More...
 
bool m_is_integer
 
bool m_is_new_format
 new MPS format? More...
 
int m_ignored
 Number of already ignored entries. More...
 
static const int m_max_ignore = 1000
 Maximal number of ignored entries for which a warning will be issued. More...
 

Detailed Description

Reads MPS input files. A right-hand side for the objective function is allowed but ignored.

Definition at line 34 of file mpsinput.h.

Member Enumeration Documentation

anonymous enum
Enumerator
MAX_LINE_LEN 

Definition at line 56 of file mpsinput.h.

enum Section
Enumerator
NAME 
OBJSEN 
OBJNAME 
ROWS 
COLUMNS 
RHS 
RANGES 
BOUNDS 
ENDATA 

Definition at line 43 of file mpsinput.h.

enum Sense

optimization sense.

Enumerator
MAXIMIZE 
MINIMIZE 

Definition at line 50 of file mpsinput.h.

Constructor & Destructor Documentation

MPSInput ( std::istream &  p_input)
explicit

Definition at line 110 of file mpsinput.h.

virtual ~MPSInput ( )
virtual

Definition at line 128 of file mpsinput.h.

Member Function Documentation

void entryIgnored ( const char *  what,
const char *  what_name,
const char *  entity,
const char *  entity_name 
)
const char* field4 ( ) const
const char* field5 ( ) const

Definition at line 154 of file mpsinput.h.

References MPSInput::m_f5.

Referenced by soplex::MPSreadCols(), soplex::MPSreadRanges(), and soplex::MPSreadRhs().

bool hasError ( ) const
void insertName ( const char *  name,
bool  second = false 
)

Inserts name as field 1 and shifts all other fields up.

Insert name as field 1 and shift all other fields up.

Definition at line 250 of file mpsinput.cpp.

References MPSInput::m_f1, MPSInput::m_f2, MPSInput::m_f3, MPSInput::m_f4, and MPSInput::m_f5.

Referenced by MPSInput::entryIgnored(), soplex::MPSreadBounds(), soplex::MPSreadRanges(), and soplex::MPSreadRhs().

bool isInteger ( ) const

Definition at line 164 of file mpsinput.h.

References MPSInput::m_is_integer.

Referenced by soplex::MPSreadCols().

int lineno ( ) const

Definition at line 142 of file mpsinput.h.

References MPSInput::m_lineno.

const char* objName ( ) const

Definition at line 158 of file mpsinput.h.

References MPSInput::m_objname.

Referenced by soplex::MPSreadCols(), and soplex::MPSreadRows().

Sense objSense ( ) const

Definition at line 160 of file mpsinput.h.

References MPSInput::m_objsense.

Referenced by SPxLPBase< R >::readMPS().

const char* probName ( ) const

Definition at line 156 of file mpsinput.h.

References MPSInput::m_probname.

Referenced by soplex::MPSreadName().

Section section ( ) const

Definition at line 140 of file mpsinput.h.

References MPSInput::m_section.

Referenced by SPxBasis::readBasis(), and SPxLPBase< R >::readMPS().

void setObjName ( const char *  p_objname)

Definition at line 182 of file mpsinput.h.

References MPSInput::MAX_LINE_LEN.

Referenced by soplex::MPSreadObjname(), and soplex::MPSreadRows().

void setObjSense ( Sense  sense)

Definition at line 188 of file mpsinput.h.

Referenced by soplex::MPSreadObjsen().

void setProbName ( const char *  p_probname)

Definition at line 176 of file mpsinput.h.

References MPSInput::MAX_LINE_LEN.

Referenced by soplex::MPSreadName().

Member Data Documentation

char m_buf[MAX_LINE_LEN]
private

the line buffer

Definition at line 76 of file mpsinput.h.

Referenced by MPSInput::readLine().

const char* m_f0
private

first field in a line

Definition at line 78 of file mpsinput.h.

Referenced by MPSInput::field0(), and MPSInput::readLine().

const char* m_f1
private

second field in a line

Definition at line 80 of file mpsinput.h.

Referenced by MPSInput::field1(), MPSInput::insertName(), and MPSInput::readLine().

const char* m_f2
private

third field in a line

Definition at line 82 of file mpsinput.h.

Referenced by MPSInput::field2(), MPSInput::insertName(), and MPSInput::readLine().

const char* m_f3
private

fourth field in a line

Definition at line 84 of file mpsinput.h.

Referenced by MPSInput::field3(), MPSInput::insertName(), and MPSInput::readLine().

const char* m_f4
private

fifth field in a line

Definition at line 86 of file mpsinput.h.

Referenced by MPSInput::field4(), MPSInput::insertName(), and MPSInput::readLine().

const char* m_f5
private

sixth field in a line

Definition at line 88 of file mpsinput.h.

Referenced by MPSInput::field5(), MPSInput::insertName(), and MPSInput::readLine().

bool m_has_error
private

is set to true upon a syntax error

Definition at line 74 of file mpsinput.h.

Referenced by MPSInput::hasError().

int m_ignored
private

Number of already ignored entries.

Definition at line 98 of file mpsinput.h.

std::istream& m_input
private

the input stream from which the file is read

Definition at line 68 of file mpsinput.h.

Referenced by MPSInput::readLine().

bool m_is_integer
private

Definition at line 94 of file mpsinput.h.

Referenced by MPSInput::isInteger(), and MPSInput::readLine().

bool m_is_new_format
private

new MPS format?

Definition at line 96 of file mpsinput.h.

Referenced by MPSInput::readLine().

int m_lineno
private

line number

Definition at line 70 of file mpsinput.h.

Referenced by MPSInput::lineno(), and MPSInput::readLine().

const int m_max_ignore = 1000
staticprivate

Maximal number of ignored entries for which a warning will be issued.

Definition at line 100 of file mpsinput.h.

char m_objname[MAX_LINE_LEN]
private

objective name

Definition at line 92 of file mpsinput.h.

Referenced by MPSInput::objName().

Sense m_objsense
private

objctive sense (maximization or minimization)

Definition at line 72 of file mpsinput.h.

Referenced by MPSInput::objSense().

char m_probname[MAX_LINE_LEN]
private

problem name

Definition at line 90 of file mpsinput.h.

Referenced by MPSInput::probName().

Section m_section
private

Definition at line 66 of file mpsinput.h.

Referenced by MPSInput::readLine(), and MPSInput::section().