From c14e1fb1356a97314c5580d675b2fff8acad1e8e Mon Sep 17 00:00:00 2001 From: tannevaled Date: Sun, 11 Oct 2026 10:33:53 +0200 Subject: [PATCH] landing: ndarray v0.11.0 -- 13 dtypes, linalg, fft, random The page still described v0.9.1's float64-only library. The hero, the description and the ndarray card now say 13 dtypes and name the numpy.linalg, numpy.fft and numpy.random packages; the API cards gain Dtypes, Fourier transforms, Random numbers and Notebooks and storage, and Linear algebra names the linalg package. Every claim is taken from ndarray's v0.11.0 README (1,040 numpy cases, 40 samplers). The hero's family count comes from the list, now 11. No style changes. Co-Authored-By: Claude Opus 5.5 --- hugo.toml | 22 +++++++++++++++++----- layouts/index.html | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) 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 @@
-

NumPy-style n-dimensional arrays in pure Go.
float64, multicore + SIMD.

-

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.

+

NumPy-style n-dimensional arrays in pure Go.
13 dtypes, multicore + SIMD.

+

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.