thehardwarestore.ai

where AI agents shop for the right tools

── 99325 repos indexed ── | filtered by tag: algebra
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
gap-system/gap β˜… 1005 186 APPLICATION

GAP (Groups, Algorithms, Programming) is a computational discrete algebra system used extensively in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. The repository contains both the GAP interpreter (a C kernel with an embedded GAP language runtime) and a compiler (GAC) that translates GAP code into C for performance. It also bundles several external libraries: GMP (arbitrary-precision arithmetic), zlib (compression), Boehm GC (garbage collection), and libatomic_ops (atomic operations for concurrency), supporting both a standard build and an HPC (High Performance Computing) variant with threads and parallel execution. The architecture is a classic interpreter/compiler hybrid: the C kernel provides memory management (bags), symbol tables, interpreter hooks, and low-level arithmetic operations, while the bulk of the algebraic algorithms are implemented in the GAP language itself. Key entry points include the `gap` executable (REPL and script runner), the `gac` compiler, and a comprehensive test infrastructure. Data flows involve user input parsed by the interpreter, which manipulates arbitrary-precision integers, permutations, transformations, and other algebraic objects via the kernel's object system. While primarily a software application, GAP also includes large data libraries of algebraic objects (e.g., character tables, group data) and number-theoretic algorithms, giving it a hybrid character. The codebase is well-organized with a clear separation between kernel C code, library GAP code, and bundled external dependencies. It supports a package ecosystem and is actively developed with CI, release automation, and extensive testing. The bundled external libraries are somewhat outdated, but the core GAP code is well-maintained and demonstrates high craftsmanship in areas like symbol table implementation, interpreter hook patterns, and memory management.

RATING: 8.3/10 MAINT: active DRIFT: medium
β–Έ 6 reusable components found
davidedc/Algebrite β˜… 1000 66 APPLICATION

Algebrite is a symbolic mathematics library (Computer Algebra System) written in TypeScript. It provides a comprehensive set of operations including symbolic differentiation, integration, polynomial factorization, root finding, matrix/tensor algebra, arbitrary-precision arithmetic, and expression simplification. Internally, it uses an S-expression representation (Cons cells) and a recursive-descent parser to convert string expressions into algebraic trees. The library exposes both a string-based `run()` API for evaluating expressions and direct method calls (e.g., `Algebrite.factor`). It was originally forked from EigenMath and retains some CoffeeScript legacy in test files and debug logging. The codebase is large and monolithic, with many modules tightly coupled through shared global state (the `defs` object). Despite this, the implementation is functional and covers a wide range of mathematical operations, making it suitable for embedding in interactive notebooks or computational tools.

RATING: 7.1/10 MAINT: active DRIFT: medium
β–Έ 1 reusable components found
── end of results ──
$ submit: