On this page
mathlib-fp 1.7.0 qualification
Completion-gate evidence
| Gate | Evidence |
|---|---|
| Interpolation workflow | Barycentric, rational, PCHIP/Akima, grid, and scattered tests plus example 17 |
| Fitting workflow | Typed rank-revealing QR polynomial fit and bounded LM reference tests |
| Integration workflow | Gauss-Kronrod sine and transformed Gaussian improper references |
| Root workflow | Existing bracketed scalar suite plus diagnostic vector Newton reference |
| ODE workflow | Dormand-Prince exponential solution, dense output, and localised event |
| LP/QP workflow | Existing simplex optimal/unbounded tests and constrained convex QP reference |
| Cone workflow | Feasible-start unit second-order-cone optimum and feasibility residual |
| Nonlinear optimisation | Existing L-BFGS/Nelder-Mead/penalty suite plus reentrant adapter change |
| Termination distinctions | Shared status names and convergence/acceptable/stagnation/breakdown/infeasible/unbounded/limit/cancel result paths |
| Derivative agreement | Analytic, central numerical, and dual-number AD smooth reference; deliberate bad-gradient detection |
| Callback reentrancy | No mutable callback/model state in 1.7 units; legacy penalty/maximize globals removed |
| Selection guidance | NumericalModelling.md and ConvexOptimization.md compare assumptions and limitations |
Local release qualification
The release gate runs:
lazbuild --build-mode=Release tests/TestRunner.lpi
tests/TestRunner.exe --all --format=plain
lazbuild --build-mode=Debug tests/TestRunner.lpi
tests/TestRunner.exe --all --format=plain
build-examples.ps1
lazbuild --build-all packages/lazarus/mathlib_fp.lpk
python tools/check_docs.py
python tools/build_docs.py
Normal, optimised, runtime-checked/heap-traced, package, example, documentation, and public-API paths must all pass before the milestone is marked complete. CI retains Linux, Win64, and optimised Win32 coverage through the existing workflow.
Observed local results
| Path | Result |
|---|---|
Win64 release (-O3) |
864 tests, 0 errors, 0 failures |
Win64 debug (-Ci -Cr -Co -Ct -gh) |
864 tests, 0 errors, 0 failures, 0 unfreed blocks |
Win32 i386 optimised (-O3) |
864 tests, 0 errors, 0 failures |
| PR CI | Linux and Windows jobs passed for PR #11 |
| Examples | 19 compiled; examples 17 and 18 ran end to end |
| Lazarus package, Win64 | all package units compiled |
| Package umbrella, Win32 i386 | all package units compiled |
| Documentation check | 42 pages, 19 indexed examples, 104 public symbols |
| Documentation build | 42 HTML pages and a populated search index |
| Representative benchmark | compiled and ran at -O3; QR/SVD/eigen checksums matched the recorded references |
Numerical budgets
| Workflow | Published check |
|---|---|
| Barycentric quadratic | absolute error <= 1e-12 |
| Adaptive sine integral | absolute error <= 1e-10 |
| Improper Gaussian integral | absolute error <= 2e-7 |
| Linear fit parameters | absolute error <= 1e-10 |
| Nonlinear fit parameters | absolute error <= 1e-6 |
| Vector equation solution | absolute error <= 1e-9 |
| ODE dense output | absolute error <= 2e-6 |
| ODE event time | absolute error <= 2e-5 |
| Convex QP variables | absolute error <= 2e-5, feasibility <= configured tolerance |
| Unit SOCP optimum | absolute error <= 2e-3, no positive cone violation |
These are precision-appropriate regression budgets for the named fixtures, not global guarantees.
Dependency and scope audit
All new stable implementation units are Object Pascal source. They use only the RTL, MathBase, and the repository's typed dense units. They do not load a DLL, invoke an external program, access a service/network, or require a licence key.
No 1.8.0 persistence/interchange, data-analysis, tooling, large-data streaming, parallel/SIMD, or performance-maturity feature is included.