and lower bounds equal to a single value. A bound type of FR ("free") means the variable has neither lower nor upper bounds and so can take on negative values. A variation on that is MI for free negative, giving an upper bound of 0 but no lower bound. Bound type PL is for a free positive from zero to plus infinity, but as this is the normal default, it is seldom used. There are also bound types for use in MIP models – BV for binary, being 0 or 1. UI for upper integer and LI for lower integer. SC stands for semi-continuous and indicates that the variable may be zero, but if not must be equal to at least the value given. Another optional section called RANGES specifies double-inequalities, in a somewhat counterintuitive way not described here. Ways to mark integer variables are also beyond the scope of this article (keyword MARKER and possibly SOS are involved). The final card must be ENDATA (notice the odd spelling). A few special cases of the MPS standard are not consistently handled by implementations. In the BOUNDS section, if a variable is given a nonpositive upper bound but no lower bound, its lower bound may default to zero or to minus infinity (also, if the upper bound is given as zero, the lower bound might be zero or negative infinity). If an integer variable has no upper bound specified, its upper bound may default to one rather than to plus infinity. Limitations MPS has many limitations. It does not specify the direction of optimization which is handled differently by solvers. Numeric fields have 12 characters width therefore limiting the precision. The representation is neither easy for human interpretation nor compact (although reserves column / row order information, which is often beneficial for LP solver behaviour reproducibility). One of the alternatives to MPS that does not have its limitations and is supported by most solvers is the nl file format. Extensions Many LP products include extensions to the MPS format. The free format MPS allows for long names and more accurate data by allowing fields to exceed the columns defined by the original standard, and apply whitespaces as separators instead of fixed column positions (note that this makes some MPS files that included whitespaces as part of names to be no longer valid). Some extensions include adding new kind of data to