This directory contains a rich collection of C++ libraries for handling Linear Programming (LP) data structures.
It provides core components for representing, manipulating, and solving linear programs, with a focus on efficient handling of sparse data and various utility functions for pre-processing and analysis.
This set of libraries provides the fundamental building blocks for representing and working with linear programming problems.
lp_types.h: Defines common types and constants used throughout the linear programming solver.lp_data.h: Provides the mainLinearProgramclass for storing the complete data of a linear program, including the objective function, constraint matrix, and variable bounds.lp_utils.h: Contains basic utility functions for operations on fractional numbers and row/column vectors.
Given that large-scale linear programs are often sparse, this directory offers a suite of libraries for efficient sparse data handling.
sparse.h: Implements data structures for sparse matrices, based on well-established references in the field of direct methods for sparse matrices.sparse_vector.h: Provides classes to represent sparse vectors efficiently.sparse_column.h&sparse_row.h: Specializations of sparse vectors for column-oriented and row-oriented matrix storage schemes.scattered_vector.h: Implements vectors that offer a sparse interface to what is internally a dense storage, which can be useful for certain computations.
A collection of tools for preprocessing, analyzing, and manipulating linear programs.
matrix_scaler.h: Provides theSparseMatrixScalerclass, which scales aSparseMatrixto improve numerical stability during the solving process.lp_decomposer.h: Implements a tool to decompose a largeLinearPrograminto several smaller, independent subproblems by identifying disconnected components in the constraint matrix.permutation.h: Contains utilities for handling row and column permutations on LP data structures.
This group of libraries handles reading and writing LP data in various formats.
lp_parser.h: A simple parser for creating a linear program from a string representation.mps_reader.h: A reader for the industry-standard MPS file format for mathematical programming problems.sol_reader.h: A reader for .sol files, which are used to specify solution values for a given model.proto_utils.h: Provides utilities to convertLinearProgramobjects to and from the MPModelProto protobuf format.lp_print_utils.h: Contains utilities to display linear expressions in a human-readable way, including rational approximations.