Only Mathematical libraries/ 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.
- BitcoinBlockchain.jl :: Julia package for analyzing the Bitcoin blockchain via the API provided by https://blockchain.info/
- BlockCipherSelfStudy.jl :: Blocks, and RC5.
- Crypto.jl :: A library that wraps OpenSSL, but also has pure Julia implementations for reference.
- FNVHash.jl :: FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with good dispersion.
- Hashlib.jl :: SHA1 implementation for Julia.
- MbedTLS.jl :: Wrapper around mbedtls.
- MD5.jl :: A pure julia MD5 implementation.
- Nettle.jl :: is a simple wrapper around libnettle, a cryptographic library.
- OpenSSL.jl :: WIP OpenSSL bindings for Julia.
- OpenSSLCrypto.jl :: Julia interface to the crypto API of openssl.
- RNGTest.jl :: A package that is a Julia interface to the test suite TestU01 of Pierre l'Ecuyer to test random numbers.
- RNGTesting :: Scripts for testing Julia's RNG's.
- SHA.jl :: a performant, 100% native-julia SHA2-{224,256,384,512} implementation.
- Sha256.jl :: [Sha256 hash algorithm for Julia.
- Stupid.jl :: Analysis of an 8 bit version of the cipher at http://news.quelsolaar.com/#comments101.
- ToyFHE.jl :: Toy implementation of FHE algorithms.
- VML.jl :: Julia bindings for the Intel Vector Math Library.
- VSL.jl :: Julia bindings for the Intel Vector Statistics Library.
- BitCoin.jl :: A library for working with Bitcoin written in Julia.
- DOCS : Mathematical Operations and a list of all overloadable operators in Julia.
- ApApproximation.jl :: Implementation of the almost-periodic approximation.
- 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.
- Cartesian.jl :: Fast multidimensional algorithms.
- 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.
- EntropicCone.jl :: Entropic Cone approximation and optimization
- 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.
- MTH229.jl :: Helper files for using Julia with MTH229.
- MathToolkit.jl :: A Julia package providing various functions mainly for the purpose of experimental mathematics.
- Measurements.jl :: Error propagation calculator and library. It supports real and complex numbers with uncertainty, arbitrary precision calculations, and operations with arrays.
- 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.
- OpenSpecFun.jl :: A Julia wrapper for the OpenSpecFun library of special functions.
- 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.
- 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. {Usable: 1, Robust: 1, Active: 1}
- UnumTests.jl :: Some experiments with Unums. {#NonCuratedPackage}
- utils.jl :: basic utilities needed for scientific coding with julia.
- Calc.jl :: An RPN calculator for the Julia REPL.
- DeepConvert.jl :: This package provides convenient literal construction of values of large data types.
- ErrorfreeArithmetic.jl :: Error-free transformations for arithmetic ops.
- ArbFloats.jl :: Arb available as an extended precision floating point context.
- ArbIntervals.jl :: Julia interface to Fredrik Johansson's Arb software.
- BFloat16s.jl :: This package defines the BFloat16 data type. The only currently available hardware implementation of this datatype are Google's Cloud TPUs. As such, this package is suitable to evaluate whether using TPUs would cause precision problems for any particular algorithm, even without access to TPU hardware. Note that this package is designed for functionality, not performance, so this package should be used for precision experiments only, not performance experiments.
- 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.
- 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).
- FastRounding.jl :: Faster directed rounding for inline arithmetic.
- FlexFloat.jl :: Allows values to stretch in a way that preserves accuracy durring mathematical computations.
- FloatFloats.jl.
- 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.
- HigherPrecision.jl :: HigherPrecision defines the subtypes of
AbstractFloat
,DoubleFloat64
, a 128 bit number type with around 30 bits of precision, intended as a drop-in replacement for Float64 and BigFloat. - IEEEFloat16.jl
- Ryu.jl :: Julia implementation of ryu that converts floating point numbers to decimal strings.
- UnumX.jl :: Experimental Unums.
- ValidatedNumerics.jl :: Rigorous floating-point calculations via interval arithmetic.
- Elementary Number Theory :: Primes, Congruences, and Secrets.
- Mimi.jl :: Integrated Assessment Modeling Framework.
- OptiMimi.jl :: Optimization for the
Mimi.jl
modeling framework.
- algebra :: A hierarchy of abstract algebraic structures in Julia.
- AMVW.jl :: Fast and backward stable computation of roots of polynomials 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.
- 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.
- 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.
- OrderedCollections.jl :: OrderedDict and OrderedSet for Julia.
- PolynomialRoots.jl :: Fast complex polynomial root finder, with support for arbitrary precision calculations
- QNaN.jl :: Quiet NaNs were designed to propagate information from within numerical computations.
- Remez.jl :: Remez algorithm for computing minimax polynomial approximations.
- SemiringAlgebra.jl :: Semiring Algebra.
- adeles :: Ideles adeles algebraic number theory.
- BitCircuits.jl :: Boolean circuit evaluation using bitwise operations.
- ShowSet.jl :: Nicer output for Set and IntSet objects.
- DispatchedTuples.jl::
Dispatched Tuples
are like immutable dictionaries (so, they're technically more like NamedTuples) except that the keys are instances of types. Also, because DispatchedTuples are backed by tuples, they are GPU-friendly. - NamedTuples.jl :: An implementation of named tuples to support both index and property based access, for example in the definition of a method or as the return value of a method.
- ApproXD.jl :: B-splines and linear high-dimensional approximators in multiple dimensions for Julia.
- AMD.jl :: Approximate Minimum Degree Ordering in 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.
- Dualization.jl :: Repository with first implementations of the automatic dualization feature for MathOptInterface.jl
- 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.
- FastTransforms.jl :: Julia package for fast orthogonal polynomial transforms.
- 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.
- RollingFunctions.jl :: Roll a function over data, run a statistic along a
weighted
data window. - 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.
- 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.
- SortedVectors.jl :: A WIP package that implements a SortedVector type.
- CLBLAS.jl :: CLBLAS integration for Julia.
- 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.
- OpenCLBLAS.jl :: OpenCL BLAS library wrapper for Julia with samples.
- SugarBLAS.jl :: Syntactic sugar for BLAS polynomials.
- 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.
- FGenerators.jl :: A package for defining Transducers.jl-compatible extended foldl with a simple @yield-based syntax.
- 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.
- Krylov.jl :: A Julia Basket of Hand-Picked Krylov Methods.
- KrylovSolvers.jl :: Solve sparse linear systems in an efficient and iterative manner with Krylov Solvers.
- LinearAlgebra.jl :: Eigenvalue and -vector calculations in Julia.
- 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.
- 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.
- MKL.jl :: is a package that makes Julia's linear algebra use Intel MKL BLAS and LAPACK instead of OpenBLAS. The build step of the package will automatically download Intel MKL and rebuild Julia's system image against Intel MKL.
- 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.
- 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.
- 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.
Special Array Types and Algorithms
- ArrayInterface.jl :: Designs for new Base array interface primitives, used widely through scientific machine learning (SciML) and other organizations.
- ArrayIteration.jl :: Testing new ideas for array iteration.
- ArrayMeta.jl :: metaprogramming for Julia arrays.
- ArrayViews.jl :: A Julia package to explore a new system of array views.
- ArrayViewsAPL.jl :: Generic array-view type with APL indexing semantics.
- AxisAlgorithms.jl :: Efficient filtering and linear algebra routines for multidimensional arrays.
- AxisArrays.jl :: Performant arrays where each dimension can have a named axis with values.
- BandedMatrices.jl :: A Julia package for representing banded matrices.
- CatIndices.jl :: Julia package for indices-aware array concatenation and growth.
- CategoricalArrays.jl :: Arrays for working with categorical data (both nominal and ordinal) in Julia.
- ChunkedArrays.jl :: A package for increasing the performance of arrays generated.
- ConvolutionTools.jl :: Tools for convolutions of multi-dimensional arrays in Julia.
- EndpointRanges.jl :: Julia package for doing arithmetic on endpoints in array indexing.
- FArrayMod.jl :: provides the ability to use arbitrary starting indices for arrays in Julia programming language.
- FlexibleArrays.jl :: Multi-dimensional arrays with arbitrary upper and lower bounds that can be fixed or flexible. Source Code.
- HMat.jl :: Hierarchical Matrix.
- ImmutableArrays.jl :: Statically-sized immutable vectors and matrices.
- IndexedArrays.jl :: A data structure that acts like a Vector of unique elements allowing a quick lookup of the index of any vector element in the array.
- IndirectArrays.jl :: Julia implementation of indexed or "lookup" arrays.
- InfiniteArrays.jl :: A Julia package for representing infinite-dimensional arrays.
- InplaceOps.jl :: Convenient macros for in-place matrix operations in Julia.
- JudyDicts.jl :: Judy Array for Julia.
- julia-delayed-matrix :: Delayed processing of Vector / Matrix expression in Julia with various backends.
- 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.
- LargeColumns.jl :: Handle large columns (vectors of equal length) with bits types in Julia using mmap.
- LazyArrays.jl :: Lazy arrays and linear algebra in Julia.
- MappedArrays.jl :: Lazy in-place transformations of arrays.
- MatrixDepot.jl :: An Extensible Test Matrix Collection for Julia. Documentation: http://matrixdepotjl.readthedocs.org/
- NamedArrays.jl :: Julia type that implements a drop-in replacement of Array with named dimensions and Dict-type indexes.
- NamedAxesArrays.jl :: Performant arrays where each axis can be named.
- NamedTuples.jl :: Provides a high performance implementation of named tuples for Julia (cf named tuples in python).
- 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.
- PaddedViews.jl :: Add virtual padding to the edges of an array - provides a simple wrapper type, PaddedView, to add "virtual" padding to any array without copying data. Edge values not specified by the array are assigned a fillvalue. Multiple arrays may be "promoted" to have common indices using the
paddedviews
function. - Pseudospectra.jl :: a package for computing pseudospectra of non-symmetric matrices, and plotting them along with eigenvalues ("spectral portraits").
- QuasiArrays.jl :: A package for representing quasi-arrays, viz. arrays with non-classical indexing, including possibly continuous indexing.
- RandomBandedMatrices.jl.
- Ranges.jl :: Array-like objects with compact storage for the Julia language.
- RangeArrays.jl :: Efficient and convenient array data structures where the columns of the arrays are generated (on the fly) by Ranges.
- RecursiveArrayTools.jl :: a set of tools for dealing with recursive arrays like arrays of arrays.
- RingArrays.jl :: A sliding window over a huge array.
- Rotations.jl :: Julia implementations for different rotation parameterisations.
- ShiftedArrays.jl :: Lazy shifted arrays implementation for data analysis in Julia. A ShiftedArray is a lazy view of an Array, shifted on some or all of its indexing dimensions by some constant values.
- Showoff.jl :: Nicely format an array of n things for tables and plots.
- StructArrays.jl :: Efficient implementation of struct arrays in Julia
- StructsOfArrays.jl :: Structures of Arrays that behave like Arrays of Structures.
- SoArrays.jl :: Structures of Arrays that behave like Arrays of Structures.
- StaticArrays.jl :: Statically sized arrays for Julia
v0.5
. - StrideArrays.jl :: Library supporting the ArrayInterface.jl strided array interface.
- Strided.jl :: A Julia package for strided array views and efficient manipulations thereof.
- SuffixArrays.jl :: Native Julia suffix array implementation. Derived from sais.
- SymDict.jl :: Dictionaries with Symbol keys.
- TimeArrays.jl :: A temporary repo exploring the union of SeriesPair arrays into multicolumn arrays with similar behavior.
- WoodburyMatrices.jl :: Library support for the Woodbury matrix identity.
- CSparse.jl :: A Julia implementation of functions in the CSparse and CXSparse libraries.
- https://github.com/JuliaSparse :: 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.
- JSparse.jl :: A Julia implementation of functions in the CSparse and CXSparse libraries developed by Tim Davis.
- 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.
- Multifrontal.jl :: Multifrontal direct solvers for sparse matrices.
- 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.
- ParallelSparseMatMul.jl :: A Julia library for parallel sparse matrix multiplication using shared memory.
- Pardiso.jl :: Calling the PARDISO library from Julia.
- PETSc.jl :: sparse-matrix interface for the Julia language.
- SparseData.jl :: A Julia package to support working with sparse data sets (e.g. text corpus).
- SparseFactorModels.jl :: Estimate factor models on sparse datasets.
- SparseGrids.jl.
- SparseVectors.jl :: A Julia package to support sparse vectors.
- SparseVectorMatrix.jl :: SparseMatrices as a vector of SparseVectors.
- WSMP.jl :: Interface to the Watson Sparse Matrix Package.
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.
- Cuba.jl :: Library for multidimensional numerical integration with four independent algorithms: Vegas, Suave, Divonne, and Cuhre. Documentation
- 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.
- 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.
- JuliaFEM.jl :: Finite Element method solver.
- MiniBall.jl.
- NumericalShadow.jl :: Library to calculate numerical shadows in Julia language.
- NumericExtensions.jl :: Julia extensions to provide high performance computational support for fast vectorized computation.
- DOCS:: are available at numericextensionsjl.readthedocs.org
- 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.
- RungeKuttaFehlberg.jl :: A Julia implementation of the RKF45 method for time integration.
- 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.
- TaylorModels.jl :: A numerical mathematics package to treat the high-order scaling property of the remainder bound interval in a Taylor polynomial.
- TetGen.jl :: Finite Element method solver.
- ToeplitzMatrices.jl :: Fast matrix multiplication and division for Toeplitz matrices in Julia.
- Homer Reid's Introduction to Numerical Analysis - Basic Numerical Programming in Julia course.
- JuliaCon2015 :: Sparse Matrices in Julia workshop at JuliaCon2015.
- 2015Apr09 : Video of Andreas Noack and Jiahao Chen speaking at the Linear Algebra and Optimization seminar at the Institute for Computational and Mathematical Engineering at Stanford. Notebook presentation of the talk.
- Learn the theory of linear algebra hand-in-hand with the practice of software library development
- The Performance Cost of Integer Overflow Checking.
- julia-paper-arrays :: Julia position paper for ARRAY '14.
- Benchmarking Matrix Multiplication
- ChebyshevApprox :: Julia code to approximate continuous functions using Chebyshev polynomials.
- CoordinateSplittingPTrees.jl :: Accurate and efficient full-degree multidimensional polynomial interpolation.
- FixedPolynomials.jl :: A package for really fast evaluation of multivariate polynomials.
- InterPol.jl :: Interpolating polynomial for Julia.
- Jacobi.jl :: Jacobi polynomials and Gauss quadrature related functions.
- MultiPoly.jl :: Sparse multivariate polynomials in Julia.
- MultivariatePolynomials.jl :: Multivariate polynomials and multivariate moments.
- 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.
- Remez.jl :: Remez algorithm for computing minimax polynomial approximations.
- SemialgebraicSets.jl :: Extension of MultivariatePolynomials to semialgebraic sets.
- TempInterp.jl :: Evaluation of Chebyshev polynomials and splines.
- Reduce.jl :: Symbolic parser generator for Julia language expressions using REDUCE algebra term rewriter.
- Symata.jl :: language for symbolic mathematics.
- Symbolic.jl :: Symbolic computations and computer algebra in Julia.
- SymEngine.jl :: Julia wrappers of SymEngine.
Calculus & Applied Math
- AppleAccelerate.jl :: Julia interface to OS X's Accelerate framework.
- Calculus.jl :: Calculus package.
- Cuba.jl :: Library for multidimensional numerical integration with four independent algorithms: Vegas, Suave, Divonne, and Cuhre.
- Cubature.jl :: One- and multi-dimensional adaptive integration routines for the Julia language.
- Einsum.jl :: Einstein summation notation in julia.
- FastPolynomials.jl :: Basic polynomials with Horner-like evaluation over x^2 and x.
- HemirealFactorization.jl :: Matrix factorizations over the hemireals.
- HemirealNumbers.jl :: Implementation of hemireal arithmetic for Julia.
- IFastSum.jl :: Accurate summation (Yuhang Zhao's iFastSum).
- Leibniz.jl :: Operator algebras for mixed-symmetry multivariate differentiable tensor fields
- MINE.jl :: Julia wrapper for Maximal Information-based Nonparametric Exploration (MIC and MINE family).
- NumericalAlgorithms.jl :: Statistics & Numerical algorithms implemented in Julia.
- Options.jl :: A framework for providing optional arguments to functions.
- 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.
- Power Series Blog::
- Jason Merrill's blog series highlighting the basic aspects of floating point arithmetic with examples in Julia - The first one, on bisecting floating point numbers
- PolyMath.jl :: a package for polynomial arithmetic, calculus, interpolation and quadrature algorithms implemented in Julia.
- 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).
- Roots.jl :: Root finding functions for Julia.
- TaylorSeries.jl :: A julia package for Taylor expansions in one independent variable.
- 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.
- 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.
- 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
- 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.
- 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).
- SortFilters.jl :: Fast moving quantile filters implemented as fast moving window sort algorithm. Implemented both as functions over a moving window and stateful filter objects and after setting an appropriate probability level, you can get: moving median, minimum, maximum, quartiles and so on.
- wavechaos
- WDSP.jl :: Digital signal processing used in turbulence implemented in Julia.
- CLFFT.jl :: Julia bindings for AMD's clFFT library.
- CUFFT.jl :: Wrapper for the CUDA FFT library.
- FFTViews.jl :: Julia package for fast fourier transforms and periodic views.
- 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.
- SnFFT.jl :: A Julia package designed to facilitate harmonic analyis on the symmetric group of order n, denoted Sn.
- 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.
- FastAnonymous.jl :: Fast anonymous functions for Julia.
- ChainRulesCore.jl :: The ChainRulesCore package provides a light-weight dependency for defining sensitivities for functions in your packages, without self-dependency on
ChainRules.jl
, which aims to provide a variety of common utilities that can be used by downstream automatic differentiation (AD) tools to define and execute forward-, reverse-, and mixed-mode primitives. - DualNumbers.jl :: Julia package for representing dual numbers and for performing dual algebra.
- FastPow.jl :: This package provides a macro @fastpow for optimal addition-chain exponentiation to speed up the computation of integer powers in any Julia expression.
- ForwardDiff.jl :: Juila package for performing forward mode automatic differentiation.
- 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.
- ReverseDiffSource.jl :: Automated differentiation by reverse accumulation. Documentation.
- 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.
- DiffEqSensitivity.jl :: A component of the DiffEq ecosystem for sensitivity analysis.
- 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 :: 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.
- 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.
- SingularIntegralEquations.jl :: Julia package for solving singular integral equations and Riemann–Hilbert problems.
- 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.
- NumericalMath’s documentation for Integration.
- FinealeBook.jl :: Trying to understand Petr Krysl's FinEALE book.
- LambertW.jl :: A package implementing the Lambert_W function and associated omega constant.
- Struve.jl :: Struve functions for Julia.
- 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.
- BitIntegers.jl :: This package implements fixed-width integer types similar to standard builtin-ones like Int or UInt128.
- ClosedIntervals.jl :: Closed intervals of the form [a,b].
- Collatz.jl:: The Collatz conjecture.
- DiscreteInference.jl :: Viterbi algorithm.
- FixedPointNumbers.jl :: This library implements fixed-point number types.
- Infinity.jl :: Representation of infinity in Julia.
- Intervals.jl :: A pure Julia reimplementation of MPFI, a multiple precision interval arithmetic library.
- IntModN.jl :: Ring(s) of Integers Modulo-N.
- IntsWithInfinty.jl :: Ints augmented with Infinity.
- 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.
- RationalRoots.jl :: A Julia type for representing square roots of rational numbers.
- 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.
- Catalan.jl :: a combinatorics library for Julia.
- Dendriform.jl :: Dendriform di-algebra algorithms to compute using Loday's arithmetic on groves of planar binary trees.
Hash tables, Linked Lists, Functional / Trees data structures
- AbstractTrees.jl :: Abstract julia interfaces for working with trees.
- Arrowhead.jl :: Arrowhead and Diagonal-plus-rank-one Eigenvalue Solvers.
- BGraph.jl :: An adjacency list that uses typed properties for vertices, edges, and graphs.
- BlockArrays.jl :: BlockArrays for Julia.
- bloom.jl :: Bloom filter implementation in Julia.
- Blox.jl :: Views of concatenated AbstractArrays in Julia. {Usable: 2, Robust: 2, Active: 1}
- Brim.jl :: BRIM modularity - Various ways to optimize the modularity of bipartite networks using BRIM in Julia.
- CommunityDetection.jl :: Community Detection algorithms for LightGraphs
- CompressedStacks.jl
- ContinuumArrays.jl :: A package for representing quasi arrays with continuous indices.
- DeepReshapes.jl :: Reshape arbitrarily nested structures of Tuples and Arrays in Julia.
- EvolvingGraphs.jl :: Working with time-dependent networks in Julia.
- FingerTrees.jl :: A Finger Tree is a functional data structure that can give an amortized constant time access to the fingers (leaves) of the tree where the data is stored, while the internal nodes are labeled in some way as to provide the functionality of the particular data structure being implemented.
- Flow.jl :: DataFlow programming for Julia.
- FunctionalCollections.jl :: Functional and and persistent data structures for Julia.
- Graphs.jl :: a package for working with graph types and algorithms in Julia.
- DOCS:: Documentation for the Graphs.jl package on the Julia website, also mirrored on graphsjl-docs.readthedocs.org
- A project report on using the Graphs.jl package by Samuel Huberman, PhD student at MIT.
- GraphDataFrameBridge.jl :: Tools for interoperability between DataFrame objects and LightGraphs and MetaGraphs objects.
- GraphIO.jl :: Graph IO functionality for various formats.
- GraphLayout.jl :: Graph layout algorithms in pure Julia.
- GraphPlot.jl :: Graph visualization for Julia.
- GraphRecipes.jl :: Graph-related recipes to be used with Plots.jl
- GraphicalModels.jl :: Data structures and parsing tools for representing graphical models in Julia.
- GeometricFlux.jl :: Geometric Deep Learning for Flux
- InfoTheory.jl :: Estimating information theoretic measures (entropy, mutual information etc) from data.
- InvariantEnsembles.jl :: Sample random unitary invariant ensembles.
- L1DecisionTree.jl
- LayeredLayouts.jl :: Layered Layout Algorithms for Directed Acyclic Graphs
- LiftedHierarchies.jl.
- LightGraphs.jl :: An optimized simple graphs package designed for fast analysis using standard functions that seeks to mimic the functionality of established packages like NetworkX, but with better performance.
- LightGraphsExtras.jl :: Additional functionality for LightGraphs.jl
- LightGraphsFlows.jl :: Flow algorithms on LightGraphs
- LightGraphsGraphBLAS.jl :: GraphBLAS backed graphs for LightGraphs.jl
- LightGraphsMatching.jl :: Matching algorithms for LightGraphs.jl
- Lists.jl :: Singly linked list and doubly linked list for Julia.
- LSH.jl :: Locality Sensitive Hashing functions.
- MatrixNetworks.jl :: Graph and Network algorithms.
- MetaGraphs.jl :: LightGraphs compatible graphs with metadata
- MinimalPerfectHashes.jl :: An implementation of minimal perfect hash function generation as described in Czech et. al. 1992. http://bit.ly/137iukS
- MolecularGraph.jl :: Graph-based molecule modeling toolkit for cheminformatics
- Multigraphs.jl :: A multigraph extension of LightGraphs.jl
- Named.jl :: Julia named index and named vector types.
- NetworkDynamics.jl :: Julia package for working with Dynamics on Networks.
- Networks.jl :: A library for working with Graphs in Julia.
- OffsetArrays.jl :: Fortran-like arrays with arbitrary, zero or negative starting indices for arrays in Julia. The main purpose of this package is to simplify translation from Fortran codes intensively using Fortran arrays with negative and zero starting indices, such as the codes accompanying the book Numerical Solution of Hyperbolic Partial Differential Equations by prof. John A. Trangenstein.
- Graft.jl :: A graph analysis toolkit for Julia that stores vertex and edge metadata in separate p
- A blog post describing the GSoC work on Graft.jl.
- PDMats.jl :: Uniform Interface for positive definite matrices of various structures.
- PositiveFactorizations.jl :: Positive-definite (approximations) to matrices.
- PropertyGraph.jl :: A Julia package for constructing, creating and querying graph data structures.
- PropertyGraphMongo.jl :: A Mongo storage provider for the
PropertyGraph.jl
package.
- PropertyGraphMongo.jl :: A Mongo storage provider for the
- QuickStructs.jl :: Several data structures with goals of O(1) for important operations. {Usable: 5, Robust: 4, Active: 1}
- RandomForestBehaviors.jl :: Microscopic driving models based on random forests.
- RedBlackTrees.jl :: A red–black self-balancing binary search tree in Julia. REF: http://en.wikipedia.org/wiki/Red_black_trees
- RepresentationTheory.jl :: Kronecker product of Sn.
- RingBuffer.jl :: Julia ring buffer implementation for buffered IO.
- RobustShortestPath.jl :: Robust Shortest Path Finder.
- rsk :: Code for exploring the Robinson–Schensted–Knuth correspondence.
- Seep.jl :: It builds and evaluates computational flow graphs in julia. A computational flow graph (CFG) is a directed acyclic graph where nodes represent values and edges represent data dependencies.
- Series.jl :: Series data structure in Julia.
- SFrames.jl :: Wrapper around the open-source components of Graphlab.
- SimpleGraphs.jl :: A module for working with simple graphs (no loops, no multiple edges, no directed edges).
- SimpleHypergraphs.jl A simple hypergraphs package for the Julia programming language
- SimpleValueGraphs.jl :: A LightGraphs.jl compatible graph package for graphs with multiple vertex, edge and graph metadata.
- SimpleWeightedGraphs.jl :: Simple weighted graphs. Requires LightGraphs.jl.
- Sims.jl :: Non-causal, equation-based modeling in Julia.
- SNAPDatasets.jl :: LightGraphs.jl-formatted graph files taken from the SNAP Datasets collection.
- SpatialGraphs.jl
- SpecialGraphs.jl :: Encoding special graph structures in types
- SumTrees.jl :: Binary tree where the nodes contain the sum of the left and right children.
- SuiteSparseGraphBLAS.jl :: Julia wrapper for SuiteSparse:GraphBLAS
- Trie.jl :: Implementation of the trie data structure.
- TSPSubgradient.jl :: A TSP approximation with the subgradient method.
- VegaGraphs.jl :: Create beautiful and interactive visualizations for graphs using Vega-Lite
- XGBoost.jl :: XGBoost Julia Package.
- AbstractTensors.jl :: Tensor algebra abstract type interoperability with vector bundle parameter.
- AffineSpaces.jl :: Uniform representation and computational geometry on affine subspaces (points, lines, planes, etc.) in Rⁿ.
- AffineTransforms.jl :: Computational geometry with affine transformations for conversion among different representations (mostly between rotation matrices and axis-angle).
- 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.
- Grassmann.jl :: ⟨Leibniz-Grassmann-Clifford-Hestenes⟩ differential geometric algebra / multivector simplical complex.
- ITensors.jl:: A Julia library for efficient tensor calculations.
- JointMoments.jl :: Tensors and statistics for joint central moments.
- 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.
- Tullio.jl :: A package for writing array operations in index notation.
- 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.
- RayTraceEllipsoid.jl :: Ray trace ellipsoid-shaped domes i.e. finds intersection points and refract/reflect according to the refractive indices.
- 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.
- Vec.jl :: Provides 2D and 3D vector types for vector operations in Julia.
- CDDLib.jl :: A wrapper for cdd, the library for polyhedra manipulation such as double description and Fourier-Motzkin elimination. This module can either be used in a lower level using the API of cdd or using the higher level interface of Polyhedra.jl.
- CHull.jl :: A Julia wrapper around a PyCall wrapper around the qhull Convex Hull library.
- CSoM.jl :: Investigate Julia version of Programming the FEM by I M Smith, D V Griffiths.
- CHull2d.jl :: Variety of algorithms for taking the convex hull of 2 dimensional sets of points.
- ConvexHull.jl :: A Julia library for polyhedral computations.
- LRSLib.jl :: A wrapper for lrs.
- Polyhedra.jl :: It provides an unified interface for Polyhedra Manipulation Libraries such as CDDLib.jl.
- Vec.jl :: Provides 2D and 3D vector types for vector operations in Julia.
- Descartes.jl :: A research project into the representation of solid geometry.
- Tau.jl :: A simple module providing definition of the Tau constant.
Puzzles, problem solving games
- Chess.jl :: Julia chess programming library.
- Deepthought.jl
- euler :: Project Euler solutions in Julia.
- PlayingCards.jl :: Package for simulating Playing Cards games in Julia.
- Project_Euler_Julia.ipynb :: Solutions to Project Euler Problems, algorithm & math puzzles.
- sudoku by @Alexander-N :: Reimplementing the Python version of Peter Norvig's Sudoku solver in Julia.
- sudoku.jl by @johnmyleswhite :: A simple Sudoku solver in Julia.
- Sudoku.jl by @hayd :: A port of Peter Norvig's Solving Every Sudoku Puzzle to Julia.
- SudokuService :: Sudoku-as-a-service, powered by Julia, JuMP modelling, and CoinOR CBC integer programming solver.
- Tetris.jl :: Kids game https://juliatetris.com/