Tensor software
From Wikipedia, the free encyclopedia
Tensor software is a class of mathematical software designed for manipulation and calculation with tensors.
- SPLATT[1] is an open source software package for high-performance sparse tensor factorization. SPLATT ships a stand-alone executable, C/C++ library, and Octave/MATLAB API.
- Cadabra[2] is a computer algebra system (CAS) designed specifically for the solution of problems encountered in field theory. It has extensive functionality for tensor polynomial simplification including multi-term symmetries, fermions and anti-commuting variables, Clifford algebras and Fierz transformations, implicit coordinate dependence, multiple index types and many more. The input format is a subset of TeX. Both a command-line and a graphical interface are available.
- Tela[3] is a software package similar to MATLAB and GNU Octave, but designed specifically for tensors.
Software for use with Mathematica
- Tensor[4] is a tensor package written for the Mathematica system. It provides many functions relevant for General Relativity calculations in general Riemann–Cartan geometries.
- Ricci[5] is a system for Mathematica 2.x and later for doing basic tensor analysis, available for free.
- TTC[6] Tools of Tensor Calculus is a Mathematica package for doing tensor and exterior calculus on differentiable manifolds.
- EDC and RGTC,[7] "Exterior Differential Calculus" and "Riemannian Geometry & Tensor Calculus," are free Mathematica packages for tensor calculus especially designed but not only for general relativity.
- Tensorial[8] "Tensorial 4.0" is a general purpose tensor calculus package for Mathematica.
- xAct:[9] Efficient Tensor Computer Algebra for Mathematica. xAct is a collection of packages for fast manipulation of symbolic tensor expressions.
- GREAT[10] is a free package for Mathematica that computes the Christoffel connection and the basic tensors of General Relativity from a given metric tensor.
- Atlas 2 for Mathematica[11] is a powerful Mathematica toolbox which allows to do a wide range of modern differential geometry calculations
- GRTensorM[12] is a computer algebra package for performing calculations in the general area of differential geometry.
- MathGR[13] is a package to manipulate tensor and GR calculations with either abstract or explicit indices, simplify tensors with permutational symmetries, decompose tensors from abstract indices to partially or completely explicit indices and convert partial derivatives into total derivatives.
- TensoriaCalc[14] is a tensor calculus package written for Mathematica 9 and higher, aimed at providing user-friendly functionality and a smooth consistency with the Mathematica language itself. As of December 2025, given a metric and its coordinates, TensoriaCalc can compute the associated geometric objects such as Christoffel symbols, Riemann curvature tensor, Ricci tensor/scalar, etc. It allows for generic tensors to be defined and their indices moved readily. Furthermore, it is able to carry out differential geometric operations such as covariant, Lie and exterior derivatives; Hodge duals; coordinate transformations on generic tensors, including the use of orthonormal basis; etc. TensoriaCalc is continuously under development.
- OGRe[15] is a modern free and open-source Mathematica package for tensor calculus, released in 2021 for Mathematica 12.0 and later. It is designed to be both powerful and user-friendly, and is especially suitable for general relativity. OGRe allows performing arbitrarily complicated tensor operations, and automatically transforms between index configurations and coordinate systems behind the scenes as needed for each operation.
Software for use with Maple
- GRTensorII[16] is a computer algebra package for performing calculations in the general area of differential geometry.
- Atlas 2 for Maple[17] is a modern differential geometry for Maple.
- DifferentialGeometry[18] is a package which performs fundamental operations of calculus on manifolds, differential geometry, tensor calculus, General Relativity, Lie algebras, Lie groups, transformation groups, jet spaces, and the variational calculus. It is included with Maple.
- Physics[19] is a package developed as part of Maple, which implements symbolic computations with most of the objects used in mathematical physics. It includes objects from general relativity (tensors, metrics, covariant derivatives, tetrads etc.), quantum mechanics (Kets, Bras, commutators, noncommutative variables) etc.
Software for use with Matlab
- Tensorlab[20] is a MATLAB toolbox for multilinear algebra and structured data fusion.
- Tensor Toolbox[21] Multilinear algebra MATLAB software.
- MPCA and MPCA+LDA[22] Multilinear subspace learning software: Multilinear principal component analysis.
- UMPCA[23] Multilinear subspace learning software: Uncorrelated multilinear principal component analysis.
- UMLDA[24] Multilinear subspace learning software: Uncorrelated multilinear discriminant analysis.
Software for use with Maxima
Maxima[25] is a free open source general purpose computer algebra system which includes several packages for tensor algebra calculations in its core distribution. It is particularly useful for calculations with abstract tensors, i.e., when one wishes to do calculations without defining all components of the tensor explicitly. It comes with three tensor packages:[26]
- itensor for abstract (indicial) tensor manipulation,
- ctensor for component-defined tensors, and
- atensor for algebraic tensor manipulation.
Software for use with R
- Tensor[27] is an R package for basic tensor operations.
- rTensor[28] provides several tensor decomposition approaches.
- nnTensor[29] provides several non-negative tensor decomposition approaches.
- ttTensor[30] provides several tensor-train decomposition approaches.
- tensorBF[31] is an R package for Bayesian Tensor decomposition.
- MTF[32] Bayesian Multi-Tensor Factorization for data fusion and Bayesian versions of Tensor PCA and Tensor CCA. Software: MTF.
- ricci[33] provides a compact R interface for performing tensor calculations. It makes use of Ricci calculus conventions to implicitly trigger contractions and diagonal subsetting. Explicit tensor operations, such as addition, subtraction and multiplication of tensors via standard arithmetic operators, raising and lowering indices, taking symmetric or antisymmetric tensor parts, as well as the Kronecker product are available. Common tensors like the Kronecker delta, Levi Civita epsilon, certain metric tensors, the Christoffel symbols, the Riemann tensor as well as Ricci tensor are provided. The Covariant derivative of tensor fields with respect to any metric tensor can be evaluated.
Software for use with Python
- TensorLy[34] provides several tensor decomposition approaches.
- OGRePy[35] is Python port of the Mathematica package OGRe (see § Software for use with Mathematica), released in 2024 for Python 3.12 and later. It utilizes SymPy for symbolic computations and Jupyter as a notebook interface. OGRePy allows calculating arbitrary tensor formulas using any combination of addition, multiplication by scalar, trace, contraction, partial derivative, covariant derivative, and permutation of indices, and provides facilities for calculating various curvature tensors and geodesic equations.
- Tensorgrad, an open-source python package for symbolic tensor manipulation. Supports general symbolic tensor derivatives using Penrose graphical notation, and gaussian expectations via Isserlis' theorem.
Software for use with Julia
- TensorDecompositions.jl[36] provides several tensor decomposition approaches.
- TensorToolbox.jl[37] provides several tensor decomposition approaches. This follows the functionality of MATLAB Tensor toolbox and Hierarchical Tucker Toolbox.
- ITensors.jl[38] is a library for rapidly creating correct and efficient tensor network algorithms. This is the Julia version of ITensor, not a wrapper around the C++ version but full implementations by Julia language.
Software for use with SageMath
- SageManifolds: tensor calculus on smooth manifolds; all SageManifolds[39] code is included in SageMath since version 7.5; it allows for computations in various vector frames and coordinate charts, the manifold not being required to be parallelizable.