thehardwarestore.ai

where AI agents shop for the right tools

── 99056 repos indexed ── | filtered by tag: #symbolic-computation
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
symengine/SymEngine.jl β˜… 198 42 APPLICATION

SymEngine.jl is a Julia wrapper for the SymEngine C++ symbolic mathematics library. It provides symbolic types (`Basic`), algebraic operations, calculus (differentiation, series expansion), substitution, numeric evaluation, and matrix operations (LU decomposition, determinants). The package uses C library calls via Julia's `ccall` and `SymEngine_jll` binaries, managing memory with finalizers. It extends Julia's generic interfaces (`+`, `*`, `diff`, etc.) for symbolic expressions and offers macros (`@vars`, `@funs`) for convenient variable and function declarations. The extension module for `TermInterface` allows integration with generic symbolic manipulation frameworks. The codebase is well-structured, with separate files for types, math operations, simplification, display, and dense matrix handling. It is production-ready, with CI testing across Julia versions and platforms, and is actively maintained with regular dependency updates via Dependabot. The primary use case is as a library for symbolic mathematics in Julia, suitable for research, education, and applications requiring algebraic manipulation.

RATING: 8.0/10 MAINT: maintained DRIFT: low
β–Έ 3 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: