packages feed

keel-linalg 0.1.0.0 → 0.1.1.0

raw patch · 3 files changed

+27/−8 lines, 3 files

Files

CHANGELOG.md view
@@ -1,5 +1,18 @@ # Revision history for keel-linalg -## 0.1.0.0 -- 2026-08-18+## 0.1.1.0 -- 2026-09-03++* Documentation and packaging consistency only — no library, executable or+  test-suite code changed since 0.1.0.0.+* The 0.1.0.0 entry below now carries the day the batch actually went out,+  2026-08-19. The 0.1.0.0 sdist on Hackage says 2026-08-18 and is immutable,+  so this is the first release whose shipped changelog and repository agree.+* README: the example calls `openBackend`, binds `a` and `b`, and passes+  `dgemm` its actual nine arguments; the umbrella subcommand is+  `keel setup blas`; and the oracle claim now names what is checked against+  numpy to 1e-10, what QR is gated on instead, and what is checked+  analytically.++## 0.1.0.0 -- 2026-08-19  * First release.
README.md view
@@ -6,26 +6,32 @@ [keel-dyn](https://hackage.haskell.org/package/keel-dyn).  ```haskell+import Data.Vector.Storable qualified as VS import Keel.Linalg  main :: IO () main = do-  Right be <- loadBackend defaultOpenBlasSpec+  Right be <- openBackend   -- row-major dgemm: C := A(2x3) * B(3x2)-  c <- dgemm be NoTrans NoTrans 2 2 3 1.0 a b 0.0+  let a, b :: VS.Vector Double+      a = VS.fromList [1, 2, 3, 4, 5, 6]+      b = VS.fromList [7, 8, 9, 10, 11, 12]+  c <- dgemm be NoTrans NoTrans 2 2 3 1.0 a b   print c ```  The backend is located by the documented keel search policy (`KEEL_OPENBLAS` env override, the per-user keel data dir — populated-by `keel setup openblas` from the umbrella package — then the system+by `keel setup blas` from the umbrella package — then the system search path), probed for ILP64 misconfiguration via `openblas_get_config`, and pinned immutably in a `Backend` handle: no global state, no backend swapping under a pure API. -Every driver is checked against numpy/scipy oracles in the test suite-(GEMM, LU/solve/inverse, Cholesky, QR, SVD, symmetric and general-eigenvalues, least squares — agreement within 1e-10).+Every driver except `ddot`, `dpotri`, `dgeqrf` and `dorgqr` is checked+against numpy oracles in the test suite (GEMM, LU/solve/inverse,+Cholesky, SVD, symmetric and general eigenvalues, least squares —+agreement within 1e-10); QR is gated on orthogonality and+reconstruction, and `ddot`/`dpotri` analytically in the smoke suite.  Part of the keel workspace — see the [project repository](https://github.com/skymanbp/keel).
keel-linalg.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               keel-linalg-version:            0.1.0.0+version:            0.1.1.0 synopsis:           CBLAS/LAPACKE over a runtime-loaded OpenBLAS description:     Dense linear algebra for Haskell with zero build-time native