Popularity
1.4
Declining
Activity
0.0
Declining
17
2
6

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.

Programming language: C++
License: GNU Affero General Public License v3.0
Latest version: v4.0.1._conda

Xerus alternatives and similar libraries

Based on the "Math" category.
Alternatively, view Xerus alternatives based on common mentions on social networks and blogs.

  • GLM

    8.8 7.5 L1 Xerus VS GLM
    Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT]
  • OpenBLAS

    An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website
  • Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
    Sponsored scoutapm.com
  • QuantLib

    A free/open-source library for quantitative finance. [Modified BSD] website
  • CGal

    8.0 9.9 L1 Xerus VS CGal
    Collection of efficient and reliable geometric algorithms. [LGPL&GPL]
  • ceres-solver

    C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
  • Eigen

    A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
  • Vc

    5.6 5.1 L1 Xerus VS Vc
    SIMD Vector Classes for C++. [BSD]
  • TinyExpr

    tiny recursive descent expression parser, compiler, and evaluation engine for math expressions
  • NT2

    A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost]
  • linmath.h

    A lean linear math library, aimed at graphics programming. [WTFPL]
  • MIRACL

    A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
  • LibTomMath

    A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] website
  • ExprTK

    The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [CPL]
  • Klein

    P(R*_{3, 0, 1}) specialized SIMD Geometric Algebra Library
  • GMTL

    3.8 0.0 L1 Xerus VS GMTL
    Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
  • muparser

    muParser is an extensible high performance math expression parser library written in C++. [MIT]
  • Boost.Multiprecision

    provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
  • blaze

    high-performance C++ math library for dense and sparse arithmetic. [BSD]
  • Apophenia

    A C library for statistical and scientific computing [GPL2]
  • safe_numerics

    Replacements to standard numeric types which throw exceptions on errors
  • Wykobi

    A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
  • Versor

    A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
  • metamath

    metamath is a tiny header-only library. It can be used for symbolic computations on single-variable functions, such as dynamic computations of derivatives.
  • Mission : Impossible (AutoDiff)

    A concise C++17 implementation of automatic differentiation (operator overloading)
  • macadam

    Type-generic math and numerical library supporting c99 and cpp98 (header only).
  • 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]

Do you think we are missing an alternative of Xerus or a related project?

Add another 'Math' Library

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.