SDLP
Seidel's Algorithm: LinearComplexity Linear Programming (LP) for SmallDimensions
About

This solver is super efficient for smalldimensional LP with any constraint number, mostly encountered in computational geometry. It enjoys linear complexity about the constraint number.

The speed is at least an order of magnitude faster than GLPK in smalldimensional LP (<10) with a large constraints number (>100).

This solver is adapted from the linearfractional programming (LFP) from Mike Hohmeyer at UC Berkerley based on Raimund Seidel's algorithm. Kernel functions are reorganized. Previouslyexisted bugs are fixed here. An easytouse interface for LP via Eigen is also added.

Only a header file is all you need.
Interface
To solve a linear programming:
min cTx,
s.t. Ax<=b,
where x and c are ddimensional vectors, b an mdimensional vector and A an m*n matrix. It is assumed that d is small (<10) while m can be arbitrary value (1<= m <= 1e8).
Only one function is all you need:
double linprog(const Eigen::VectorXd &c,
const Eigen::MatrixXd &A,
const Eigen::VectorXd &b,
Eigen::VectorXd &x);
Input:
c: objective coefficient
A: constraint matrix
b: constraint bound
Output:
x: optimal solution if solved
return: finite value if solved
infinity if unbounded
infinity if infeasible
Reference
 Megiddo, N., 1984. Linear programming in linear time when the dimension is fixed. Journal of the ACM (JACM), 31(1), pp.114127.
 Seidel, R., 1991. Smalldimensional linear programming and convex hulls made easy. Discrete & Computational Geometry, 6(3), pp.423434.