πŸ”– General mathematical tools in Julia

Mathematical libraries/ packages, and related resources.1

See also

  • 🏚️ means the package may not support current versions of Julia.
  • πŸ—οΈ means the package may be a WIP.

General Mathematics packages

  • AppleAccelerate.jl :: Julia interface to OS X’s Accelerate framework.
  • EntropicCone.jl :: Entropic Cone approximation and optimization
  • GSL.jl :: Julia interface to the GNU Scientific Library - GSL.
  • Hecke.jl :: Computational algebraic number theory
  • Hexagons.jl :: Useful tools for working with hexagonal grids.
  • MPFR.jl :: A Julia package for the GNU MPFR library.
  • MTH229.jl :: Helper files for using Julia with MTH229.
  • NaNMath.jl :: Implementations of basic math functions which return NaN instead of throwing a DomainError.
  • NLreg.jl :: Nonlinear regression in Julia.
  • Tau.jl :: A simple module providing definition of the Tau constant = 2pi.
  • TSne.jl :: Julia port of L.J.P. van der Maaten and G.E. Hinton’s T-SNE visualisation technique.
WIP or may not work
  • 🏚️ ApApproximation.jl :: Implementation of the almost-periodic approximation.
  • 🏚️ Cartesian.jl :: Fast multidimensional algorithms. Now in Julia Base.
  • 🏚️ ContinuedFractions.jl :: Types and functions for working with continued fractions in Julia. (No Project.toml)
  • 🏚️ CRF.jl :: Conditional Random Fields in Julia.
  • 🏚️ Devectorize.jl :: A Julia framework for delayed expression evaluation.
  • 🏚️ Entropy.jl :: This package contains functionality for computing binless estimates of entropy from discrete and continuous samples for continuous distributions.
  • 🏚️ ExtremeValueDistributions.jl :: A Julia package to fit extreme value distributions.
  • 🏚️ FloorLayout.jl :: Framework and various drivers for floor layout formulation analysis.
  • 🏚️ MathToolkit.jl :: A Julia package providing various functions mainly for the purpose of experimental mathematics.
  • 🏚️ Multicombinations.jl :: An iterator for k-combinations with repetitions, k-multicombinations, k-multisubsets.
  • 🏚️ Shannon.jl :: Entropy, Mutual Information, KL-Divergence related to Shannon’s information theory and functions to binarize data.
  • 🏚️ SimilarityMetrics.jl :: Standard similarity metrics in Julia.
  • 🏚️ Smolyak :: Efficient implementations of Smolyak’s algorithm for function approxmation in Python and Julia.
  • 🏚️ TwoBasedIndexing.jl :: Two-based indexing.
  • 🏚️ Uncertain.jl :: Uncertain quantities and error propagation for the Julia language.
  • 🏚️ univariate__opt.jl :: Univariate optimization and root-finding code for Julia.
  • 🏚️ Unums.jl :: Unum (Universal Number) types and operations.
  • 🏚️ utils.jl :: basic utilities needed for scientific coding with julia.


  • MbedTLS.jl :: Wrapper around mbedtls.
  • MD5.jl :: A pure julia MD5 implementation.
  • Nettle.jl :: is a simple wrapper around libnettle, a cryptographic library, providing MD5, SHA1, SHA2 hashing and HMAC functionality, as well as AES encryption/decryption
  • RNGTest.jl :: A package that is a Julia interface to the test suite TestU01 of Pierre l’Ecuyer to test random numbers.
  • SHA.jl :: a performant, 100% native-julia SHA-1, SHA-2 224, 256, 384 and 512, and SHA-3 224, 256, 384 and 512 functions.
  • SEAL.jl :: wrapping the Microsoft SEAL library for homomorphic encryption
WIP or may not work


WIP or may not work

Computer Arithmetic

πŸ“– Computer Arithmetic

Floating Point

For floating-point datatypes, see Data Types Section.

WIP or may not work
  • 🏚️ ErrorFreeTransforms.jl :: Map the rounding errors in floating point arithmetic with error-free transformations (EFT).
  • 🏚️ Ryu.jl :: Julia implementation of ryu that converts floating point numbers to decimal strings.
  • 🏚️ UnumX.jl :: Experimental Unums.

Modelling and Simulations


Resources: Ideles adeles algebraic number theory.

WIP or may not work
  • 🏚️ algebra :: A hierarchy of abstract algebraic structures in Julia.
  • 🏚️ Clockwork.jl :: Represent modular arithmetic via clock symbols.
  • 🏚️ Cuhre.jl :: Simplified Julia interface to Cuhre integration routine.
  • 🏚️ Digits.jl :: A module for integer digit manipulation.
  • 🏚️ FirstOrderLogic.jl :: This package aims to include functions that manipulate mathematical logic.
  • 🏚️ Juniper.jl :: A simple computer algebra system.

Boolean Algebra

Boolean Algebra

  • ShowSet.jl :: Nicer output for Set and IntSet objects.
WIP or may not work
  • 🏚️ BitCircuits.jl :: Boolean circuit evaluation using bitwise operations.

Numerical Analysis

Numerical Analysis

  • AMD.jl :: Approximate Minimum Degree Ordering in Julia.
  • ApproXD.jl :: B-splines and linear high-dimensional approximators in multiple dimensions for Julia.
  • Dierckx.jl:: Julia package for 1-d and 2-d splines, a wrapper for the dierckx Fortran library.
  • Dualization.jl :: Automatic dualization feature for MathOptInterface.jl conic optimization problems.
  • Expokit.jl :: A package that provides Julia implementations of some routines contained in EXPOKIT.
  • 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.
  • GridInterpolations.jl :: Multi-dimensional grid interpolation in arbitrary dimensions on a recti-linear grid.
  • Interpolations.jl :: Fast, continuous interpolation of discrete datasets in Julia.
  • Knitro.jl :: Julia interface to the Knitro solver.
  • LinearExpressions.jl :: Linear symbolic expressions for the Julia language.
  • NumericalAlgorithms.jl :: Statistics & Numerical algorithms implemented in Julia.
  • PiecewiseInterpolation.jl :: A simple interface for interpolations on timeseries with first order discontinuities (using Dierckx.jl).
  • 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.
WIP or may not work
  • 🏚️ Dopri.jl :: A Julia wrapper for the DOPRI5 and DOP853 integrators.
  • 🏚️ EiSCor.jl :: A Julia wrapper of the Fortran library eiscor.
  • 🏚️ Grid.jl :: Interpolation and related operations on grids. Deprecated in favor of Interpolations.
  • 🏚️ OpenSpecFun.jl :: A Julia wrapper for the OpenSpecFun library of special functions.
  • 🏚️ RK4.jl :: This package implements a fairly fast Runge-Kutta 4th order with fixed stepsize, also implements a stochastic solver that is not technically provably accurate, but works well for finite bandwidth SDE’s.
  • 🏚️ RungeKuttaFehlberg.jl :: A Julia implementation of the RKF45 method for time integration.

Linear Algebra

Linear Algebra

  • CLBLAS.jl :: CLBLAS integration for Julia. (No Project.toml)
  • DirectSum.jl :: Abstract tangent bundle vector space type operations.
  • Divergences.jl :: A Julia package that makes it easy to evaluate divergence measures between two vectors. The package allows calculating the gradient and the diagonal of the Hessian of several divergences which can be used to good effect by the MomentBasedEstimators package.
  • Elemental.jl :: A Julia interface to the Elemental linear algebra library with third-party interfaces. Source code.
  • FEMBasis.jl :: Package contains interpolation routines for standard finite element function spaces.
  • FGenerators.jl :: A package for defining Transducers.jl-compatible extended foldl with a simple @yield-based syntax.
  • GenericLinearAlgebra.jl :: Partly to extend linear algebra functionality in base to cover generic element types, e.g. BigFloat and Quaternion, and partly to be a place to experiment with fast linear algebra routines.
  • IncrementalSVD.jl :: Simon Funk’s approach to collaborative filtering using the singular value decomposition, implemented in Julia.
  • IntelVectorMath.jl :: Julia bindings for the Intel Vector Math Library.
  • ITensors.jl:: A Julia library for efficient tensor calculations.
  • IterativeSolvers.jl :: Iterative algorithms for solving linear systems, eigensystems, and singular value problems.
  • JuliaFEM.jl :: Finite Element method solver.
  • Krylov.jl :: A Julia Basket of Hand-Picked Krylov Methods.
  • Leibniz.jl :: Operator algebras for mixed-symmetry multivariate differentiable tensor fields.
  • LinearMaps.jl :: A Julia package for defining and working with linear maps, also known as linear transformations or linear operators acting on vectors. The only requirement for a LinearMap is that it can act on a vector (by multiplication) efficiently.
  • LLLplus.jl :: LLL lattice reduction, sphere decoder, and related lattice tools.
  • LMCLUS.jl :: Julia’s package for Linear Manifold Clustering.
  • MKL.jl :: Intel MKL linear algebra backend for Julia
  • MUMPS :: A wrapper for a MUltifrontal Massively Parallel sparse direct Solver of large linear systems in Julia.
  • MUMPSjInv.jl :: An alternative implementation of a Julia interface to the sparse direct solver MUMPS. A MUMPS package for Julia is already registered but that package does not conform to the packaging standards for Julia.
  • PETSc.jl :: This package provides a high level interface for PETSc, enabling the use of PETSc as an AbstractArray.
  • SugarBLAS.jl :: Syntactic sugar for BLAS polynomials.
  • TensorOperations.jl :: Julia package for tensor contractions and related operations.
  • Transducers.jl :: provides composable algorithms on “sequence” of inputs. This feature, available in Clojure language, is a transformation matrix for linear transformations that is now in Julia.
  • Tullio.jl :: A package for writing array operations in index notation.
  • VSL.jl :: Julia bindings for the Intel Vector Statistics Library.
WIP or may not work
  • 🏚️ Accelereval.jl :: A Julia framework for accelerated re-compiled evaluation of numerical functions that ensures faster computation.
  • 🏚️ BSplines.jl :: This package provides B-Splines for 1D signals, i.e. functions of type Real -> Real.
  • 🏚️ CUSOLVER.jl :: Julia bindings for the NVIDIA CUSOLVER library. CUSOLVER is a high-performance direct-solver matrix linear algebra library.
  • 🏚️ CUSPARSE.jl :: Julia interface to NVIDIA’s CUSPARSE library.
  • 🏚️ Hypre.jl :: A wrapper for the Hypre library.
  • 🏚️ IDRsSolver.jl :: Induced Dimension Reduction method [IDR(s)] for solving general linear equations. Incorporated into IterativeSolvers.jl.
  • 🏚️ IterativeLinearSolvers.jl.
  • 🏚️ JointMoments.jl :: Tensors and statistics for joint central moments.
  • 🏚️ LDA.jl :: Linear Discriminant Analysis and Kernel Fisher Analysis.
  • 🏚️ LMesh.jl :: A Mesh package that implements the type of mesh sugessted by Logg (2012).
  • 🏚️ MiniBall.jl :: Julia package for a smallest enclosing sphere for points in arbitrary dimensions.
  • 🏚️ NumericalShadow.jl :: Library to calculate numerical shadows in Julia language.
  • 🏚️ NumericExtensions.jl :: Julia extensions to provide high performance computational support for fast vectorized computation.
  • 🏚️ NumericFunctors.jl :: Typed functors for numerical computations.
  • 🏚️ NumericFuns.jl :: Math functions and functors for numerical computations.
  • 🏚️ OpenCLBLAS.jl :: OpenCL BLAS library wrapper for Julia with samples.
  • 🏚️ ParallelLinalg.jl :: Distributed Dense Linear Algebra for Julia.
  • 🏚️ PNLA_Julia :: Polynomial Multi-functional Numerical Linear Algebra package for solving all kinds of problems with multivariate polynomials in double precision in Julia.
  • 🏚️ SALT.jl :: SALT (steady-state ab-initio laser theory) solver package for Julia. (No Project.toml)
  • 🏚️ SuperLU.jl :: Julia interface to the SuperLU solver package for sparse systems.


πŸ“– Matrix Theory

Special Array/Matrix Algorithms, for Array Types, see Data Types section.

  • AxisAlgorithms.jl :: Efficient filtering and linear algebra routines for multidimensional arrays.
  • CatIndices.jl :: Julia package for indices-aware array concatenation and growth.
  • ConvolutionTools.jl :: Tools for convolutions of multi-dimensional arrays in Julia.
  • EndpointRanges.jl :: Julia package for doing arithmetic on endpoints in array indexing.
  • Kronecker.jl :: A general-purpose toolbox for efficient Kronecker-based algebra that combines lazy evaluation and algebraic tricks such that it can implicitely work with huge matrices. It allows to work with large Kronecker systems both much faster and using much less memory than the naive implementation of the Kronecker product.
  • KSVD.jl :: K-SVD is an algorithm for creating overcomplete dictionaries for sparse representations.
  • LowRankApprox.jl :: Fast low-rank matrix approximation in Julia.
  • PaddedViews.jl :: Add virtual padding to the edges of an array.
  • PDMats.jl :: Uniform Interface for positive definite matrices of various structures.
  • PositiveFactorizations.jl :: Positive-definite (approximations) to matrices.
WIP or may not work
  • πŸ—οΈ ArrayIteration.jl :: Testing new ideas for array iteration. Some of the features have already moved to Julia itself.
  • 🏚️ ArrayMeta.jl :: metaprogramming for Julia arrays.
  • 🏚️ ArrayViews.jl :: A Julia package to explore a new system of array views. No longer necessary in Julia 0.4 or higher.
  • 🏚️ ArrayViewsAPL.jl :: Generic array-view type with APL indexing semantics.
  • 🏚️ FArrayMod.jl :: provides the ability to use arbitrary starting indices for arrays in Julia programming language.
  • 🏚️ HMat.jl :: Hierarchical Matrix.
  • 🏚️ InplaceOps.jl :: Convenient macros for in-place matrix operations in Julia.
  • 🏚️ julia-delayed-matrix :: Delayed processing of Vector / Matrix expression in Julia with various backends.
  • 🏚️ LargeColumns.jl :: Handle large columns (vectors of equal length) with bits types in Julia using mmap.
  • 🏚️ Showoff.jl :: Nicely format an array of n things for tables and plots.

Sparse Matrices

πŸ“– Sparse Matrices

WIP or may not work
  • 🏚️ CSparse.jl :: A Julia implementation of functions in the CSparse and CXSparse libraries.
  • 🏚️ MultiFrontalCholesky.jl :: The Cholesky decomposition of a Hermitian, positive-definite matrix into the product of a lower triangular matrix and its conjugate transpose, used for efficient numerical solutions and Monte Carlo simulations.
  • 🏚️ MUMPSseq.jl :: Alternative Julia interface to MUMPS sparse system solver.
  • 🏚️ ParallelSparseMatMul.jl :: A Julia library for parallel sparse matrix multiplication using shared memory.
  • 🏚️ SparseData.jl :: A Julia package to support working with sparse data sets (e.g. text corpus).
  • 🏚️ WSMP.jl :: Interface to the Watson Sparse Matrix Package.


Digital signal processing (DSP)

πŸ“– DSP

  • DSP.jl ::Filter design, periodograms, window functions, and other digital signal processing functionality.
  • ImageMethodReverb.jl :: Julia implementation of a Room Acoustics Impulse Response Generator using the Randomized Image Method (RIM).
  • MDCT.jl :: This module computes the modified discrete cosine transform (MDCT) in the Julia language and the inverse transform (IMDCT), using the fast type-IV discrete cosine tranform (DCT-IV) functions in Julia (via FFTW).
WIP or may not work
  • 🏚️ APES.jl :: Amplitude and Phase Estimation of a Sinusoid.
  • 🏚️ ChaosCommunications.jl :: Simulation of chaos-based communication systems in Julia.
  • 🏚️ CompressedSensing :: A basic compressed sensing algorithms available via the official package list with documentation.
  • 🏚️ Estimation.jl :: A julia package for DSP related estimation.
  • 🏚️ Fdtd.jl :: 3D Room Acoustics Finite Difference Time Domain (FDTD) Simulator.
  • 🏚️ KDSP.jl :: Yet another implementation of common DSP routines in Julia.
  • 🏚️ KernelRecursiveLeastSquares.jl :: Julia implementation of Kernel Recursive Least Squares algorithm.
  • 🏚️ Multirate.jl :: Streaming polyphase DSP filters with sample rate conversion.
  • 🏚️ WDSP.jl :: Digital signal processing used in turbulence implemented in Julia.

Fast Fourier transform (FFT)

πŸ“– FFT

  • FFTViews.jl :: Julia package for fast fourier transforms and periodic views.
  • FFTW.jl :: Julia bindings to the FFTW library for fast Fourier transforms.
  • HexFFT.jl :: Fast Fourier transform on hexagonal grids using Birdsong and Rummelt’s algorithm.
  • NFFT.jl :: Julia implementation of the NFFT : Non-equidistant Fast Fourier Transform.
WIP or may not work
  • 🏚️ CLFFT.jl :: Julia bindings for AMD’s clFFT library.
  • 🏚️ CUFFT.jl :: Wrapper for the CUDA FFT library.
  • 🏚️ SnFFT.jl :: A Julia package designed to facilitate harmonic analyis on the symmetric group of order n, denoted Sn.

Symbolic Computation

πŸ“– Symbolic Computation

  • Reduce.jl :: Symbolic parser generator for Julia language expressions using REDUCE algebra term rewriter.
  • Symata.jl :: language for symbolic mathematics.
  • Symbolics.jl :: A fast and modern CAS for a fast and modern language.
  • SymEngine.jl :: Julia wrappers of SymEngine.
  • SymPy.jl :: Julia interface to SymPy via PyCall.


πŸ“– Polynomials

WIP or may not work
  • 🏚️ InterPol.jl :: Interpolating polynomial for Julia.
  • 🏚️ Orthopolys.jl :: Orthogonal Polynomials - Currently supports Jacobi polyonomials, Gegenbauer polynomials, Hermite polynomials.
  • 🏚️ TempInterp.jl :: Evaluation of Chebyshev polynomials and splines.


Wikiepedia | 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, mainly for use in the FrameFuns package.
  • 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.
  • SpecialFunctions.jl :: Special mathematical functions in Julia.
  • Struve.jl :: Struve functions for Julia.
WIP or may not work
  • 🏚️ FastAnonymous.jl :: Fast anonymous functions for Julia. A native feature for Julia 0.5+.


  • Calculus.jl :: Calculus package.
  • ChainRules.jl :: forward and reverse mode automatic differentiation primitives.
  • Cuba.jl :: Library for multidimensional numerical integration with the Cuba library.
  • Cubature.jl :: One- and multi-dimensional adaptive integration routines for the Julia language.
  • DualNumbers.jl :: Julia package for representing dual numbers and for performing dual algebra.
  • Einsum.jl :: Einstein summation notation in julia.
  • FastGaussQuadrature.jl :: Computes Gauss quadrature rules to 16-digit precision (so far Legendre, Jacobi, Lobatto, Radau).
  • FiniteDifferences.jl :: High accuracy derivatives, estimated via numerical finite differences.
  • ForwardDiff.jl :: Forward Mode Automatic Differentiation for Julia.
  • HCubature.jl :: Pure-Julia multidimensional h-adaptive integration.
  • HyperDualNumbers.jl :: Hyper-Dual Numbers for Exact Second-Derivative Calculations, is structured similar to the DualNumbers package, which aims for complete support for HyperDual types for numerical functions within Julia’s Base. Currently, basic mathematical operations and trigonometric functions are supported.
  • NLsolve.jl :: Julia solvers for systems of nonlinear equations.
  • ReverseDiff.jl :: Reverse Mode Automatic Differentiation for Julia.
  • ReverseDiffSparse.jl :: Hessian algorithmic differentiation to compute hessian sparsity pattern.
  • RiemannComplexNumbers.jl :: 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.
WIP or may not work
  • 🏚️ IFastSum.jl :: Accurate summation (Yuhang Zhao’s iFastSum).
  • 🏚️ MINE.jl :: Julia wrapper for Maximal Information-based Nonparametric Exploration (MIC and MINE family).
  • 🏚️ Options.jl :: A framework for providing optional arguments to functions.
  • 🏚️ PowerSeries.jl :: Truncated Power Series for Julia.
  • 🏚️ Quadrature.jl : Gauss quadrature in Base.
  • 🏚️ ReverseDiffOverload.jl :: Reverse mode differentiation for pre-defined functions.
  • 🏚️ ReverseDiffSource.jl :: Automated differentiation by reverse accumulation. Documentation.
  • 🏚️ ReverseDiffTape.jl :: A Julia package for reverse mode differentiation on a tape.

Solving Differential equations

πŸ“– Differential Equations.

  • DiffEqSensitivity.jl :: A component of the DiffEq ecosystem for sensitivity analysis.
  • DifferentialEquations.jl :: Equations within the realm of this package include ordinary differential equations, stochastic ordinary differential equations (SODEs or SDEs), differential algebraic equations (DAEs), stochastic partial differential equations (SPDEs), partial differential equations (with both finite difference and finite element methods), and differential delay equations.
  • DiffModels.jl : Diffusion Model simulation and first-passage time densities in Julia.
  • DynamicalSystems.jl :: Julia software library for the exploration of chaos and nonlinear dynamics.
  • RiemannHilbert.jl :: A Julia package for solving Riemann–Hilbert problems.
  • SingularIntegralEquations.jl :: An experimental Julia package for solving singular integral equations.
  • Sundials.jl :: A Julia package that interfaces to the Sundials library and includes a nonlinear solver (KINSOL), ODE’s (CVODE), and DAE’s (IDA).
  • WiltonInts84.jl :: Integrals of arbitrary powers of R over flat triangles.
WIP or may not work
  • 🏚️ DynamicalSystems.jl :: A collection of Julia functions that produce the systems of ODEs for various dynamical systems.
  • 🏚️ HPFEM.jl :: HP Finite elements in Julia.
  • 🏚️ JFinEALE.jl(404) :: A Finite Element Analysis Learning Environment (FinEALE) package for finite element analysis of continua. This toolkit is a redesign of the Matlab toolkit.
  • 🏚️ Makhno.jl :: Spectral element code implemented in Julia.
  • 🏚️ MovcolN.jl :: Moving collocation method to solve one dimensional partial differential equations.
  • 🏚️ TetGen.jl :: Finite Element method solver, a Julia wrapper for the C++ project TetGen.

Resources about calculus

Mathematical Analysis

πŸ“– Mathematical Analysis

  • Complementarity.jl :: This package provides a modeling and computational interface for solving Mixed Complementarity Problems (MCP), modeling by JuMP.jl and computing by PATHSolver.jl.
  • Fatou.jl :: Fatou sets in Julia (Fractals, Newton basins, Mandelbrot).
  • PATHSolver.jl :: Coverage StatusThis package provides a Julia wrapper of the PATH Solver for solving Mixed Complementarity Problems (MCP).
  • Wilkinson.jl :: Toolkit for studying numerical analysis and floating point algebra round-off error in Julia.

Discrete math

πŸ“– Discrete math. πŸ“– Combinatorics.

  • Collatz.jl:: The Collatz conjecture.
  • PermPlain.jl :: Permutations implemented with plain data types - This package implements methods for manipulating permutations. The methods operate on data types in the Base module, or in modules providing generic data types.
  • Permutations.jl by @scheinerman :: Permutations class for Julia.
  • PermutationsA.jl by @jlapeyre :: Permutation data types and methods.
  • SimplePosets.jl :: Simple partially ordered sets for Julia.
  • ZChop.jl :: Replaces small numbers with zero.
WIP or may not work
  • 🏚️ Catalan.jl :: a combinatorics library for Julia.
  • 🏚️ DiscreteInference.jl :: Viterbi algorithm.
  • 🏚️ IPPMath.jl :: A Julia package for vectorized math computation based on Intel IPP.
  • 🏚️ PrimeSieve.jl :: This package provides an interface to tables of primes and a sieve library.
  • 🏚️ RomanNumerals.jl :: Support for Roman numerals in Julia.
  • 🏚️ Shannon.jl :: Entropy, Mutual Information, KL-Divergence related to Shannon’s information theory and functions to binarize data.

Graph Theory

πŸ“– Graph Theory

For graph/tree datatypes, see Data Types

WIP or may not work
  • 🏚️ bloom.jl :: Bloom filter implementation in Julia.
  • 🏚️ Blox.jl :: Views of concatenated AbstractArrays in Julia.
  • 🏚️ Brim.jl :: BRIM modularity - Various ways to optimize the modularity of bipartite networks using BRIM in Julia.
  • 🏚️ Flow.jl :: DataFlow programming for Julia.
  • 🏚️ GraphicalModels.jl :: Data structures and parsing tools for representing graphical models in Julia.
  • 🏚️ GraphLayout.jl :: Graph layout algorithms in pure Julia.
  • 🏚️ Graphs.jl :: a package for working with graph types and algorithms in Julia.
  • 🏚️ InfoTheory.jl :: Estimating information theoretic measures (entropy, mutual information etc) from data.
  • 🏚️ InvariantEnsembles.jl :: Sample random unitary invariant ensembles.
  • 🏚️ L1DecisionTree.jl.
  • 🏚️ LiftedHierarchies.jl :: Hierarchical relaxations for mixed-integer optimization (Lasserre, Sherali-Adams, etc.)
  • 🏚️ LSH.jl :: Locality Sensitive Hashing functions.
  • 🏚️ MinimalPerfectHashes.jl :: An implementation of minimal perfect hash function generation as described in Czech et. al. 1992.
  • 🏚️ Networks.jl :: A library for working with Graphs in Julia.
  • 🏚️ RandomForestBehaviors.jl :: Microscopic driving models based on random forests.
  • 🏚️ RepresentationTheory.jl :: representation theory of the symmetric group.
  • 🏚️ rsk :: Code for exploring the Robinson–Schensted–Knuth correspondence.
  • 🏚️ SFrames.jl :: Wrapper around the open-source components of Graphlab.
  • 🏚️ Sims.jl :: Non-causal, equation-based modeling in Julia.
  • 🏚️ TSPSubgradient.jl :: A TSP approximation with the subgradient method.



Puzzles, problem solving games

  • Chess.jl :: Julia chess programming library.
WIP or may not work
  • 🏚️ PlayingCards.jl :: Package for simulating Playing Cards games in Julia.
  • 🏚️ Sudoku.jl by @hayd :: A port of Peter Norvig’s Solving Every Sudoku Puzzle to Julia.
  • 🏚️ sudoku.jl by @johnmyleswhite :: A simple Sudoku solver in Julia.
  • 🏚️ sudoku by @Alexander-N :: Reimplementing the Python version of Peter Norvig’s Sudoku solver in Julia.
  • 🏚️ SudokuService :: Sudoku-as-a-service, powered by Julia, JuMP modelling, and CoinOR CBC integer programming solver.
  • 🏚️ Tetris.jl :: Tetris.


  1. Julia.jl is under COPYRIGHT Β© 2012-Now SVAKSHA, dual-licensed for the data (ODbL-v1.0+) and the software (AGPLv3+), respectively. ↩︎