Numerics and Optimization - osvaldoandrade/ova-lib GitHub Wiki

Numerics and Optimization

Read this page when the problem is dense numeric state or linear programming.

The numeric part of the library is split into 2 layers.

The first layer is the matrix and vector API. Use it when you need dense in-memory numeric storage and matrix operations. Read Matrix-and-Vector.

The second layer is the linear-programming solver built on top of that matrix layer. Use it when the problem is a linear objective with <= constraints. Read Linear-Programming-Solver.

Choose the Right Entry Point

If you need dense matrices, vectors, resize rules, determinant, inverse, and copy semantics, read Matrix and Vector.

If you need LP problem construction, simplex solve status, tableau ownership, and solution storage, read Linear Programming Solver.

Layer Diagram

flowchart TD
    N[Numerics and Optimization] --> MV[Matrix and Vector]
    N --> LP[Linear Programming Solver]
    LP --> MV

Boundary Between the Two Layers

The solver layer allocates and uses matrix and vector objects directly. That means the matrix ownership rules still apply inside solver code.

If the problem stops at matrix arithmetic, stay in the matrix layer.

If the problem is a linear program, read the matrix page first and then the solver page.