diff --git a/hugo.toml b/hugo.toml
index fd20038..27eb774 100644
--- a/hugo.toml
+++ b/hugo.toml
@@ -22,13 +22,13 @@ disableKinds = ['taxonomy', 'term', 'rss', 'sitemap', '404']
path = "github.com/go-fleettools/landingkit"
[params]
- description = "go-ndarray is a pure-Go (CGO=0) NumPy-style n-dimensional array library for float64 — slicing/views, broadcasting, ufuncs, reductions and linear algebra, multicore + SIMD on amd64, arm64, ppc64le, loong64, riscv64 and s390x, with a Workspace arena for loops."
+ description = "go-ndarray is a pure-Go (CGO=0) NumPy-style n-dimensional array library in 13 dtypes — slicing/views, broadcasting, ufuncs, reductions, numpy.linalg, numpy.fft and numpy.random (NumPy's numbers for the same seed), multicore + SIMD on amd64, arm64, ppc64le, loong64, riscv64 and s390x, with a Workspace arena for loops."
[[params.repos]]
name = "ndarray"
- kind = "library · v0.9.1"
+ kind = "library · v0.11.0"
href = "https://github.com/go-ndarray/ndarray"
- blurb = "The library. Creation (Zeros/Arange/Linspace/…), strided views, broadcasting elementwise + ufuncs, reductions (Sum/Max/ArgMax/CumSum/Clip/Where), manipulation (Reshape/Concatenate/Stack), linalg (MatMul/Dot) via a panel-packed cache-blocked GEMM with a go-asmgen SIMD-FMA micro-kernel (NEON 4×8 on arm64, AVX2/FMA 6×8 on amd64, VSX 8×8 on ppc64le, LASX 8×8 on loong64, RVV 6×8 on riscv64, 4×8 on s390x), and a Workspace arena for loops (Use/Reset/Detach)."
+ blurb = "The library, in 13 dtypes with NumPy 2 promotion. Creation (Zeros/Arange/Linspace/…), strided views, broadcasting elementwise + ufuncs, reductions (Sum/Max/ArgMax/CumSum/Clip/Where), manipulation (Reshape/Concatenate/Stack), linalg (MatMul/Dot) via a panel-packed cache-blocked GEMM with a go-asmgen SIMD-FMA micro-kernel (NEON 4×8 on arm64, AVX2/FMA 6×8 on amd64, VSX 8×8 on ppc64le, LASX 8×8 on loong64, RVV 6×8 on riscv64, 4×8 on s390x), and a Workspace arena for loops (Use/Reset/Detach). Packages linalg, fft and random are numpy.linalg, numpy.fft and numpy.random."
[[params.repos]]
name = "docs"
kind = "site"
@@ -61,9 +61,12 @@ disableKinds = ['taxonomy', 'term', 'rss', 'sitemap', '404']
# The API cards (#api) and the count in the hero come from this list, never
# from a number typed beside it.
+[[params.families]]
+ name = "Dtypes"
+ what = "bool, int8…int64, uint8…uint64, float32/float64, complex64/complex128, chosen at run time with NumPy 2 promotion: `AsType`, `Data[T]`, `Item[T]`, weak Go scalars with `Scalar`."
[[params.families]]
name = "Creation"
- what = "`Zeros`, `Ones`, `Full`, `Arange`, `Linspace`, `FromData`, `Eye` and the rest of NumPy's constructors, float64 throughout."
+ what = "`Zeros`, `Ones`, `Full`, `Arange`, `Linspace`, `FromData`, `Eye` and the rest of NumPy's constructors, in any dtype (`ZerosOf`, `FromSlice`)."
[[params.families]]
name = "Views and indexing"
what = "`Reshape`, `Transpose` and NumPy basic indexing with `Slice(All(), A(0), …)`: strided views that share data, no copy."
@@ -78,7 +81,16 @@ disableKinds = ['taxonomy', 'term', 'rss', 'sitemap', '404']
what = "`Concatenate`, `Stack` and the shape operations NumPy users reach for."
[[params.families]]
name = "Linear algebra"
- what = "`MatMul` and `Dot` through a panel-packed, cache-blocked GEMM with a go-asmgen SIMD micro-kernel per architecture."
+ what = "`MatMul` and `Dot` through a panel-packed, cache-blocked GEMM with a go-asmgen SIMD micro-kernel per architecture; package `linalg` is `numpy.linalg` (`Solve`, `Inv`, `Det`, `QR`, `SVD`, `Eig`, `Lstsq`, …), checked against numpy 2.5.3 on 1,040 cases."
+[[params.families]]
+ name = "Fourier transforms"
+ what = "Package `fft` is `numpy.fft` on arrays: `FFT`, `RFFT`, `FFT2`, `FFTN` and the rest, with `n`/`s`, `axes` and `norm`, over go-fft."
+[[params.families]]
+ name = "Random numbers"
+ what = "Package `random` is `numpy.random` with NumPy's numbers for the same seed: PCG64, MT19937, Philox, SFC64, 40 samplers, and the legacy `RandomState`."
+[[params.families]]
+ name = "Notebooks and storage"
+ what = "`Repr` prints like NumPy, `Display` gives a notebook text and HTML, and `MarshalBinary` writes the same bytes on every architecture."
[[params.families]]
name = "Workspace"
what = "An arena for loops: `Use`, `Reset`, `Detach` — results stop costing the garbage collector from one pass to the next."
diff --git a/layouts/index.html b/layouts/index.html
index 1e5ed0b..6cdff07 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -18,8 +18,8 @@
go-ndarray is the numpy equivalent for Go: a float64 n-dimensional array with creation routines, strided views that share data, broadcasting elementwise ops and ufuncs, reductions (incl. arg / cumulative / clip / where), manipulation, and linear algebra (a panel-packed, cache-blocked GEMM) — all in pure Go, with cgo disabled.
go-ndarray is the numpy equivalent for Go: an n-dimensional array in 13 dtypes with creation routines, strided views that share data, broadcasting elementwise ops and ufuncs, reductions (incl. arg / cumulative / clip / where), manipulation, linear algebra (a panel-packed, cache-blocked GEMM, and numpy.linalg), numpy.fft and numpy.random — all in pure Go, with cgo disabled.