Multi-dimensional arrays with broadcasting and lazy computing.
xtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions.
xtensor provides
- an extensible expression system enabling lazy broadcasting.
- an API following the idioms of the C++ standard library.
- tools to manipulate array expressions and build upon xtensor.
Containers of xtensor are inspired by NumPy, the Python array programming library. Adaptors for existing data structures to be plugged into the expression system can easily be written.
In fact, xtensor can be used to process NumPy data structures in-place using Python's buffer protocol. For more details on the NumPy bindings, check out the xtensor-python project. Language bindings for R and Julia are also 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
We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.
This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.
.. toctree:: :caption: INSTALLATION :maxdepth: 1 installation changelog
.. toctree:: :caption: USAGE :maxdepth: 2 getting_started expression container scalar adaptor operator view indices builder missing histogram random rank file_loading build-options pitfall
.. toctree:: :caption: QUICK REFERENCE :maxdepth: 2 quickref/basic quickref/builder quickref/operator quickref/math quickref/reducer view quickref/iterator quickref/manipulation quickref/chunked_arrays
.. toctree:: :caption: API REFERENCE :maxdepth: 2 api/expression_index api/container_index api/iterator_index api/function_index api/io_index api/xmath api/shape
.. toctree:: :caption: DEVELOPER ZONE :maxdepth: 2 compilers dev-build-options developer/xtensor_internals external-structures releasing
.. toctree:: :caption: MISCELLANEOUS numpy numpy-differences closure-semantics related bindings