Mathematical optimization for industrial decisions.

An open-source C++ and CUDA solver for LP, QP, and MILP problems. Built for large-scale planning, dispatch, and routing problems with verifiable mathematical accuracy.

indigenous_solver.cpp
CPU + CUDA Active
Constraint Error3.14e-7Target: < 1e-6 (Met)
Optimality Gap7.82e-8Dual gap: < 1e-6 (Met)
PDHG Iterations#240 / 50,000Status: Converging
01
3 Problem TypesLinear (LP), Quadratic (QP), Integer (MILP)
02
Hardware ExecutionParallel OpenMP CPU + NVIDIA CUDA GPU
03
Verified AccuracyMathematical proof of optimality (KKT)
Real-World Industrial Decisions

Industrial decisions are all connected.

Changing a single production quota or blending recipe affects everything down the line: power costs, storage capacity, and delivery schedules.

100K+
Interconnected variables
Linked
Complex rule networks
Selected: ProductionDecision Variable
x_prod ∈ [0, M]

Directly determines crude throughput and refinery capacity utilization.

Interactive Factor NetworkClick any node in graph
ProductionBlendingSchedulingResourcesInventoryTransportation
Click any factor or dot to trace affected connections
Mathematical Foundation

How the Solver Operates

Click any step to inspect the underlying mathematical formulation, CUDA execution model, and asymptotic complexity.

STEP 01
Problem Setup
x₁x₂∇f(x)

Variables & Goals

min c^T x + 1/2 x^T Q x

Set up the decision variables (x) and the cost equation you want to minimize or maximize.

CLICK TO EXPAND
STEP 02
Boundaries
Feasible Zone

Rules & Constraints

Ax ≤ b, l ≤ x ≤ u

Each constraint (budget, supply, power limits) cuts away invalid plans to form the feasible zone.

CLICK TO EXPAND
STEP 03
Algorithm
x^0x^1x^2x^3x^4

PDHG Iterative Solving

x^(k+1) = prox(x^k - τ A^T y^k)

Our Primal-Dual Hybrid Gradient method steps iteratively toward the solution using GPU-parallel matrix math.

CLICK TO EXPAND
STEP 04
Verification
OPTIMAL x*Res < 1.0e-8

Verify Best Solution

||Ax* - b||_∞ ≤ ε, Gap ≤ ε

Checks KKT optimality conditions to verify zero constraint violations and guarantee the best plan.

CLICK TO EXPAND
Open Source vs Black-Box

Full Control vs Vendor Lock-in

Commercial solvers hide their code inside closed binaries. Our solver is fully open source, transparent, and runs on your own hardware.

Commercial Black-Box Solvers
Closed Source
Your Application Code
Closed API Wrapper
Closed Binary (.so / .dll / Cloud license)
No visibility into matrix scaling, inner heuristics, or licensing limits.
Our Open Stack
100% Auditable & Extensible
Your Application Code
Native C & Python Bindings
Open C++ Core (Presolve, Scaling, PDHG, Branch & Bound)
Hardware Acceleration (OpenMP CPU + NVIDIA CUDA)
Direct access to source code, memory layouts, and exact solution certificates.

Full Code Ownership

Complete control over solver settings, step sizes, and algorithm behavior.

Transparent Math

Inspect how models are presolved, scaled, and solved with clear math proofs.

Run Anywhere

Compile on Linux, Windows, or Mac on standard CPU or NVIDIA GPUs.

Inside the Engine

How the Solver Works

From loading raw problem files to presolving, matrix scaling, GPU acceleration, and solution verification.

Explore Full Architecture

Reads MPS format problem files and constructs sparse matrix structures.

IN:.mps / .qps files
OUT:In-memory Sparse Matrix
Core Capabilities

Built to Solve Large Industrial Problems

First-order and branch-and-bound algorithms designed for linear, quadratic, and mixed-integer problems.

Continuous Optimization (LP & QP)

Powered by the Primal-Dual Hybrid Gradient (PDHG) algorithm. Instead of dense matrix factorizations, it uses sparse matrix-vector products that execute across GPU and multicore CPU threads.

Integer & Discrete Decisions (MILP)

For on/off scheduling, routing, and integer decisions, our solver combines PDHG with a spatial Branch-and-Bound search tree to find optimal integer solutions and prune unfeasible search branches.

LP (PDHG Engine)
Implemented

First-order primal-dual hybrid gradient method for large-scale linear programs.

QP Formulation
Implemented

Quadratic programming solver with positive semi-definite matrix support.

MILP (Branch & Bound)
Implemented

Recursive spatial branch-and-bound tree exploration for integer variables.

Presolve Reduction
Implemented

Model preprocessing: redundant constraint elimination and bounds tightening.

Ruiz Scaling
Implemented

Iterative $L_\infty$ row and column diagonal equilibration for numerical stability.

GPU CUDA SpMV
Implemented

Hardware-accelerated parallel kernels for CSR and CSC sparse matrix math.

Exact KKT Validation
Implemented

Rigorous post-solve Karush-Kuhn-Tucker optimality and feasibility certification.

Native C/Python API
Implemented

Low-overhead shared library bindings with real-time progress callbacks.

Interior Point Barrier
Planned

Second-order primal-dual interior point method for dense ill-conditioned problems.

Hardware Acceleration

How CPU and GPU Work Together

The CPU handles logic, file loading, and search trees, while the GPU crunches millions of parallel matrix calculations.

Multicore CPU (OpenMP)

Logic & Decision Control
  • Reads and parses MPS model files from disk
  • Removes redundant constraints and simplifies the model
  • Manages the Branch-and-Bound search tree for integers
  • Checks convergence and certifies exact accuracy
  • Zero-latency access to main system memory
Task RoleSequential Logic & Orchestration
Coordinated Pipeline

NVIDIA GPU (CUDA)

Massive Parallel Matrix Math
  • Parallel sparse matrix-vector math (SpMV) in CSR format
  • Parallel gradient updates across CUDA threads
  • Variable bound projections directly in GPU VRAM
  • Asynchronous compute streams without blocking the CPU
  • Automatic fallback to CPU when no GPU is detected
ThroughputThousands of Parallel Threads
Performance Testing

Benchmark Results

Standard Netlib, MIPLIB, and industrial test models measured for solve speed and accuracy.

Run in Studio
InstanceClassVariablesConstraintsRuntimeStatus
production_planning_v2.mpsLP125,00084,500—Pending
logistics_network_eu.mpsMILP42,00051,200—Pending
portfolio_risk_model.mpsQP15,00012,000—Pending
Standalone Optimization Engine

Ready to deploy the solver?

Run industrial LP/QP/MILP benchmarks, test custom MPS files, and inspect KKT convergence directly in your browser.

$ solver_solve(&model, &config);KKT CERTIFIED