HOME

TheInfoList



OR:

Tensor software is a class of
mathematical software Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data. Evolution of mathematical software Numerical analysis and symbolic computation had been in most important place of the subject, but other ki ...
designed for manipulation and calculation with
tensor In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects related to a vector space. Tensors may map between different objects such as vectors, scalars, and even other tenso ...
s.


Standalone software

* SPLATT is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
software package for high-performance sparse tensor
factorization In mathematics, factorization (or factorisation, see American and British English spelling differences#-ise, -ize (-isation, -ization), English spelling differences) or factoring consists of writing a number or another mathematical object as a p ...
. SPLATT ships a stand-alone executable, C/C++ library, and
Octave In music, an octave ( la, octavus: eighth) or perfect octave (sometimes called the diapason) is the interval between one musical pitch and another with double its frequency. The octave relationship is a natural phenomenon that has been refer ...
/
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
. * Cadabra 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 is a software package similar to
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
and
GNU Octave GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a langu ...
, but designed specifically for tensors.


Software for use with Mathematica

* Tensor is a tensor package written for the Mathematica system. It provides many functions relevant for General Relativity calculations in general Riemann–Cartan geometries. * Ricci is a system for Mathematica 2.x and later for doing basic tensor analysis, available for free. * TTC Tools of Tensor Calculus is a Mathematica package for doing tensor and exterior calculus on differentiable manifolds. * EDC and RGTC, "Exterior Differential Calculus" and "Riemannian Geometry & Tensor Calculus," are free Mathematica packages for tensor calculus especially designed but not only for general relativity. * Tensorial "Tensorial 4.0" is a general purpose tensor calculus package for Mathematica. * xAct: Efficient Tensor Computer Algebra for Mathematica. xAct is a collection of packages for fast manipulation of tensor expressions. * GREAT 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 is a powerful Mathematica toolbox which allows to do a wide range of modern differential geometry calculations * GRTensorM is a computer algebra package for performing calculations in the general area of differential geometry. * MathGR 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 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 January 2015, given a metric and the coordinates used, TensoriaCalc can compute Christoffel symbols, the Riemann curvature tensor, and Ricci tensor/scalar; it allows for user-defined tensors and is able to perform basic operations such as taking the covariant derivatives of tensors. TensoriaCalc is continuously under development due to time constraints faced by its developer. * OGRe is a modern
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the 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 is a computer algebra package for performing calculations in the general area of differential geometry. * Atlas 2 for Maple is a modern differential geometry for Maple. * DifferentialGeometry 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 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, noncomutative variables) etc.


Software for use with Matlab

* Tensorlab is a MATLAB toolbox for multilinear algebra and structured data fusion. * Tensor Toolbox Multilinear algebra MATLAB software. * MPCA and MPCA+LDA
Multilinear subspace learning Multilinear subspace learning is an approach to dimensionality reduction.M. A. O. Vasilescu, D. Terzopoulos (2003"Multilinear Subspace Analysis of Image Ensembles" "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVP ...
software:
Multilinear principal component analysis Within statistics, Multilinear principal component analysis (MPCA) is a multilinear extension of principal component analysis (PCA). MPCA is employed in the analysis of M-way arrays, i.e. a cube or hyper-cube of numbers, also informally referred t ...
. * UMPCA
Multilinear subspace learning Multilinear subspace learning is an approach to dimensionality reduction.M. A. O. Vasilescu, D. Terzopoulos (2003"Multilinear Subspace Analysis of Image Ensembles" "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVP ...
software: Uncorrelated multilinear principal component analysis. * UMLDA
Multilinear subspace learning Multilinear subspace learning is an approach to dimensionality reduction.M. A. O. Vasilescu, D. Terzopoulos (2003"Multilinear Subspace Analysis of Image Ensembles" "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVP ...
software: Uncorrelated multilinear discriminant analysis.


Software for use with Maxima

Maxima is a free
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
general purpose
computer algebra system A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The de ...
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: * itensor for abstract (indicial) tensor manipulation, * ctensor for component-defined tensors, and * atensor for algebraic tensor manipulation.


Software for use with R

* Tensor is an R package for basic tensor operations. * rTensor provides several tensor decomposition approaches. * nnTensor provides several non-negative tensor decomposition approaches. * ttTensor provides several tensor-train decomposition approaches. * tensorBF is an R package for Bayesian Tensor decomposition. * MTF Bayesian Multi-Tensor Factorization for data fusion and Bayesian versions of Tensor PCA and Tensor CCA. Software
MTF


Software for use with Python

* TensorLy provides several tensor decomposition approaches.


Software for use with Julia

* TensorDecompositions.jl provides several tensor decomposition approaches. * TensorToolbox.jl provides several tensor decomposition approaches. This follows the functionality of MATLAB Tensor toolbox and Hierarchical Tucker Toolbox. * ITensors.jl 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. * TensorOperations.jl provides fast tensor operations using a convenient Einstein index notation. * TensorRules.jl provides a macro, which enable us to use automatic differentiation (AD) libraries (e.g., Zygote.jl, ForwardDiff.jl) with @tensor and @tensoropt macros in TensorOperations.jl.


Software for use with SageMath

* SageManifolds: tensor calculus on smooth manifolds; all SageManifolds code is included in
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, numbe ...
since version 7.5; it allows for computations in various vector frames and coordinate charts, the manifold not being required to be
parallelizable In mathematics, a differentiable manifold M of dimension ''n'' is called parallelizable if there exist smooth vector fields \ on the manifold, such that at every point p of M the tangent vectors \ provide a basis of the tangent space at p. Equiva ...
.


Software for use with Java

* ND4J: ''N''-dimensional arrays for the JVM is a Java library for basic tensor operations and scientific computing.
Tensor
computation for regular or unstructured multi-dimensional tensors. Scalar entries are either in numeric or exact precision. API inspired by Mathematica. Java 8 library in with no external dependencies.


Libraries

* Redberry is an open source computer algebra system designed for symbolic tensor manipulation. Redberry provides common tools for expression manipulation, generalized on tensorial objects, as well as tensor-specific features: indices symmetries,
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
-style input, natural dummy indices handling, multiple index types etc. The HEP package includes tools for
Feynman diagrams In theoretical physics, a Feynman diagram is a pictorial representation of the mathematical expressions describing the behavior and interaction of subatomic particles. The scheme is named after American physicist Richard Feynman, who introduce ...
calculation:
Dirac Distributed Research using Advanced Computing (DiRAC) is an integrated supercomputing facility used for research in particle physics, astronomy and cosmology in the United Kingdom. DiRAC makes use of multi-core processors and provides a variety of ...
and
SU(N) In mathematics, the special unitary group of degree , denoted , is the Lie group of unitary matrices with determinant 1. The more general unitary matrices may have complex determinants with absolute value 1, rather than real 1 in the specia ...
algebra,
Levi-Civita Tullio Levi-Civita, (, ; 29 March 1873 – 29 December 1941) was an Italian mathematician, most famous for his work on absolute differential calculus (tensor calculus) and its applications to the theory of relativity, but who also made signific ...
simplifications, tools for calculation of one-loop counterterms etc. Redberry is written in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
and provides extensive
Groovy ''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1950s, '60s and '70s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context. History The ...
-based
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
. * libxm is a lightweight distributed-parallel tensor library written in C. * FTensor is a high performance tensor library written in C++. * TL is a multi-threaded tensor library implemented in C++ used in Dynare++. The library allows for folded/unfolded, dense/sparse tensor representations, general ranks (symmetries). The library implements Faa Di Bruno formula and is adaptive to available memory. Dynare++ is a standalone package solving higher order Taylor approximations to equilibria of non-linear stochastic models with
rational expectations In economics, "rational expectations" are model-consistent expectations, in that agents inside the model A model is an informative representation of an object, person or system. The term originally denoted the plans of a building in late 16 ...
. * vmmlib is a C++ linear algebra library that supports 3-way tensors, emphasizing computation and manipulation of several
tensor decomposition In multilinear algebra, a tensor decomposition is any scheme for expressing a "data tensor" (M-way array) as a sequence of elementary operations acting on other, often simpler tensors. Many tensor decompositions generalize some matrix decompositi ...
s. * Spartns is a Sparse Tensor framework for
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
. * FAstMat is a thread-safe general tensor algebra library written in C++ and specially designed for FEM/FVM/BEM/FDM element/edge wise computations. * Cyclops Tensor Framework is a distributed memory library for efficient decomposition of tensors of arbitrary type and parallel MPI+OpenMP execution of tensor contractions/functions. * TiledArray is a scalable, block-sparse tensor library that is designed to aid in rapid composition of high-performance algebraic tensor equation. It is designed to scale from a single multicore computer to a massively-parallel, distributed-memory system. * libtensor is a set of performance linear tensor algebra routines for large tensors found in post-Hartree–Fock methods in quantum chemistry. * ITensor features automatic contraction of matching tensor indices. It is written in C++ and has higher-level features for quantum physics algorithms based on tensor networks. * Fastor is a high performance C++ tensor algebra library that supports tensors of any arbitrary dimensions and all their possible contraction and permutation thereof. It employs compile-time graph search optimisations to find the optimal contraction sequence between arbitrary number of tensors in a network. It has high level domain specific features for solving nonlinear multiphysics problem using FEM. * Xerus is a C++ tensor algebra library for tensors of arbitrary dimensions and
tensor decomposition In multilinear algebra, a tensor decomposition is any scheme for expressing a "data tensor" (M-way array) as a sequence of elementary operations acting on other, often simpler tensors. Many tensor decompositions generalize some matrix decompositi ...
into general tensor networks (focusing on
matrix product state Matrix product state (MPS) is a quantum state of many particles (in N sites), written in the following form: : , \Psi\rangle = \sum_ \operatorname\left _1^ A_2^ \cdots A_N^\right, s_1 s_2 \ldots s_N\rangle, where A_i^ are complex, square matric ...
s). It offers
Einstein notation In mathematics, especially the usage of linear algebra in Mathematical physics, Einstein notation (also known as the Einstein summation convention or Einstein summation notation) is a notational convention that implies summation over a set of ...
like syntax and optimizes the contraction order of any network of tensors at runtime so that dimensions need not be fixed at compile-time.


References

{{DEFAULTSORT:Tensor Software Computer algebra systems Tensors