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 43 of file mpsinput.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_LINE_LEN 

Definition at line 65 of file mpsinput.h.

◆ Section

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

Definition at line 52 of file mpsinput.h.

◆ Sense

enum Sense

optimization sense.

Enumerator
MAXIMIZE 
MINIMIZE 

Definition at line 59 of file mpsinput.h.

Constructor & Destructor Documentation

◆ MPSInput()

MPSInput ( std::istream &  p_input)
explicit

Definition at line 119 of file mpsinput.h.

◆ ~MPSInput()

virtual ~MPSInput ( )
virtual

Definition at line 137 of file mpsinput.h.

Member Function Documentation

◆ entryIgnored()

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

Definition at line 253 of file mpsinput.h.

References MPSInput::insertName(), MPSInput::readLine(), and SPX_MSG_ERROR.

◆ field0()

const char* field0 ( ) const

Definition at line 159 of file mpsinput.h.

References MPSInput::m_f0.

◆ field1()

const char* field1 ( ) const

Definition at line 164 of file mpsinput.h.

References MPSInput::m_f1.

◆ field2()

const char* field2 ( ) const

Definition at line 169 of file mpsinput.h.

References MPSInput::m_f2.

◆ field3()

const char* field3 ( ) const

Definition at line 174 of file mpsinput.h.

References MPSInput::m_f3.

◆ field4()

const char* field4 ( ) const

Definition at line 179 of file mpsinput.h.

References MPSInput::m_f4.

◆ field5()

const char* field5 ( ) const

Definition at line 184 of file mpsinput.h.

References MPSInput::m_f5.

◆ hasError()

bool hasError ( ) const

Definition at line 204 of file mpsinput.h.

References MPSInput::m_has_error.

◆ insertName()

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 268 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().

◆ isInteger()

bool isInteger ( ) const

Definition at line 209 of file mpsinput.h.

References MPSInput::m_is_integer.

◆ lineno()

int lineno ( ) const

Definition at line 154 of file mpsinput.h.

References MPSInput::m_lineno.

◆ objName()

const char* objName ( ) const

Definition at line 194 of file mpsinput.h.

References MPSInput::m_objname.

◆ objSense()

Sense objSense ( ) const

Definition at line 199 of file mpsinput.h.

References MPSInput::m_objsense.

◆ probName()

const char* probName ( ) const

Definition at line 189 of file mpsinput.h.

References MPSInput::m_probname.

◆ readLine()

◆ section()

Section section ( ) const

Definition at line 149 of file mpsinput.h.

References MPSInput::m_section.

◆ setObjName()

void setObjName ( const char *  p_objname)

Definition at line 230 of file mpsinput.h.

References MPSInput::MAX_LINE_LEN, and soplex::spxSnprintf().

◆ setObjSense()

void setObjSense ( Sense  sense)

Definition at line 236 of file mpsinput.h.

◆ setProbName()

void setProbName ( const char *  p_probname)

Definition at line 224 of file mpsinput.h.

References MPSInput::MAX_LINE_LEN, and soplex::spxSnprintf().

◆ setSection()

void setSection ( Section  p_section)

Definition at line 219 of file mpsinput.h.

◆ syntaxError()

void syntaxError ( )

Definition at line 246 of file mpsinput.h.

References SPX_MSG_ERROR.

Member Data Documentation

◆ m_buf

char m_buf[MAX_LINE_LEN]
private

the line buffer

Definition at line 85 of file mpsinput.h.

Referenced by MPSInput::readLine().

◆ m_f0

const char* m_f0
private

first field in a line

Definition at line 87 of file mpsinput.h.

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

◆ m_f1

const char* m_f1
private

second field in a line

Definition at line 89 of file mpsinput.h.

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

◆ m_f2

const char* m_f2
private

third field in a line

Definition at line 91 of file mpsinput.h.

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

◆ m_f3

const char* m_f3
private

fourth field in a line

Definition at line 93 of file mpsinput.h.

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

◆ m_f4

const char* m_f4
private

fifth field in a line

Definition at line 95 of file mpsinput.h.

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

◆ m_f5

const char* m_f5
private

sixth field in a line

Definition at line 97 of file mpsinput.h.

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

◆ m_has_error

bool m_has_error
private

is set to true upon a syntax error

Definition at line 83 of file mpsinput.h.

Referenced by MPSInput::hasError().

◆ m_ignored

int m_ignored
private

Number of already ignored entries.

Definition at line 107 of file mpsinput.h.

◆ m_input

std::istream& m_input
private

the input stream from which the file is read

Definition at line 77 of file mpsinput.h.

Referenced by MPSInput::readLine().

◆ m_is_integer

bool m_is_integer
private

Definition at line 103 of file mpsinput.h.

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

◆ m_is_new_format

bool m_is_new_format
private

new MPS format?

Definition at line 105 of file mpsinput.h.

Referenced by MPSInput::readLine().

◆ m_lineno

int m_lineno
private

line number

Definition at line 79 of file mpsinput.h.

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

◆ m_max_ignore

const int m_max_ignore = 1000
staticprivate

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

Definition at line 109 of file mpsinput.h.

◆ m_objname

char m_objname[MAX_LINE_LEN]
private

objective name

Definition at line 101 of file mpsinput.h.

Referenced by MPSInput::objName().

◆ m_objsense

Sense m_objsense
private

objctive sense (maximization or minimization)

Definition at line 81 of file mpsinput.h.

Referenced by MPSInput::objSense().

◆ m_probname

char m_probname[MAX_LINE_LEN]
private

problem name

Definition at line 99 of file mpsinput.h.

Referenced by MPSInput::probName().

◆ m_section

Section m_section
private

Definition at line 75 of file mpsinput.h.

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