All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
spxlpbase_real.cpp
Go to the documentation of this file.
33 // ---------------------------------------------------------------------------------------------------------------------
35 // ---------------------------------------------------------------------------------------------------------------------
98 /** If only a sign is encountered, the number is assumed to be \c sign * 1.0. This routine will not catch malformatted
157 MSG_WARNING( (*spxout), (*spxout) << "WLPFRD01 Warning: found empty exponent in LP file - check for forbidden variable names with initial 'e' or 'E'\n"; )
189 static int LPFreadColName(char*& pos, NameSet* colnames, LPColSetBase<Real>& colset, const LPColBase<Real>* emptycol, SPxOut* spxout)
254 /** \p keyword should be lower case. It can contain optional sections which are enclosed in '[' ']' like "min[imize]".
286 // we have to be at the end of the keyword and the word found on the line also has to end here. Attention: The
287 // LPFisSense is a kludge to allow LPFhasKeyword also to process Inf[inity] keywords in the bounds section.
372 * This routine should read (most?) valid LP format files. What it will not do, is find all cases where a file is ill
375 * Problem: A line ending in '+' or '-' followed by a line starting with a number, will be regarded as an error.
377 * The reader will accept the keyword INT[egers] as a synonym for GEN[erals] which is an undocumented feature in CPLEX.
381 * The manual says the maximum allowed line length is 255 characters, but CPLEX does not complain if the lines are
622 /* Already having here a value could only result from being the first number in a constraint, or a sign
651 /* Already having here a value could only result from being the first number in a constraint, or a sign
746 // We have a row like c1: <= 5 with no variables. We can not handle 10 <= 5; issue a syntax error.
831 /* Do we have only a single column name in the input line? We could ignore this savely, but it is probably
841 MSG_WARNING( (*spxout), (*spxout) << "WLPFRD12 in Binary/General section line " << lineno << " ignored" << std::endl; )
899 // ---------------------------------------------------------------------------------------------------------------------
901 // ---------------------------------------------------------------------------------------------------------------------
1005 static void MPSreadRows(MPSInput& mps, LPRowSetBase<Real>& rset, NameSet& rnames, SPxOut* spxout)
1013 MSG_INFO2( (*spxout), (*spxout) << "IMPSRD02 Objective name : " << mps.objName() << std::endl; )
1069 static void MPSreadCols(MPSInput& mps, const LPRowSetBase<Real>& rset, const NameSet& rnames, LPColSetBase<Real>& cset, NameSet& cnames, DIdxSet* intvars)
1168 static void MPSreadRhs(MPSInput& mps, LPRowSetBase<Real>& rset, const NameSet& rnames, SPxOut* spxout)
1193 if( ((mps.field2() != 0) && (mps.field3() == 0)) || ((mps.field4() != 0) && (mps.field5() == 0)) )
1252 static void MPSreadRanges(MPSInput& mps, LPRowSetBase<Real>& rset, const NameSet& rnames, SPxOut* spxout)
1274 if( ((mps.field2() != 0) && (mps.field3() == 0)) || ((mps.field4() != 0) && (mps.field5() == 0)) )
1362 static void MPSreadBounds(MPSInput& mps, LPColSetBase<Real>& cset, const NameSet& cnames, DIdxSet* intvars, SPxOut* spxout)
1423 // if the variable has appeared in the MARKER section of the COLUMNS section then its default bounds were
1424 // set to 0,1; the first time it is declared integer we need to change to default bounds 0,infinity
1481 * The specification is taken from the IBM Optimization Library Guide and Reference, online available at
1482 * http://www.software.ibm.com/sos/features/libuser.htm and from the ILOG CPLEX 7.0 Reference Manual, Appendix E, Page
1485 * This routine should read all valid MPS format files. What it will not do, is find all cases where a file is ill
1577 changeSense(mps.objSense() == MPSInput::MINIMIZE ? SPxLPBase<Real>::MINIMIZE : SPxLPBase<Real>::MAXIMIZE);
1579 MSG_INFO2( (*spxout), (*spxout) << "IMPSRD06 Objective sense: " << ((mps.objSense() == MPSInput::MINIMIZE) ? "Minimize\n" : "Maximize\n") );
1607 // ---------------------------------------------------------------------------------------------------------------------
1609 // ---------------------------------------------------------------------------------------------------------------------
1892 // ---------------------------------------------------------------------------------------------------------------------
1894 // ---------------------------------------------------------------------------------------------------------------------
2099 MPSwriteRecord(p_output, "", "RANGE", MPSgetRowName(*this, i, p_rnames, name1), rhs(i) - lhs(i));
2154 MSG_WARNING( (*spxout), (*spxout) << "XMPSWR03 Warning: objective function inverted when writing maximization problem in MPS file format\n" );
2160 // ---------------------------------------------------------------------------------------------------------------------
|