Description
The xerus library is a general purpose library for numerical calculations with higher order tensors, Tensor-Train Decompositions / Matrix Product States and other Tensor Networks.
The focus of development was the simple usability and adaptibility to any setting that requires higher order tensors or decompositions thereof.
For tutorials and a documentation see the documentation.
The source code is licenced under the AGPL v3.0. For more details see the LICENSE file.
Xerus alternatives and similar libraries
Based on the "Math" category.
Alternatively, view Xerus alternatives based on common mentions on social networks and blogs.
-
OpenBLAS
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. -
Eigen
A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2] -
TinyExpr
tiny recursive descent expression parser, compiler, and evaluation engine for math expressions -
MIRACL
MIRACL Cryptographic SDK: Multiprecision Integer and Rational Arithmetic Cryptographic Library is a C software library that is widely regarded by developers as the gold standard open source SDK for elliptic curve cryptography (ECC). -
linmath.h
a lean linear math library, aimed at graphics programming. Supports vec3, vec4, mat4x4 and quaternions -
NT2
A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost] -
ExprTK
C++ Mathematical Expression Parsing And Evaluation Library https://www.partow.net/programming/exprtk/index.html -
LibTomMath
LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C. -
muparser
muparser is a fast math parser library for C/C++ with (optional) OpenMP support. -
GMTL
Generic Math Template Library (forked from http://ggt.sourceforge.net/) -
safe_numerics
Replacements to standard numeric types which throw exceptions on errors -
Versor
[older version] Versor 1.0 C++ library for conformal geometric algebra draw routines -
Mission : Impossible (AutoDiff)
A concise C++17 implementation of automatic differentiation (operator overloading) -
SLIMCPP
Simple Long Integer Math for C++. Lightweight cross-platform header-only library what implements big integer arithmetic in С++17. -
GMP
A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2] -
Armadillo
A high quality C++ linear algebra library, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Xerus or a related project?
Popular Comparisons
README
About
The xerus
library is a general purpose library for numerical calculations with higher order tensors, Tensor-Train Decompositions / Matrix Product States and other Tensor Networks.
The focus of development was the simple usability and adaptibility to any setting that requires higher order tensors or decompositions thereof.
For tutorials and a documentation see the documentation.
The source code is licenced under the AGPL v3.0. For more details see the LICENSE file.
Features
- Intuitive notation for expressions involving tensors of arbitrary degree:
A(i,j) = B(i,k,l) * C(k,j,l)
; - Lazy evaluation of tensor expressions with automatically optimized contraction orders.
- Full implementation of all common functionality of the Tensor Train (or Matrix Product State) decompositions with either dense or sparse component tensors.
- Implementations of common algorithms like the ALS, (multi-site-)DMRG, ASD, AFD, CG, and some less common ones e.g. to find the maximal entries in a Tensor Train.
Building the Xerus library
Copy the default configuration and modify it for your needs
cp config.mk.default config.mk
nano config.mk
Test whether everything works correctly with
make test -j4
build (and optionally install) the library with
make all -j4
sudo make install
and you should be ready to use the library. For more details see the "Building Xerus" page in the documentation.
Issues
Should you have any problems with the library do not hesitate to contact us at contact[at]libxerus.org or describe your problem in the issuetracker.
*Note that all licence references and agreements mentioned in the Xerus README section above
are relevant to that project's source code only.