Multi-dimensional arrays with broadcasting and lazy computing.
Introduction
xtensor is a C++ library meant for numerical analysis with multi-dimensionalarray expressions.
xtensor provides
an extensible expression system enablinglazy broadcasting.
an API following the idioms of theC++ standard library.
tools to manipulate array expressions and build uponxtensor.
Containers ofxtensor are inspired byNumPy, the Python array programminglibrary.Adaptors for existing data structures to be plugged into theexpression system can easily be written.
In fact,xtensor can be used toprocess NumPy data structures in-placeusing Python’sbuffer protocol. For more details on the NumPy bindings,check out thextensor-python project. Language bindings for R and Julia arealso available.
xtensor requires a modern C++ compiler supporting C++14. The following C++compilers are supported:
On Windows platforms, Visual C++ 2015 Update 2, or more recent
On Unix platforms, gcc 4.9 or a recent version of Clang
Licensing
We use a shared copyright model that enables all contributors to maintain thecopyright on their contributions.
This software is licensed under the BSD-3-Clause license. See the LICENSE filefor details.
INSTALLATION
USAGE
- Getting started
- Expressions and lazy evaluation
- Arrays and tensors
- Scalars and 0-D expressions
- Adapting 1-D containers
- Operators and functions
- Views
- Indices
- Expression builders
- Missing values
- Histogram
- Random
xt::random::seed()xt::random::rand()xt::random::randint()xt::random::randn()xt::random::binomial()xt::random::geometric()xt::random::negative_binomial()xt::random::poisson()xt::random::exponential()xt::random::gamma()xt::random::weibull()xt::random::extreme_value()xt::random::lognormal()xt::random::cauchy()xt::random::fisher_f()xt::random::student_t()xt::random::choice()xt::random::shuffle()xt::random::permutation()
- Tensor Rank
- File input and output
- Build and configuration
- Common pitfalls
QUICK REFERENCE
API REFERENCE
DEVELOPER ZONE
- Compiler workarounds
- Visual Studio 2015 and
std::enable_if - GCC-4.9 and Clang < 3.8 and constexpr
std::minandstd::max - Clang < 3.8 not matching
initializer_listwith static arrays - Clang-cl and
std::get - GCC < 5.1 and
std::is_trivially_default_constructible - GCC-6 and the signature of
std::isnanandstd::isinf - GCC-8 and deleted functions
- Apple LLVM version >= 8.0.0
- Visual Studio 2015 and
- Build and configuration
- Internals of xtensor
- Extending xtensor
- Releasing xtensor