For a javascript library for complex mathematical operations, the first results are josdejong/mathjs (Math.js is a comprehensive library that provides the full suite of requested features, including linear algebra, statistical analysis, arbitrary-precision arithmetic, and symbolic computation, with full support for both browser and Node.js environments), nefe/number-precision (This library provides robust arbitrary-precision arithmetic for handling floating-point errors, though it is specialized for precision rather than the broader suite of linear algebra or symbolic computation features requested) and stdlib-js/stdlib (This is a comprehensive standard library for JavaScript and Node.js that provides a vast suite of numerical, statistical, and scientific computing tools, including support for linear algebra, complex numbers, and high-performance mathematical functions). mikemcl/decimal.js and mikemcl/bignumber.js round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “best javascript math libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Math.js is a comprehensive JavaScript library for scientific, complex, and arbitrary precision calculations. It functions as a symbolic computation engine, a linear algebra toolkit, a statistical analysis library, and a unit conversion system. The project distinguishes itself by providing a symbolic engine capable of parsing, simplifying, and manipulating mathematical expressions algebraically without requiring immediate numerical evaluation. It includes a framework for defining and converting physical quantities with units of measure and automatic prefix support. The library covers a broad
Math.js is a comprehensive library that provides the full suite of requested features, including linear algebra, statistical analysis, arbitrary-precision arithmetic, and symbolic computation, with full support for both browser and Node.js environments.
number-precision is a JavaScript math library and arbitrary precision arithmetic utility. It provides a set of functions for performing addition, subtraction, multiplication, and division while avoiding the rounding errors common in standard binary floating-point operations. The project focuses on maintaining controlled decimal precision to ensure consistent mathematical output. This makes it applicable for financial calculations where exact currency values are required, as well as for high precision data processing in scientific or technical reports. Its capabilities include precise floatin
This library provides robust arbitrary-precision arithmetic for handling floating-point errors, though it is specialized for precision rather than the broader suite of linear algebra or symbolic computation features requested.
This is a comprehensive standard library for JavaScript and Node.js that provides a vast suite of numerical, statistical, and scientific computing tools, including support for linear algebra, complex numbers, and high-performance mathematical functions.
decimal.js is a JavaScript arbitrary precision library designed to perform mathematical calculations without the rounding errors associated with standard floating-point numbers. It provides a high-precision math toolkit for executing basic arithmetic and advanced transcendental functions with configurable significant digits. The library implements decimal-based math that supports various rounding modes and arbitrary precision settings. It includes a numeric string parser for converting decimal, hexadecimal, binary, and octal strings into high-precision numeric types, as well as a utility for
This library provides robust arbitrary-precision arithmetic and transcendental functions for JavaScript, serving as a specialized tool for high-precision calculations even though it lacks broader features like linear algebra or symbolic computation.
bignumber.js is an arbitrary-precision JavaScript library designed to perform mathematical operations on decimals and integers that exceed the limits of standard floating-point numbers. It functions as a decimal arithmetic engine and a math library for calculating square roots, powers, and modular exponentiation. The project provides a base conversion utility capable of parsing and translating numeric values between any base from 2 to 36. It also includes a numeric formatting tool for rendering high-precision values into localized strings with custom separators and notation styles. The libra
This library provides robust arbitrary-precision arithmetic for decimals and integers, serving as a specialized tool for high-precision calculations even though it lacks broader features like linear algebra or symbolic computation.
This library is a JavaScript-based numerical analysis tool designed to perform complex mathematical operations directly within web browser environments. It provides a comprehensive suite of algorithms for linear algebra, matrix manipulation, and equation solving, enabling data-intensive computations to occur locally without requiring server-side processing. The project distinguishes itself by offering a specialized computational engine that handles advanced mathematical tasks such as gradient-based function optimization and iterative numerical approximation. By utilizing quadrature-based inte
This library provides a robust suite of tools for linear algebra and numerical analysis in the browser, serving as a capable engine for complex mathematical computations despite lacking symbolic computation or arbitrary-precision features.
simple statistics for node & browser javascript
This library provides a focused suite of statistical methods for both Node.js and browser environments, making it a reliable choice for data analysis tasks despite lacking the broader linear algebra or symbolic computation features of more comprehensive scientific suites.
jStat - JavaScript Statistical Library
jStat is a dedicated statistical library for JavaScript that provides a wide range of probability distributions and statistical functions, making it a solid choice for scientific computation despite lacking symbolic or arbitrary-precision features.
numbers.js is a comprehensive mathematics library for JavaScript that provides a collection of advanced functions for scientific computing and data analysis. It is designed to handle complex mathematical operations through a modular architecture, offering tools for calculus, statistics, linear algebra, and prime number analysis. The library distinguishes itself by providing explicit control over numerical precision, allowing users to define error thresholds and manage decimal accuracy to mitigate rounding discrepancies. This focus on precision is paired with a suite of computational tools tha
This library provides a broad suite of mathematical and statistical functions, including support for linear algebra, complex numbers, and arbitrary-precision arithmetic, making it a solid choice for scientific computation in both Node.js and browser environments.
OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical computing and matrix operations. It serves as a hardware-accelerated numerical library and optimized math kernel library, providing a computational engine for large-scale matrix multiplication and vector operations. The library distinguishes itself through the use of hand-tuned assembly kernels and SIMD instruction mapping, such as AVX and SVE, to maximize floating-point performance on specific CPU architectures. It features a multi-threaded framework that manages parallel exe
This is a low-level C-based linear algebra kernel library designed for hardware-accelerated numerical computing, rather than a JavaScript-native library for complex mathematical and symbolic computations.
LAPACK is a comprehensive library of Fortran routines designed for high-performance numerical analysis and linear algebra. It serves as a foundational scientific computing framework, providing standardized procedures for solving systems of linear equations, eigenvalue problems, and least squares approximations. The library distinguishes itself through a hierarchical routine abstraction that organizes mathematical operations into distinct levels of complexity. It utilizes block-partitioned matrix algorithms and a column-major memory layout to optimize data locality and hardware efficiency. By
This is a foundational Fortran library for numerical linear algebra rather than a JavaScript-native library, meaning it cannot be used directly in browser or Node.js environments without significant compilation or wrapping.
OpenBLAS is a high-performance library for basic linear algebra subprograms that provides optimized matrix and vector operations. It serves as a multi-architecture math backend and numerical computing framework designed to execute complex mathematical calculations and high-speed numerical analysis. The library functions as an optimized CPU math library that detects hardware at runtime to apply the most efficient operation kernels for the specific processor. It supports multiple CPU targets through a combination of optimized assembly and C implementations. The project covers high-performance
This is a high-performance C-based linear algebra backend designed for low-level hardware optimization, rather than a JavaScript library for scientific and statistical computation.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| josdejong/mathjs | 15K | JavaScript | Apache-2.0 | |
| nefe/number-precision | 4.1K | TypeScript | — | |
| stdlib-js/stdlib | 5.7K | JavaScript | apache-2.0 | |
| mikemcl/decimal.js | 7.2K | JavaScript | MIT | |
| mikemcl/bignumber.js | 7K | JavaScript | MIT | |
| sloisel/numeric | 1.4K | JavaScript | NOASSERTION | |
| simple-statistics/simple-statistics | 3.5K | JavaScript | ISC | |
| jstat/jstat | 0 | — | — | — |
| numbers/numbers.js | 1.8K | JavaScript | Apache-2.0 | |
| openmathlib/openblas | 7.5K | C | BSD-3-Clause |