- JuliaMath organization
- JuliaApproximation organization
See also
General Mathematics packages
- Dualization.jl : Automatic dualization feature for MathOptInterface.jl conic optimization problems.
- FastPow.jl :
@fastpowspeeds up the computation of integer powers in any Julia expression by transforming them into optimal sequences of multiplications, with a slight sacrifice in accuracy. - GSL.jl : Julia interface to the GNU Scientific Library - GSL.
- Manifolds.jl : a unified interface to define and use manifolds as well as a library of manifolds to use for your projects.
- Tau.jl : A simple module providing definition of the Tau constant = 2pi.
Numeric data types
- BitIntegers.jl : This package implements fixed-width integer types similar to standard built-in ones like
IntorUInt128. - CustomUnitRanges.jl : This Julia package supports the creation of array types with “unconventional” indices.
- DualNumbers.jl: Julia package for representing dual numbers for differentiation.
- FixedPointNumbers.jl : This library exports fixed-point number types.
- Infinity.jl : Representation of infinity in Julia.
- Measures.jl : Unified measure and coordinates types.
- Quaternions.jl : Quaternions, octonions and dual-quaternions for 3D rotational orientation.
- Ratios.jl : Faster Rational-like types for Julia at the risk of greater risk of overflow.
Units
- DynamicQuantities.jl : Lightweight and fast physical quantities in Julia to supplement
Unitful.jl. - Unitful.jl : A Julia package for physical units.
- UnitSystems.jl: Physical unit systems (Metric, English, Natural, Planck, etc…). See also Similitude.jl: Dimensions and Quantities for
UnitSystems.jl.
Floating-point numbers
- ArbNumerics.jl : extended precision math, accurate and performant
- BFloat16s.jl : This package defines the BFloat16 data type. The only currently available hardware implementation of this datatype are Google’s Cloud TPUs.
- DecFP.jl : The package provides 32-bit, 64-bit, and 128-bit binary-encoded decimal floating-point types following the IEEE 754-2008, implemented as a wrapper around the (BSD-licensed) Intel Decimal Floating-Point Math Library.
- Decimals.jl : Pure Julia decimal arithmetic library.
- DoubleFloats.jl : Numbers with 85 accurate bits.
- LogarithmicNumbers.jl : A logarithmic number system for Julia. Provides the signed
ULogarithmicand unsignedLogarithmictypes for representing real numbers on a logarithmic scale.
Intervals
- IntervalArithmetic.jl : Rigorous floating-point calculations using interval arithmetic in Julia.
- Measurements.jl : Error propagation calculator and library. It supports real and complex numbers with uncertainty, arbitrary precision calculations, and operations with arrays.
- MonteCarloMeasurements.jl : Error propagation using Monte-Carlo simulation. Similar to
Measurements.jl, but more accurate for highly nonlinear functions at the expense of longer execution time.
Computer Arithmetic
- Wikipedia: Computer Arithmetic
- ent : Primes, Congruences, and Secrets.
Floating Point numbers
- ErrorfreeArithmetic.jl : Error-free transformations for arithmetic ops.
- FastRounding.j : Faster directed rounding for inline arithmetic.
Algebra
adeles algebraic number theory
- Hecke.jl : A package for algebraic number theory that works on top of
Nemo.jlby Tommy Hofmann and Claus Fieker. - Mods.jl : Easy modular arithmetic for Julia.
- Nemo.jl : A computer algebra package for the Julia programming language.
- OEIS.jl : A basic wrapper to allow access to OEIS integer sequences from within Julia.
- SemiringAlgebra.jl : Semiring Algebra. A linear algebraic approach to graph algorithms that exploits the sparse adjacency matrix representation of graphs can provide a variety of benefits.
Boolean Algebra
- ShowSet.jl : Nicer output for Set and IntSet objects.
Approximations
- AMD.jl : Given a square sparse matrix, compute an approximate minimum degree ordering.
- ChebyshevApprox.jl : Julia code to approximate continuous functions using Chebyshev polynomials.
- FastGaussQuadrature.jl : A Julia package to compute n-point Gauss quadrature nodes and weights to 16-digit accuracy and in O(n) time.
- FastTransforms.jl : Julia package for fast orthogonal polynomial transforms.
- Remez.jl : Remez algorithm for computing minimax polynomial approximations.
- Simplices.jl : Compute exact simplex intersections in N dimensions.
- Sobol.jl : is a generation of Sobol low-discrepancy sequence (LDS) implementation, that generates quasi-random sequences of points in N dimensions which are equally distributed over an N-dimensional hypercube.
Interpolations
- ApproxFun.jl : Julia package for function approximation using Chebyshev basis.
- CoordinateSplittingPTrees.jl : Accurate and efficient full-degree multidimensional polynomial interpolation.
- DataInterpolations.jl: A library of data interpolation and smoothing functions.
- Dierckx.jl : Julia package for 1-d and 2-d splines, a wrapper for the
dierckxFortran library. - GridInterpolations.jl : Multi-dimensional grid interpolation in arbitrary dimensions on a recti-linear grid.
- Interpolations.jl : Fast, continuous interpolation of discrete datasets in Julia.
- PiecewiseInterpolation.jl : A simple interface for interpolations on timeseries with first order discontinuities (using
Dierckx.jl). - RationalFunctionApproximation.jl : approximation by ratios of polynomials. JuliaCon 2025 video
Polynomials
- FastPolynomialRoots.jl : Fast and backward stable computation of roots of polynomials by Fortran in Julia.
- Jacobi.jl : Jacobi polynomials and Gauss quadrature related functions.
- MultivariatePolynomials.jl : Multivariate polynomials and multivariate moments.
- PolynomialRoots.jl : Fast complex polynomial root finder, with support for arbitrary precision calculations.
- Polynomials.jl : Basic arithmetic, integration, differentiation, evaluation, root finding, and fitting for univariate polynomials in Julia.
- SemialgebraicSets.jl : Extension of MultivariatePolynomials to semi-algebraic sets.
- TaylorModels.jl : A numerical mathematics package to treat the high-order scaling property of the remainder bound interval in a Taylor polynomial. 📹 JuliaCon 2018.
Functions
Evaluation and approximations of functions
- ApproxFun.jl : Julia package for function approximation.
- BasisFunctions.jl : A collection of routines for working with a number of standard basis functions. For more complete software packages to manipulate numerical function approximations, please consider ApproxFun.
- Elliptic.jl : Elliptic integral and Jacobi elliptic special functions.
- FrameFun.jl : Exploring practical possibilities of approximating functions with frames rather than with a basis.
- LambertW.jl : A package implementing the Lambert_W function and associated omega constant.
- LogExpFunctions.jl: Julia package for various special functions based on
logandexp. - NaNMath.jl : Implementations of basic math functions which return NaN instead of throwing a
DomainError. - SpecialFunctions.jl : Special mathematical functions in Julia.
- Struve.jl : Struve functions for Julia.
Calculus
- Riemann Hypothesis book with the source code on github.
- Calculus With Julia : Introductory Calculus with the Julia Programming Language.
- An IJulia notebook showing Taylor’s method integration of the pendulum.
- Calculus.jl : Calculus package.
- Cuba.jl : Library for multidimensional numerical integration with the Cuba library.
- Cubature.jl : Oneand multi-dimensional adaptive integration routines for the Julia language.
- FastGaussQuadrature.jl : Computes Gauss quadrature rules to 16-digit precision (so far Legendre, Jacobi, Lobatto, Radau).
- FiniteDifferences.jl : estimating derivatives with finite differences.
- FiniteDiff.jl : Fast non-allocating calculations of gradients, Jacobians, and Hessians with sparsity support.
- FractionalCalculus.jl : High performance and high precision numerical fractional calculus computing.
- HCubature.jl : Pure-Julia multidimensional h-adaptive integration.
- Integrals.jl : A common interface for quadrature and numerical integration.
- RiemannComplexNumbers.j : The RiemannComplexNumbers module is an alternative Complex type for Julia (with a single complex infinity value).
- Roots.jl : Root finding functions for Julia.
- TaylorSeries.jl : A julia package for Taylor expansions in one independent variable.
- WiltonInts84.jl : Integrals of arbitrary powers of R over flat triangles.
Automatic Differentiation
- ADOLC.jl : A Julia wrapper of the automatic differentiation package ADOL-C. JuliaCon 2024 video
- ChainRules.jl : forward and reverse mode automatic differentiation primitives.
- DifferentiationInterface.jl : An interface to various automatic differentiation backends in Julia. JuliaCon 2024 video
- Diffractor.jl : An experimental next-generation, compiler-based AD system for Julia.
- DualNumbers.jl : Julia package for representing dual numbers and for performing dual algebra.
- Enzyme.jl : Julia bindings for the Enzyme automatic differentiator. The Enzyme project is a tool for performing reverse-mode automatic differentiation (AD) of statically-analyzable LLVM IR.
- ForwardDiff.j : Forward Mode Automatic Differentiation for Julia.
- HyperDualNumbers.jl : Hyper-dual numbers can be used to compute first and second derivatives numerically without the cancellation errors of finite-differencing schemes.
- ReverseDiff.jl : Reverse Mode Automatic Differentiation for Julia.
- StochasticAD.jl : automatic differentiation of programs containing discrete randomness. JuliaCon 2023 video
- Yota.jl : Reverse-mode automatic differentiation for static and dynamic graphs.
- Zygote.jl : Source-to-source automatic differentiation (AD) in Julia, and is the next-gen AD system for the Flux differentiable programming framework.
Mathematical Analysis
Wikipedia: Mathematical Analysis
- Complementarity.jl : This package provides a modeling and computational interface for solving Mixed Complementarity Problems (MCP), modeling by
JuMP.jland computing byPATHSolver.jl. - Fatou.jl : Fatou/Julia sets in Julia (Fractals, Newton basins, Mandelbrot).
- PATHSolver.jl : This package provides a Julia wrapper of the PATH Solver for solving linear Mixed Complementarity Problems (MCP).
- Wilkinson.jl : Toolkit for studying numerical analysis and floating point algebra round-off error in Julia.
Discrete math
- Wikipedia: Discrete math
- Wikipedia: Combinatorics
- See also graph theory
- Collatz.jl : The Collatz conjecture.
- PermPlain.jl : Permutations of integers.
- Permutations.jl : Permutations class for Julia.
- SimplePosets.jl : Simple partially ordered sets for Julia.
- ZChop.jl : Replaces small numbers with zero.
Information theory
- InformationMeasures.jl : Entropy, mutual information and higher order measures from information theory, with various estimators and discretization methods.