// This file is part of Eigen, a lightweight C++ template library // for linear algebra. // // Copyright (C) 2015 Benoit Steiner // // This Source Code Form is subject to the terms of the Mozilla // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. #ifndef EIGEN_CXX11_FIXED_POINT_MODULE #define EIGEN_CXX11_FIXED_POINT_MODULE #include #include /** \defgroup CXX11_FixedPoint_Module Fixed Point Module * * This module provides common core features for all modules that * explicitly depend on C++11. Currently, this is only the Tensor * module. Note that at this stage, you should not need to include * this module directly. * * It also provides a limited fallback for compilers that don't support * CXX11 yet, such as nvcc. * * \code * #include * \endcode */ #include "src/FixedPoint/FixedPointTypes.h" // Use optimized implementations whenever available #ifdef EIGEN_VECTORIZE_AVX2 #define EIGEN_USE_OPTIMIZED_INT8_UINT8_MAT_MAT_PRODUCT #include "src/Tensor/TensorContractionThreadPool.h" #include "src/FixedPoint/PacketMathAVX2.h" #include "src/FixedPoint/MatMatProductAVX2.h" #include "src/FixedPoint/TypeCastingAVX2.h" #elif defined EIGEN_VECTORIZE_NEON #define EIGEN_USE_OPTIMIZED_INT8_UINT8_MAT_MAT_PRODUCT #include "src/FixedPoint/MatMatProductNEON.h" #endif // Use the default implementation when no optimized code is available #include "src/FixedPoint/MatMatProduct.h" #include "src/FixedPoint/MatVecProduct.h" #endif // EIGEN_CXX11_FIXED_POINT_MODULE