xtensor
build supports the following options:
BUILD_TESTS
: enables thextest
andxbenchmark
targets (see below).DOWNLOAD_GTEST
: downloadsgtest
and builds it locally instead of using a binary installation.GTEST_SRC_DIR
: indicates where to find thegtest
sources instead of downloading them.XTENSOR_ENABLE_ASSERT
: activates the assertions inxtensor
.XTENSOR_CHECK_DIMENSION
: turns onXTENSOR_ENABLE_ASSERT
and activates dimension checks inxtensor
. Note that the dimensions check should not be activated if you expectoperator()
to perform broadcasting.XTENSOR_USE_XSIMD
: enables simd acceleration inxtensor
. This requires that you have xsimd installed on your system.XTENSOR_USE_TBB
: enables parallel assignment loop. This requires that you have you have tbb installed on your system.XTENSOR_USE_OPENMP
: enables parallel assignment loop using OpenMP. This requires that OpenMP is available on your system.
All these options are disabled by default. Enabling DOWNLOAD_GTEST
or
setting GTEST_SRC_DIR
enables BUILD_TESTS
.
If the BUILD_TESTS
option is enabled, the following targets are available:
- xtest: builds an run the test suite.
- xbenchmark: builds and runs the benchmarks.
For instance, building the test suite of xtensor
with assertions enabled:
mkdir build cd build cmake -DBUILD_TESTS=ON -DXTENSOR_ENABLE_ASSERT=ON ../ make xtest
Building the test suite of xtensor
where the sources of gtest
are
located in e.g. /usr/share/gtest
:
mkdir build cd build cmake -DGTEST_SRC_DIR=/usr/share/gtest ../ make xtest
xtensor
can be configured via macros, which must be defined before
including any of its header. Here is a list of available macros:
XTENSOR_ENABLE_ASSERT
: enables assertions in xtensor, such as bound check.XTENSOR_ENABLE_CHECK_DIMENSION
: enables the dimensions check inxtensor
. Note that this option should not be turned on if you expectoperator()
to perform broadcasting.XTENSOR_USE_XSIMD
: enables SIMD acceleration inxtensor
. This requires that you have xsimd installed on your system.XTENSOR_USE_TBB
: enables parallel assignment loop. This requires that you have you have tbb installed on your system.XTENSOR_USE_OPENMP
: enables parallel assignment loop using OpenMP. This requires that OpenMP is available on your system.XTENSOR_DEFAULT_DATA_CONTAINER(T, A)
: defines the type used as the default data container for tensors and arrays.T
is thevalue_type
of the container andA
itsallocator_type
.XTENSOR_DEFAULT_SHAPE_CONTAINER(T, EA, SA)
: defines the type used as the default shape container for tensors and arrays.T
is thevalue_type
of the data container,EA
itsallocator_type
, andSA
is theallocator_type
of the shape container.XTENSOR_DEFAULT_LAYOUT
: defines the default layout (row_major, column_major, dynamic) for tensors and arrays. We strongly discourage using this macro, which is provided for testing purpose. Prefer defining alias types on tensor and array containers instead.XTENSOR_DEFAULT_TRAVERSAL
: defines the default traversal order (row_major, column_major) for algorithms and iterators on tensors and arrays. We strongly discourage using this macro, which is provided for testing purpose.
First install the tools required to build the documentation:
conda install breathe doxygen sphinx_rtd_theme -c conda-forge
You can then build the documentation:
cd docs make html
Type make help
to see the list of available documentation targets.