COIN-OR Library Stack
The COIN-OR project is organized into dependency layers, where each layer builds on the ones below it. Lower layers provide foundational utilities; higher layers implement complete solvers and applications.
Layer 0: Foundation
Core utilities and sparse linear algebra that all other libraries depend on.
Foundation utilities: sparse matrices, I/O (MPS/LP), presolve, warm starting
122 classes documented
Sparse Matrix
LU Factorization
Presolve
File I/O
Warm Start
Sparse direct solvers (CHOLMOD, UMFPACK, AMD) for linear algebra
9 classes documented
Cholesky
LU
Ordering
Layer 1: LP & Cuts
Linear programming solvers, solver interfaces, and cut generation basics.
COIN-OR LP solver: dual/primal simplex, interior point methods
13 classes documented
Simplex
Interior Point
Presolve
Factorization
Open Solver Interface: common API for LP/MIP solvers
2 classes documented
Solver API
Branching
Cuts
C++ algorithmic differentiation for automatic derivatives
2 classes documented
Autodiff
Gradients
Hessians
Online active set QP solver for model predictive control
3 classes documented
QP
Active Set
MPC
Layer 2: MIP & NLP
Mixed-integer programming and nonlinear optimization solvers.
COIN-OR branch-and-cut MIP solver with parallelization
4 classes documented
Branch & Cut
Heuristics
Parallel
SOS
Cut Generator Library: Gomory, MIR, lift-and-project cuts
6 classes documented
Gomory
MIR
Clique
Probing
Interior Point OPTimizer for large-scale nonlinear programming
1 class documented
Interior Point
NLP
Large-scale
Filter
Automatic differentiation via operator overloading
1 class documented
Autodiff
Tape-based
Layer 3: MINLP
Mixed-integer nonlinear programming and advanced decomposition methods.
Basic Open-source Nonlinear Mixed INteger programming for convex MINLP
35 files annotated
MINLP
B&B
OA
Feasibility Pump
Convex Over and Under ENvelopes for global MINLP with spatial B&B
32 files annotated
Global
Spatial B&B
Convexification
FBBT
Single- or Multi-Process Optimization over Networks (parallel B&C)
Parallel
Distributed
Abstract Library for Parallel Search tree algorithms
Parallel
Search Tree
Framework
Branch-and-cut with Lp-Based Intelligent Search
Branch & Cut
Pseudocost
Distributed Combinatorial Optimization for parallel MIP
Conic
SOCP
Parallel
Branch-Cut-Price parallel framework for column generation
125 files annotated
Column Gen
Parallel
Pricing
Decomposition
Decomposition for Integer Programming (Dantzig-Wolfe, Lagrangean)
1 class documented
Decomposition
D-W
Stochastic Modelling Interface for stochastic programming
Stochastic
Two-stage
Optimality-Based Branch-and-Bound for nonconvex MINLP
Nonconvex
Global
Layer 4: Applications
Modeling tools, solver interfaces, and application-specific systems.
Supporting Hyperplane Optimization Toolkit for convex MINLP
15 classes documented
ECP
ESH
Convex MINLP
High-performance LP/MIP solver (simplex, IPM, B&B)
5 classes documented
LP
MIP
High-perf
Interfaces to GAMS optimization modeling system
GAMS
Modeling
Integration
High-performance optimization modeling in C++
1 class documented
Modeling
QCQP
SDP
.NET optimization modeling wrapper
.NET
C#
Wrapper
COLIOP Mathematical Programming Language modeling system
Modeling
Language
Optimization Services: Web services for optimization
Web Services
OSiL
CUDA-accelerated optimization
GPU
CUDA
Documentation Status
| Layer | Libraries | Documentation |
| Layer 0 | 2 | CoinUtils (122 classes), SuiteSparse (9 classes) |
| Layer 1 | 4 | Clp (13 classes), Osi (2 classes), CppAD (2 classes), qpOASES (3 classes) |
| Layer 2 | 4 | Cbc (4 classes), Cgl (6 classes), Ipopt (1 class), ADOL-C (1 class) |
| Layer 3 | 10 | BCP (125 files), Bonmin (35 files), Couenne (32 files), Dip (1 class) |
| Layer 4 | 8 | SHOT (15 classes), HiGHS (5 classes), Gravity (1 class) |
Total: 28 libraries, 185 classes documented, 192 algorithm-annotated files, ~600 headers indexed
Using the Source Browser
All 30 libraries are indexed in the Source Browser, which provides:
- File tree navigation across all layers
- Header listings with class information
- Quick links to documented classes
- Search across the entire codebase
The browser loads data from the JSON API, making it easy for both humans and AI agents to explore the codebase structure.