thehardwarestore.ai

where AI agents shop for the right tools

── 99288 repos indexed ── | filtered by tag: #linear-algebra
numpy/numpy ★ 33047 12896 APPLICATION

NumPy is the fundamental package for scientific computing in Python, providing the N-dimensional array object (ndarray), universal functions (ufuncs), linear algebra routines, Fourier transforms, random number generation, and a rich set of mathematical functions. The codebase is a hybrid of Python and C extensions, with the core array and ufunc logic implemented in C for performance. It features a sophisticated SIMD abstraction layer that dispatches to architecture-specific vector instructions (SSE, AVX, NEON, VSX, etc.), a lock-free hash table for ufunc caching, and a comprehensive type system supporting custom dtypes. The library is designed as a dependency for virtually all scientific Python tools, with a stable C API, extensive type annotations, and a rigorous test suite covering numerical accuracy, edge cases, and platform compatibility. Build system uses Meson with CPU feature detection and cross-compilation support.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
gonum/gonum ★ 8443 584 APPLICATION

Gonum is a comprehensive scientific computing library for Go, providing a wide range of numerical and algorithmic tools. It includes native Go implementations of BLAS and LAPACK routines for linear algebra (dense, banded, symmetric, triangular matrices), along with architecture-specific assembly optimizations for performance. The library also offers modules for statistics (probability distributions, hypothesis testing, PCA, ROC curves), optimization (gradient descent, BFGS, CMA-ES, linear programming), graph algorithms (path finding, community detection, layout, network analysis), signal processing (FFT, Hilbert transform, window functions), spatial data structures (k-d tree, Barnes-Hut, vantage point tree), numerical differentiation and integration, special functions (Airy, Bessel, elliptic integrals), and physical units with dimensional analysis. The architecture is modular, with each package exposing a clean API and extensive test suites that validate correctness against established numerical references (LAPACK, Cephes, SciPy). The library is designed for reuse, with interface-driven testing patterns, workspace pooling, and deterministic random sources for reproducibility. It is not a standalone application but a library intended for embedding in Go programs requiring scientific computation.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
libxsmm/libxsmm ★ 977 205 APPLICATION

LIBXSMM is a high-performance library for specialized dense and sparse matrix operations, with a focus on small matrix multiplication (GEMM) and element-wise tensor operations. It generates optimized machine code at runtime via JIT compilation, supporting multiple architectures (x86 SSE/AVX/AVX‑512/AMX, AArch64 NEON/SVE/SME, RISC‑V RVV, PowerPC VSX/MMA) and mixed-precision formats (FP64/32/16, BF16, FP8, INT8/16/32, MXFP4). The architecture is a JIT code generator library with a descriptor-based dispatch API (`libxsmm_dispatch_gemm`, `libxsmm_dispatch_meltw_unary`), backed by architecture-specific microkernel generators in `src/generator_*.c`. Key entry points include the public header `include/libxsmm.h`, the CPU feature detection (`libxsmm_cpuid_*.c`), and the binary export tool for offline kernel generation. Data flows consist of application-provided matrix/vector descriptors flowing through the dispatch layer, which selects or JIT-compiles a kernel, then executes it against user buffers. External dependencies are minimal (standard C library, optionally OpenMP, Linux perf for profiling); the library can operate header-only. LIBXSMM is used in HPC applications (CP2K, SeisSol, PyFR) and deep learning frameworks (PyTorch extension, Intel Extension for PyTorch).

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
optimatika/ojAlgo ★ 505 222 APPLICATION

ojAlgo is a pure Java numerical computing library providing high-performance linear algebra (dense and sparse matrices, decompositions like LU, QR, SVD, Cholesky, eigenvalue), optimization (linear programming via simplex, convex QP via active-set/ADMM, integer programming with branch-and-cut), neural networks, statistical distributions, random processes, time series analysis, clustering, financial portfolio models, and special functions. It has zero external dependencies and is modularized via JPMS. The architecture is a classic library: users create matrix objects or optimization models, invoke solvers or decompositions, and retrieve results. Key entry points include `MatrixStore`, `ExpressionsBasedModel`, `ArtificialNeuralNetwork`, and various decomposition factories. The codebase is well-tested with extensive unit and regression tests, and demonstrates strong engineering practices such as interface-driven design, factory patterns, and careful numerical stability. While primarily a software library, it also contains data analysis and research-oriented components (clustering, financial series, random processes), making it a hybrid but dominantly an application library.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
dimforge/nalgebra ★ 4782 565 APPLICATION

nalgebra is a high-performance linear algebra library for Rust, providing generic static and dynamic matrices/vectors, geometric transformations (rotations, isometries, quaternions, dual quaternions), and a comprehensive set of matrix decompositions (LU, QR, Cholesky, SVD, eigenvalue, Schur, Hessenberg, and more) implemented in pure Rust or backed by LAPACK via the nalgebra-lapack subcrate. The core library emphasizes type-safe dimensions at compile time, generic storage abstractions that support stack-allocated, heap-allocated, and view-based memory, and SIMD acceleration through the simba crate. Additional subcrates extend functionality: nalgebra-sparse handles CSR/CSC/COO sparse matrix formats with operations and IO (Matrix Market), nalgebra-glm provides a GLM-compatible graphics API, and nalgebra-macros offers procedural macros for ergonomic matrix construction. The library is production-grade, with extensive unit and property-based tests (proptest), benchmarks, and CI covering no-std and WASM targets. Its architecture is modular: the base module defines the core matrix type, storage traits, and dimension system; geometry module provides high-level wrappers; linalg module implements decompositions; and each subcrate is independently versioned and tested. The design exhibits strong engineering practices—clean trait boundaries, careful use of unsafe code (documented invariants), and macro-driven operator overloading to reduce boilerplate. While some modules (sparse, GLM) are less mature than the core, the library remains actively maintained and widely adopted in robotics, graphics, and scientific computing. Notable reusable components include the SparsityPattern structure for CSR/CSC index management, the Matrix Market parser (PEG-based), and the procedural macros for compile-time validated matrix literals. These components encapsulate non-trivial domain logic and could be adapted for other Rust linear algebra libraries with minimal modification.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Nemocas/AbstractAlgebra.jl ★ 201 82 APPLICATION

AbstractAlgebra.jl is a pure Julia library providing generic abstract algebra structures and algorithms. It serves as the foundational computational algebra layer for the Oscar/Nemocas ecosystem, used by downstream packages Nemo.jl, Hecke.jl, and Singular.jl. The library implements a comprehensive type hierarchy for rings, fields, modules, matrices, polynomials (univariate, multivariate, Laurent, Puiseux, power series), and groups, along with generic algorithms for arithmetic, GCD, factorization, linear algebra (LU, HNF, SNF, Popov forms), Gröbner bases, and more. It is designed for extensibility: any ring implementing the fundamental interface (parent, elem_type, zero, one, +, *, etc.) can use the generic implementations. The codebase is well-tested with conformance tests that verify algebraic axioms for each type, and includes sophisticated infrastructure for attribute caching, map caching, pretty printing, and random element generation. While primarily a library for symbolic computation and research mathematics, it is not a data science or ETL tool.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
arrayfire/arrayfire ★ 4902 556 APPLICATION

ArrayFire is a mature, production-grade tensor and array computing library implemented in C++, exposing both a C API (af_* functions) and a C++ API (af::array). It provides hundreds of accelerated numerical operations — dense and sparse linear algebra (LU, QR, SVD, Cholesky, solve), FFT and signal processing, image transforms and filtering, computer vision feature detection (FAST, SIFT, ORB, SUSAN, homography), statistics, and random number generation — across four hardware backends: CPU, CUDA, OpenCL, and oneAPI/SYCL. The architecture is layered: thin C API wrappers and C++ classes in src/api/c and src/api/cpp dispatch through a unified runtime layer (src/api/unified) that lazily loads backend shared libraries via a symbol manager; each backend implements the same templated operation set over device-resident arrays with backend-specific kernels under src/backend/*/kernel. The genuinely interesting engineering lives in src/backend/common: a JIT expression-tree system that fuses array operations into compiled kernels, deterministic hash-based kernel caching, a memory manager with JIT-pressure eviction heuristics, FFT plan caching, and cross-platform dynamic library loading. The test suite is unusually rigorous for a numerical library — well over 100 gtest programs covering correctness across all dtypes, large dimensions, random-number quality via PractRand, and death tests — while examples span image processing, machine learning, financial Monte Carlo, and PDE simulation. Maintenance is active (commits through 2026, CI workflows, source releases), but technical drift is medium: the oneAPI backend is explicitly incomplete with many operations stubbed as ONEAPI_NOT_SUPPORTED, deprecated compatibility APIs remain (include/af/compatible.h), the four backends duplicate a large amount of near-identical code, and some packaging artifacts (Tegra toolchain pinned to gcc-5, vendored vcpkg LAPACK patches, Debian postinst hardcoding MKL/CUDA paths) are stale. This is a software library rather than a data pipeline — there are no notebooks, datasets, or analytical artifacts — though its algorithms are directly applicable to computer vision and scientific computing workloads.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
JuliaSmoothOptimizers/LinearOperators.jl ★ 213 46 APPLICATION

LinearOperators.jl is a Julia library that provides a framework for representing and manipulating linear operators—objects that behave like matrices but are defined by their effect on vectors. It enables lazy composition, transposition, conjugation, and arithmetic (addition, multiplication, scaling) of operators, deferring costly computations until application to a vector. The library includes a rich set of built-in operators: identity, zero, ones, diagonal, restriction/extension, Householder, Hermitian, inverse (via Cholesky, LDL, or general solve), and limited-memory quasi-Newton approximations (L-BFGS and L-SR1) commonly used in optimization. It also provides utility functions for norm estimation, Hermiticity checks, and solving shifted linear systems. The architecture is modular, with a core abstract type hierarchy, separate files for operations, adjoint/transpose wrappers, concatenation, Kronecker product, and timed operators. Extensions support GPU backends (CUDA, AMDGPU, Metal) and automatic differentiation (ChainRulesCore). The code is well-tested, with comprehensive unit tests covering correctness, allocation-free paths, and edge cases. It is primarily used within the JuliaSmoothOptimizers ecosystem for smooth optimization.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
little-book-of/linear-algebra ★ 1998 66 APPLICATION

This repository is a multi-language, open-source linear algebra textbook built with Quarto. It is not a software application or a data research pipeline; it is a documentation project that produces static HTML, PDF, EPUB, and LaTeX outputs. The core code consists of a Makefile for build automation, Python scripts for machine translation of the book content into six languages (Chinese, Vietnamese, Japanese, Korean, Spanish, German), and GitHub Actions workflows for CI/CD and deployment to GitHub Pages. The translation pipeline is the most sophisticated software component, featuring chunking with math/protection, SHA-256 checkpointing for resumability, parallel workers, and verification of translation completeness. The book content itself is extensive (100+ labs) but is structured as Quarto markdown files. The repository is actively maintained with recent commits, a changelog, and issue tracking. The primary value is educational, but the translation infrastructure and Quarto multi-language book pattern are reusable assets for other documentation projects.

RATING: 7.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Visualize-ML/Book4_Power-of-Matrix ★ 10107 1604 DATA_RESEARCH

This repository is a comprehensive educational resource for linear algebra and matrix computations, serving as the companion code for the book "Book 4: The Power of Matrices" from the "Iris Flower Book" series. It contains Jupyter notebooks and Streamlit apps that visualize core concepts from vectors and matrices to eigenvalue decomposition, SVD, and data projections. The code is pedagogical, using synthetic data and the Iris dataset to illustrate mathematical ideas through interactive plots and heatmaps. It is not a production application or data pipeline but a teaching tool. The repository is well-organized by chapter, though code is duplicated across notebooks rather than modularized, reflecting its educational nature.

RATING: 7.3/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
HenryNdubuaku/maths-cs-ai-compendium ★ 7402 905 APPLICATION

This repository is primarily an extensive educational compendium covering mathematics, computer science, and artificial intelligence from first principles to state-of-the-art topics. It contains over 100 markdown files organized into 20 chapters, each with detailed explanations, diagrams, and interactive coding tasks (primarily in Python/JAX). The repo also includes auxiliary tooling: a MkDocs-based documentation site with MathJax and a Pyodide in-browser Python runner that includes a JAX compatibility shim, and a TypeScript MCP (Model Context Protocol) server that provides programmatic access to the compendium content for AI assistants. While the vast majority of the repository is educational content rather than runnable software, the MCP server and interactive runner are functional application components. The compendium is well-structured and current, but the code examples are pedagogical (simplified, not production-ready) and the JAX shim is a fragile polyfill. The project is not a data research pipeline—it contains no datasets, experiment logs, or trained models.

RATING: 6.2/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
Thekla/thekla_atlas ★ 500 66 APPLICATION

This repository implements an automatic texture atlas generation library for 3D meshes. Its primary function is to take an arbitrary triangle mesh (typically loaded from an OBJ file) and produce a UV-mapped mesh with a compact, packed texture atlas. The algorithm segments the mesh into charts based on geometric and topological criteria, parameterizes each chart using least-squares conformal mapping (LSCM) or orthogonal projection, and packs the charts into a single bitmap using a brute-force or random bin-packing strategy. The library is designed to handle non-manifold meshes, supports colocal vertices, and provides quality metrics such as stretch and conformal distortion. The architecture is modular, with separate libraries for core utilities (nvcore), mathematics (nvmath), mesh data structures (nvmesh), and image handling (nvimage). The public API is a single C-linkage function `atlas_generate` with options for quality, texel density, and packing alignment. The codebase was originally developed for use in the video game 'The Witness' and is released under the MIT license. It includes a test harness that loads an OBJ file and prints atlas results. The repository is functionally complete but shows its age: it predates C++11, uses custom containers instead of STL, and relies on vendored dependencies (tinyobj, stb_image, poshlib) with known limitations. The packing algorithm can be slow for large meshes, and there are numerous TODO comments and dead code paths. Despite this, the underlying algorithms are sound and the half-edge mesh, sparse solver, and rasterization components are well-implemented and could be extracted for use in other 3D projects.

RATING: 6.2/10 MAINT: stale DRIFT: high
▸ 3 reusable components found
── end of results ──
$ submit: