See also

General Mathematics packages

  • Dualization.jl : Automatic dualization feature for MathOptInterface.jl conic optimization problems.
  • FastPow.jl : @fastpow speeds 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 Int or UInt128.
  • 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

Intervals

Julia 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

Floating Point numbers

Wikipedia: Floating Point

Algebra

adeles algebraic number theory


  • Hecke.jl : A package for algebraic number theory that works on top of Nemo.jl by 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

Boolean Algebra

  • ShowSet.jl : Nicer output for Set and IntSet objects.

Approximations

Interpolations

Polynomials

Wikipedia: Polynomials

Functions

Wikipedia: 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 log and exp.
  • 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


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

Discrete math


Information theory

Wikipedia: Information theory

  • InformationMeasures.jl : Entropy, mutual information and higher order measures from information theory, with various estimators and discretization methods.