keel-linalg 0.1.0.0 → 0.1.1.0
raw patch · 3 files changed
+27/−8 lines, 3 files
Files
- CHANGELOG.md +14/−1
- README.md +12/−6
- keel-linalg.cabal +1/−1
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