Only Mathematical libraries and packages, and related resources.
NB: Many packages may not be regularly updated to work with Julia nightlies or the currently released stable version of Julia.
CRYPTOGRAPHY
Cryptocurrency
- BitCoin.jl :: A library for working with Bitcoin written in Julia.
MATH
- DOCS : Mathematical Operations and a list of all overloadable operators in Julia.
- BasisFunctions.jl :: A collection of routines for working with a number of standard basis functions, mainly for use in the FrameFuns package.
- Bijections.jl :: Bijection datatype for Julia.
- Church.jl :: helps you perform inference in complex, and simple, probabilistic models.
- Cartesian.jl :: Fast multidimensional algorithms.
- Catalan.jl :: a combinatorics library for Julia.
- CRF.jl :: Conditional Random Fields in Julia.
- CellularAutomata.jl :: Cellular Automata package.
- ContinuedFractions.jl :: Types and functions for working with continued fractions in Julia.
- Devectorize.jl :: A Julia framework for delayed expression evaluation.
- DiffModels.jl : Diffusion Model simulation and first-passage time densities in Julia.
- Entropy.jl :: This package contains functionality for computing binless estimates of entropy from discrete and continuous samples for continuous distributions.
- Equations.jl :: Derive mathematical relations.
- ExtremeValueDistributions.jl :: A Julia package to fit extreme value distributions.
- FastGauss.jl :: Computes Gauss quadrature rules to 16-digit precision (so far Legendre, Jacobi, Lobatto, Radau).
- FloorLayout.jl :: Framework and various drivers for floor layout formulation analysis.
- FrameFuns.jl :: Exploring practical possibilities of approximating functions with frames rather than with a basis.
- GSL.jl :: Julia interface to the GNU Scientific Library - GSL.
- Hecke.jl.
- Hexagons.jl :: Useful tools for working with hexagonal grids.
- Measures.jl :: Unified measure and coordinates types.
- MPFR.jl :: A Julia package for the GNU MPFR library.
- Multicombinations.jl :: An iterator for k-combinations with repetitions, k-multicombinations, k-multisubsets.
- NaNMath.jl :: Julia math built-ins which return NaN.
- NLreg.jl :: Nonlinear regression in Julia.
- NLsolve.jl :: Julia solvers for systems of nonlinear equations.
- nrmm.jl :: Posterior inference algorithms for normalized random measure mixtures.
- OEIS.jl :: A basic wrapper to allow access to OEIS from within Julia.
- Quadrature.jl : Gauss quadrature in Base.
- Quat.jl :: Quaternions, octonions and dual-quaternions.
- quaternion.jl :: Quaternion for Julia Language.
- Sieve of Atkin :: Implemented by @Ismael-VC as per the WP pseudocode with a comparision of "atkin" with "Base.primes", tested on JuliaBox version
0.4.0-dev+5491
.
- 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.
- 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.
- SymPy.jl :: Julia interface to SymPy via PyCall.
- TSne.jl :: Julia port of L.J.P. van der Maaten and G.E. Hinton's T-SNE visualisation technique. Read about the t-Distributed Stochastic Neighbor Embedding
- 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 and its newly maintained fork.
- Unums.jl :: Unum (Universal Number) types and operations.
- UnumTests.jl :: Some experiments with Unums. {#NonCuratedPackage}
- utils.jl :: basic utilities needed for scientific coding with julia.
- DeepConvert.jl :: This package provides convenient literal construction of values of large data types.
- ErrorFreeArith.jl :: Error-Free transformations for arithmetic ops.
- 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.
- DoubDouble.jl.
- DoubleDouble.jl :: A Julia package for performing extended-precision arithmetic using pairs of floating-point numbers.
- ErrorFreeTransforms.jl :: Map the rounding errors in floating point arithmetic with error-free transformations (EFT).
- FlexFloat.jl :: Allows values to stretch in a way that preserves accuracy durring mathematical computations.
- Floats512.jl :: Accurate floating point math at extended precision for Float-512.
- Floats1024.jl :: Accurate floating point math at extended precision for Float-1024.
- FloatHigher.jl :: accurate floating point math at extended precisions.
- ValidatedNumerics.jl :: Rigorous floating-point calculations via interval arithmetic.
Resources
Algebra
- algebra :: A hierarchy of abstract algebraic structures in Julia.
- AMVW.jl :: Fast and backward stable computation of roots of polynomials in Julia
- CLBLAS.jl :: CLBLAS integration for 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.
- Hecke :: A package for algebraic number
theory that works on top of
Nemo.jl
by Tommy Hofmann and Claus Fieker.
- Juniper.jl :: A simple computer algebra system.
- Lifts.jl :: Linear fractional transformations in Julia. This module defines a Lift data type to represent a complex linear fractional transformation.
- Mods.jl :: Easy modular arithmetic for Julia.
- MultiPoly.jl :: Sparse multivariate polynomials in Julia.
- Nemo.jl :: A computer algebra package for the Julia programming language. The source code is maintained by William Hart, Tommy Hofmann, Claus Fieker, Fredrik Johansson, Oleksandr Motsak and other contributors.
- QNaN.jl :: Quiet NaNs were designed to propagate information from within numerical computations.
- OrderedCollections.jl :: OrderedDict and OrderedSet for Julia.
- SemiringAlgebra.jl :: Semiring Algebra.
Resources
- adeles :: Ideles adeles algebraic number theory.
- BitCircuits.jl :: Boolean circuit evaluation using bitwise operations.
- ShowSet.jl :: Nicer output for Set and IntSet objects.
Orthogonal Polynomials
- ChebyshevApprox :: Julia code to approximate continuous functions using Chebyshev polynomials.
- InterPol.jl :: Interpolating polynomial for Julia.
- Jacobi.jl :: Jacobi polynomials and Gauss quadrature related functions.
- Orthopolys.jl :: Orthogonal Polynomials - Currently supports Jacobi polyonomials, Gegenbauer polynomials, Hermite polynomials.
- Polynomial.jl :: Polynomial manipulations and PolyExt.jl, an extension of Polynomial.jl to support polynomial division, with handy conversions and promotion rules.
- TempInterp.jl :: Evaluation of Chebyshev polynomials and splines.
- SJulia :: A partial implementation of a language for symbolic computation, based on pattern matching and an evaluation sequence closely modeled on Mathematica.
- Symbolic.jl :: Symbolic computations and computer algebra in Julia.
- SymEngine.jl :: Julia wrappers of SymEngine.
- ad4julia :: Some automatic diffferentiation coding experiments in Julia.
- Calculus.jl :: Calculus package.
- Calculus2.jl :: A draft of a new interface for the Calculus package.
- FDM.jl :: Finite difference methods in Julia.
- FeynmanKacSpde.jl :: Feynman-Kac SPDE Inference.
- HemirealFactorization.jl :: Matrix factorizations over the hemireals.
- HemirealNumbers.jl :: Implementation of hemireal arithmetic for Julia.
- HyperNumbers.jl :: Julia implementation of HyperNumbers.
- IFastSum.jl :: Accurate summation (Yuhang Zhao's iFastSum).
- pdetools.jl :: Toolbox for solving PDEs.
- PowerSeries.jl :: Truncated Power Series for Julia, which exports a Series type that represents a truncated power series by its coefficients. You can do arithmetic on Series and apply functions to series just as you would Real or Complex numbers.
- PolyMath.jl :: a package for polynomial arithmetic, calculus, interpolation and quadrature algorithms implemented in Julia.
- RAD.jl :: package defines a macro, @autodiff, for reverse-mode automatic differentiation.
- RDE.jl :: Simulation and Bayesian Inference for Rough Differential Equations (RDEs).
- ReverseDiffOverload.jl :: Reverse mode differentiation for pre-defined functions.
- ReverseDiffSparse.jl :: Hessian algorithmic differentiation to compute hessian sparsity pattern.
- ReverseDiffSparse2.jl :: Prototype replacement for ReverseDiffSparse based on flattened out expression graphs.
- ReverseDiffTape.jl :: A Julia package for reverse mode differentiation on a tape.
- RiemannComplexNumbers.jl :: The RiemannComplexNumbers module is an alternative Complex type for Julia (with a single complex infinity value).
- TaylorSeries.jl :: A julia package for Taylor expansions in one independent variable.
Resources
- 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.
- 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.
- 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).
- Multirate.jl :: Streaming polyphase DSP filters with sample rate conversion.
- RIM.jl :: Julia implementation of a Room Acoustics Impulse Response Generator using the Randomized Image Method (RIM).
- wavechaos
- WDSP.jl :: Digital signal processing used in turbulence implemented in Julia.
- DSP.jl :: The DSP ver-0.0.1 package, includes functions for periodogram estimation, generating window functions, filter design and FFT-based FIR filtering, works on Julia 0.2 and 0.3-prerelease. The documentation is available via RTD.org
- CLFFT.jl :: Julia bindings for AMD's clFFT library.
- CUFFT.jl :: Wrapper for the CUDA FFT library.
- NFFT.jl :: Julia implementation of the NFFT : Non-equidistant Fast Fourier Transform.
- SnFFT.jl :: A Julia package designed to facilitate harmonic analyis on the symmetric group of order n, denoted Sn.
- ApproxFun :: Julia IFun Implementation is a package for approximating functions. It currently supports intervals, the real line, periodic intervals and the unit circle. It is heavily influenced by the Matlab package chebfun and the Mathematica package RHPackage.
- SIE.jl :: Julia package for solving singular integral equations and Riemann–Hilbert problems Julia package for solving singular integral equations and Riemann–Hilbert problems.
- SingularIntegralEquations.jl :: Julia package for solving singular integral equations and Riemann–Hilbert problems.
Resources
- AutoDiff.jl :: Juila package for performing automatic differentiation.
- DASSL.jl :: An implementation of the Differential Algebraic System SoLver (DASSL) algorithm for solving algebraic differential equations.
- DualNumbers2.jl :: Another Julia implementation of dual numbers for automatic differentiation.
- DynamicalSystems.jl :: A collection of Julia functions that produce the systems of ODEs for various dynamical systems.
- IVPTestSuite.jl :: DE solver test suite of Ordinary differential equations (ODE) and algebraic differential equations (DAE).
- HPFEM.jl :: HP Finite elements in Julia.
- JFinEALE.jl :: 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.
- ODEDSL.jl :: Domain specific language to write ODE models with tests. Automatic code generation for Julia, R and CPP (via Rcpp).
- odesolver :: Collection of solvers for Ordinary Differential Equations.
- RiemannHilbert.jl :: Riemann–Hilbert problems, named after Bernhard Riemann and David Hilbert, are a class of problems that arise in the study of differential equations in the complex plane.
Resources
Org-JuliaLang
- AppleAccelerate.jl :: Julia interface to OS X's Accelerate framework.
- ODE.jl :: Assorted basic Ordinary Differential Equation solvers.
- Options.jl :: A framework for providing optional arguments to functions.
- Roots.jl :: Root finding functions for Julia.
- SortingAlgorithms.jl :: extra sorting algorithms extending Julia's sorting API.
- Sundials.jl :: A Julia package that interfaces to the Sundials library and includes a nonlinear solver (KINSOL), ODE's (CVODE), and DAE's (IDA).
- ReverseDiffSource.jl :: Automated differentiation by reverse accumulation. Documentation.
- 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.
- ForwardDiff.jl :: Juila package for performing forward mode automatic differentiation.
- DualNumbers.jl :: Julia package for representing dual numbers and for performing dual algebra.
- NDuals.jl :: Experimental package for stack-allocated dual numbers with multiple epsilon components.
- LambertW.jl :: A package implementing the Lambert_W function and associated omega constant.
- ClosedIntervals.jl :: Closed intervals of the form [a,b].
- DiscreteFactor.jl :: Discrete factor and its operations in Probabilistic Graphical Models.
- DiscreteInference.jl :: Viterbi algorithm.
- Intervals.jl :: A pure Julia reimplementation of MPFI, a multiple precision interval arithmetic library.
- IntModN.jl :: Ring(s) of Integers Modulo-N.
- IPPMath.jl :: A Julia package for vectorized math computation based on Intel IPP.
- 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.
- 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.
- SimplePosets.jl :: Simple partially ordered sets for Julia.
- ZChop.jl :: This package replaces small numbers with zero, works on complex and rational numbers, arrays, and some other structures. The idea is for zchop to descend into structures, chopping numbers, and acting as the the identity on anything that can't be sensibly compared to eps.
- AffineTransforms.jl :: Computational geometry with affine transformations
- ConicHulls.jl :: Exact dynamic conic hulls of integer vectors.
- ConvexHull.jl :: A Julia library for polyhedral computations.
- D4.jl :: An attempted implementation of Enumerating Quartic Dihedral Extensions of Q by Cohen, Diaz y Diaz, and Olivier in Composito Mathematica 2002.
- GeoAlg.jl :: A basic geometric
algebra library in Julia.
- Geometry2D.jl :: 2D computational geometry package for Julia programming language.
- mbr.jl :: axis aligned minimum bounding box.
- Tau.jl :: A simple module providing definition of the Tau constant.
- Tensors.jl :: Julia package for tensor decompositions.
- TensorOperations.jl :: Julia package for tensor contractions and related operations.
- CSoM.jl :: Investigate Julia version of "Programming the FEM" by I M Smith, D V Griffiths.
- EllipticCurves.jl :: Elliptic Curves in Julia.
- khypot.jl :: k dimensional hypotenuse.
- FEM.jl :: Simple finite elements in Julia.
- ols.jl :: Julia type for multiple (multivariate) regression using OLS - Performs least squared regression on linear equations of multiple independent variables.
- SurfaceMesh.jl :: A Finite element surface mesh manipulation library to work with polygon-surface-meshes.
- TrussPlotter.jl :: This is a package to plot trusses for finite element results.
- Descartes.jl :: A research project into the representation of solid geometry.
- ApproXD.jl :: B-splines and linear high-dimensional approximators in multiple dimensions for Julia.
- Dopri.jl :: A Julia wrapper for the DOPRI5 and DOP853 integrators.
- Dierckx.jl:: A Julia wrapper for the Dierckx Fortran library for spline fitting.
- EiSCor.jl :: A Julia wrapper of the Fortran library "eiscor" (Fortran 90 subroutines for structured matrix eigenvalue problems using 2x2 unitary matrices) for efficiently solving structured matrix eigenvalue problems using unitary core transformations
- 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.
- Fork by dlfivefifty :: Gauss quadrature nodes and weights in Julia.
- Grid.jl :: Interpolation and related operations on grids.
- GridInterpolations.jl :: Multi-dimensional grid interpolation in arbitrary dimensions on a recti-linear grid.
- InplaceOps.jl :: Convenient macros for in-place matrix operations in Julia.
- Interpolations.jl :: B-spline interpolation in Julia.
- LinearExpressions.jl :: is a Julia package to manipulate symbolic linear expressions with both scalar and matrix coefficients - large linear matrix inequalities (LMI) for SDP optimization.
- 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.
- LowRankApprox.jl :: Fast low-rank matrix approximation in Julia.
- RandomMatrices.jl :: Random Matrices.
- Video of Jiahao and Andreas talk on Free probability, random matrices and disorder in organic semiconductors at MIT CSAIL.
- Knitro.jl :: Julia interface to the Knitro solver.
- 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.
- MovcolN.jl :: Moving collocation method to solve one dimensional partial differential equations.
- NAG.jl :: Julia package to wrap the NAG Numerical Library, a propreitary software library of numerical analysis routines, mathematical and statistical algorithms for linear algebra, optimization, quadrature, the solution of ordinary and partial differential equations, regression analysis, and time series analysis.
- SortedVectors.jl :: A WIP package that implements a SortedVector type.
Linear Algebra
- AxisAlgorithms.jl :: Efficient filtering and linear algebra routines for multidimensional arrays.
- CUSPARSE.jl :: Julia interface to NVIDIA's CUSPARSE library.
- CUSOLVER.jl :: Julia bindings for the NVIDIA CUSOLVER library. CUSOLVER is a high-performance direct-solver matrix linear algebra library.
- green-fairy :: Lattice trees.
- Hypre.jl :: A wrapper for the Hypre library.
- IDRsSolver.jl :: Induced Dimension Reduction method [IDR(s)] for solving general linear equations.
- juliaSpot :: The Julia implementation of the Spot Linear Algebra Package.
- KrylovSolvers.jl :: Solve sparse linear systems in an efficient and iterative manner with Krylov Solvers.
- LinearAlgebra.jl :: Eigenvalue and -vector calculations in Julia.
- LMesh.jl :: A Mesh package that implements the type of mesh sugessted by Logg (2012).
- LDA.jl :: Linear Discriminant Analysis and Kernel Fisher Analysis.
- LLLplus.jl :: LLL lattice reduction, sphere decoder, and related lattice tools.
- LMCLUS.jl :: Julia's package for Linear Manifold Clustering.
- MUMPS :: A wrapper for a MUltifrontal Massively Parallel sparse direct Solver of large linear systems in Julia.
- MUMPS1.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.
- NonuniformArray.jl :: This library handles the case of "array of arrays" where each subarray may have different lengths - but enforces contiguity of data for ease of passing to outside linear algebra packages.
- PolarFact.jl :: A Julia package for the matrix polar decomposition.
- SALT.jl :: SALT (steady-state ab-initio laser theory) solver package for Julia.
- SuperLU.jl :: Julia interface to the SuperLU solver package for sparse systems.
Numerical Linear Algebra (NLA)
Julia implementations of solvers for Numerical Linear Algebra (NLA) == Numerical Analysis and Linear Algebra algorithms for the numerical solution of matrix problems.
- 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.
- Elemental.jl :: A Julia interface to the Elemental linear algebra library with third-party interfaces. Source code.
- IncrementalSVD.jl :: Simon Funk's approach to collaborative filtering using the singular value decomposition, implemented in Julia.
- InteriorPoint.jl :: Primal-dual interior point solver for linear programs.
- IterativeLinearSolvers.jl.
- IterativeSolvers.jl :: Implement Arnoldi and Lanczos methods for svds and eigs.
- NumericalShadow.jl :: Library to calculate numerical shadows in Julia language.
- NumericExtensions.jl :: Julia extensions to provide high performance computational support for fast vectorized computation.
- NumericFuns.jl :: Math functions and functors for numerical computations.
- NumericFunctors.jl :: Typed functors for numerical computations.
- 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.
- 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.
- SpecialMatrices.jl :: Package that adds support for several common matrices: Strang, Hankel, Toeplitz, and Vander matrices.
- SpecialMatrices.jl :: Julia package for working with special matrix types.
- ToeplitzMatrices.jl :: Fast matrix multiplication and division for Toeplitz matrices in Julia.
- VML.jl :: Julia bindings for the Intel Vector Math Library.
Finite element methods
For the development of interfaces to sparse matrix solvers such as sequential MUMPS, SuperLU, perhaps Pastix and fill-reducing permutation software such as Metis and Scotch.
- HarwellRutherfordBoeing.jl :: A Julia Reader for the Harwell-Boeing and Rutherford-Boeing Formats.
- MatrixMarket.jl :: A package to read the MatrixMarket file format.
- Meshpart.jl :: A Julia port of some of the functions from John Gilbert and Shang Hua Teng's Meshpart toolbox.
- Metis.jl :: Julia interface to the Metis graph-partitioning algorithms.
- MKLSparse.jl :: Override sparse-dense operations when MKL is available.
- 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.
- MUMPS.jl :: An interface to MUMPS (a MUltifrontal Massively Parallel sparse direct Solver) to efficiently solve large and sparse linear systems in scientific computing.
- MUMPSseq.jl :: Alternative Julia interface to MUMPS sparse system solver.
- SparseVectors.jl :: A Julia package to support sparse vectors.
Resources
PUZZLES
Puzzles, problem solving games