A C++ library for numerical analysis with multi-dimensional array expressions featuring broadcasting and lazy computing.
xtensor is a C++ library for numerical analysis with multi-dimensional array expressions. It provides tools for lazy broadcasting and an API following C++ standard library idioms, enabling high-performance array operations similar to NumPy but in C++. It solves the need for efficient, expressive array programming in native C++ environments.
C++ developers working on numerical analysis, scientific computing, or machine learning projects who require high-performance array operations with NumPy-like syntax.
Developers choose xtensor for its seamless integration with C++, lazy evaluation for performance, and compatibility with NumPy, Julia, and R arrays, offering a native alternative to Python-based numerical libraries.
C++ tensors with broadcasting and lazy computing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Deferred computation until access optimizes memory and performance for large arrays, similar to NumPy's broadcasting rules.
Optional xsimd integration enables automatic use of SSE, AVX, or Neon instruction sets for significant speedups in numerical operations.
Follows C++ standard library idioms, easing adoption for C++ developers and integrating seamlessly with existing codebases.
Provides adaptors for inplace processing of NumPy, Julia, and R arrays, facilitating data exchange without copying.
Requires xtl and optionally xsimd, adding build system overhead and potential version management issues.
Mandates C++14 or higher compilers, excluding legacy projects or environments with older toolchains.
Advanced features like linear algebra require additional libraries (e.g., xtensor-blas), increasing setup complexity.