Skip to main content

IGAOS — Indigenous GPU-Accelerated Optimization Solver

CI License: MIT

A sovereign LP / MILP / QP solver core built from mathematical foundations for SIH 2026 problem statement SIH26119 (MRPL): revised simplex (primal + dual), first-order GPU methods (PDHG), branch-and-bound with Gomory cuts, and ADMM QP — no existing optimization-solver library as a base.

Layout

src/
  common/   shared types, numerics utilities
  linalg/   sparse/dense linear algebra; swappable CPU/GPU backends
  simplex/  revised simplex (primal + dual, eta updates, warm starts)
  pdhg/     first-order GPU LP engine
  milp/     branch-and-bound + Gomory cuts
  qp/       OSQP-style ADMM QP engine
  io/       MPS reader (LP/MILP/QP), solution writers
  api/      CLI + pybind11 surface
python/     Python bindings: igaos.solve() / igaos.read_mps()
benchmarks/ harness per docs/research/benchmark-protocol.md
tests/      assert-based engine smoke tests

Install

Python package (CPU engines — simplex LP, MILP, QP):

pip install igaos
import igaos
sol = igaos.solve("model.mps", time_limit=60, engine="auto")
sol.status, sol.objective, sol.x

With the GPU PDHG engine, build from source on a machine with the CUDA toolkit (auto-detected when nvcc is present):

pip install igaos --no-binary igaos --config-settings=cmake.define.IGAOS_ENABLE_CUDA=ON

Build from source (CLI + tests)

cmake -S . -B build
cmake --build build

Builds CPU-only automatically when no CUDA toolchain is present (the PDHG engine requires CUDA). The CLI binary is build/src/api/igaos; the Python module lands in python/igaos/. Engine tests: ctest --test-dir build.

Solve

$ ./build/src/api/igaos solve model.mps --engine auto --time-limit 60
{
  "instance": "model.mps",
  "status": "optimal",
  "objective": -464.7531429,
  ...
}

Engines: auto | simplex | pdhg | milp | qp. All four engine classes are live and verified against pinned baselines — current scores: Netlib 52/64 exact vs HiGHS, MIPLIB starters 6/20 @1e-4, robustness suite 10/15 per-class gates, Haverly QP three-way verified. Details and honest failure records: docs/research/.

Python:

import igaos
sol = igaos.solve("model.mps", time_limit=60, engine="milp")
sol.status, sol.objective, sol.x

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

igaos-0.1.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

igaos-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (254.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

igaos-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (254.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

igaos-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (252.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

igaos-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (251.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

igaos-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (252.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file igaos-0.1.0.tar.gz.

File metadata

  • Download URL: igaos-0.1.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for igaos-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0da0f182067a710a4a1a0c40818fdefbdaa26aba2129d0b3f23a737494a6ed19
MD5 8acb5105d30e5722de2b14018d1a0980
BLAKE2b-256 fc5582ce485542981bce80517197bfdaee845041b4014376074e354224b6e967

See more details on using hashes here.

File details

Details for the file igaos-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for igaos-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a285411fb5e4db4a2e16c927b24cb5b3daa66ff8f1ec1aee10a3c95677c58d5
MD5 d3e87cb00676ac55e200002cedc4305f
BLAKE2b-256 dbe980f5d2a74a06e4902e3e1af1a606bd88a25b5b50baefccf816515a9462bf

See more details on using hashes here.

File details

Details for the file igaos-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for igaos-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f0b21bee18e4c81dc071391c354c83db51b6b82605c12ca4082343efb4461795
MD5 50988c37e5363e4bcebaea356b05c5a3
BLAKE2b-256 cb77d1b8adef6e18b1f20cadf9596d1e0953f25b327ab3cceaf56d1c967909d0

See more details on using hashes here.

File details

Details for the file igaos-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for igaos-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3ec06eb87267f03dae46945336613b51ea13cd845a3fc6badef2b54d732e07c
MD5 680e03918a73e4b068847917802724a2
BLAKE2b-256 15611a4c531469b73bb43f7a5c793614666f1ade9fb3b7c192a27d41765d1603

See more details on using hashes here.

File details

Details for the file igaos-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for igaos-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c780b523f46983a83e42c6c9e05502f7ba1ee8d1d034ae533a59145c311e7d2
MD5 63173124081fcb508d2062f306854e50
BLAKE2b-256 230837b6556f00e0669dd44beb714810e85b6317545759f550b696712ddd69c7

See more details on using hashes here.

File details

Details for the file igaos-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for igaos-0.1.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a3c4a1e42842a98e15a82580b84df3568805a673ec91f63df0bf5a75a72f7a3
MD5 4c2ac73c4c61c7c190fd8342371e1203
BLAKE2b-256 b170b8d6151c69849ab12d23a01252d92545602a011c45c752cdb50210de8e06

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page