mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Remove CXX11/ directory nesting for Tensor modules
libeigen/eigen!2199 Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
This commit is contained in:
@@ -15,11 +15,11 @@
|
||||
// There is code in the Tensorflow codebase that will define EIGEN_USE_GPU, but
|
||||
// for some reason gets sent to the gcc/host compiler instead of the gpu/nvcc/hipcc compiler
|
||||
// When compiling such files, gcc will end up trying to pick up the CUDA headers by
|
||||
// default (see the code within "unsupported/Eigen/CXX11/Tensor" that is guarded by EIGEN_USE_GPU)
|
||||
// default (see the code within "unsupported/Eigen/Tensor" that is guarded by EIGEN_USE_GPU)
|
||||
// This will obviously not work when trying to compile tensorflow on a system with no CUDA
|
||||
// To work around this issue for HIP systems (and leave the default behaviour intact), the
|
||||
// HIP tensorflow build defines EIGEN_USE_HIP when compiling all source files, and
|
||||
// "unsupported/Eigen/CXX11/Tensor" has been updated to use HIP header when EIGEN_USE_HIP is
|
||||
// "unsupported/Eigen/Tensor" has been updated to use HIP header when EIGEN_USE_HIP is
|
||||
// defined. In continuation of that requirement, the guard here needs to be EIGEN_USE_HIP as well
|
||||
|
||||
#if defined(EIGEN_USE_HIP)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#ifndef EIGEN_THREADPOOL_MODULE_H
|
||||
#error \
|
||||
"Please include unsupported/Eigen/CXX11/ThreadPool instead of including headers inside the src directory directly."
|
||||
#error "Please include Eigen/ThreadPool instead of including headers inside the src directory directly."
|
||||
#endif
|
||||
|
||||
@@ -22,8 +22,9 @@ if [ ! -f "${BUILD_DIR}/compile_commands.json" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# External-dependency modules that require third-party headers we don't have.
|
||||
SKIP_MODULES="AccelerateSupport|CholmodSupport|KLUSupport|MetisSupport|PaStiXSupport|PardisoSupport|SPQRSupport|SuperLUSupport|UmfPackSupport"
|
||||
# External-dependency modules that require third-party headers we don't have,
|
||||
# and utility-only directories with no standalone module header.
|
||||
SKIP_MODULES="AccelerateSupport|CholmodSupport|KLUSupport|MetisSupport|PaStiXSupport|PardisoSupport|SPQRSupport|SuperLUSupport|UmfPackSupport|TensorUtil"
|
||||
|
||||
# Get changed files (Added, Modified, Renamed).
|
||||
CHANGED_FILES=$(git diff --name-only --diff-filter=AMR "${BASE_SHA}" HEAD)
|
||||
@@ -44,23 +45,23 @@ module_include_for_header() {
|
||||
local header="$1"
|
||||
local module
|
||||
|
||||
# Handle Eigen/src/<Module>/... -> Eigen/<Module>
|
||||
# Handle Eigen/src/<Module>/... and unsupported/Eigen/src/<Module>/...
|
||||
# Extract just the bare module name first.
|
||||
if [[ "${header}" =~ ^Eigen/src/([^/]+)/ ]]; then
|
||||
module="${BASH_REMATCH[1]}"
|
||||
# Handle unsupported/Eigen/src/<Module>/... -> unsupported/Eigen/<Module>
|
||||
elif [[ "${header}" =~ ^unsupported/Eigen/src/([^/]+)/ ]]; then
|
||||
module="unsupported/Eigen/${BASH_REMATCH[1]}"
|
||||
module="${BASH_REMATCH[1]}"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Skip external-dependency modules.
|
||||
# Skip external-dependency modules and utility-only directories.
|
||||
if [[ "${module}" =~ ^(${SKIP_MODULES})$ ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ "${header}" =~ ^unsupported/ ]]; then
|
||||
echo "${module}"
|
||||
echo "unsupported/Eigen/${module}"
|
||||
else
|
||||
echo "Eigen/${module}"
|
||||
fi
|
||||
|
||||
@@ -19,6 +19,9 @@ set(Eigen_HEADERS
|
||||
SparseExtra
|
||||
SpecialFunctions
|
||||
Splines
|
||||
Tensor
|
||||
TensorSymmetry
|
||||
ThreadPool
|
||||
)
|
||||
|
||||
install(FILES
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Forwarding headers for backward compatibility.
|
||||
set(Eigen_CXX11_HEADERS Tensor TensorSymmetry ThreadPool)
|
||||
|
||||
install(FILES
|
||||
${Eigen_CXX11_HEADERS}
|
||||
DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/CXX11 COMPONENT Devel
|
||||
)
|
||||
|
||||
install(DIRECTORY src DESTINATION ${INCLUDE_INSTALL_DIR}/unsupported/Eigen/CXX11 COMPONENT Devel FILES_MATCHING PATTERN "*.h")
|
||||
|
||||
@@ -1,142 +1,2 @@
|
||||
// This file is part of Eigen, a lightweight C++ template library
|
||||
// for linear algebra.
|
||||
//
|
||||
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
|
||||
// Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
|
||||
//
|
||||
// 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_TENSOR_MODULE_H
|
||||
#define EIGEN_CXX11_TENSOR_MODULE_H
|
||||
|
||||
#include "../../../Eigen/Core"
|
||||
|
||||
#include "../SpecialFunctions"
|
||||
|
||||
#include "../../../Eigen/src/Core/util/DisableStupidWarnings.h"
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "../../../Eigen/src/Core/util/Meta.h"
|
||||
#include "../../../Eigen/src/Core/util/MaxSizeVector.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
/** \defgroup CXX11_Tensor_Module Tensor Module
|
||||
*
|
||||
* This module provides a Tensor class for storing arbitrarily indexed
|
||||
* objects.
|
||||
*
|
||||
* \code
|
||||
* #include <Eigen/CXX11/Tensor>
|
||||
* \endcode
|
||||
*
|
||||
* Much of the documentation can be found \ref eigen_tensors "here".
|
||||
*/
|
||||
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <iterator>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
#include <thread>
|
||||
|
||||
#if defined(EIGEN_USE_THREADS) || defined(EIGEN_USE_SYCL)
|
||||
#include "../../../Eigen/ThreadPool"
|
||||
#endif
|
||||
|
||||
#ifdef EIGEN_USE_GPU
|
||||
#include <iostream>
|
||||
#if defined(EIGEN_USE_HIP)
|
||||
#include <hip/hip_runtime.h>
|
||||
#else
|
||||
#include <cuda_runtime.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "src/Tensor/TensorMacros.h"
|
||||
#include "src/Tensor/TensorForwardDeclarations.h"
|
||||
#include "src/Tensor/TensorMeta.h"
|
||||
#include "src/Tensor/TensorFunctors.h"
|
||||
#include "src/Tensor/TensorCostModel.h"
|
||||
#include "src/Tensor/TensorDeviceDefault.h"
|
||||
#include "src/Tensor/TensorDeviceThreadPool.h"
|
||||
#include "src/Tensor/TensorDeviceGpu.h"
|
||||
#ifndef gpu_assert
|
||||
#define gpu_assert(x)
|
||||
#endif
|
||||
#include "src/Tensor/TensorDeviceSycl.h"
|
||||
#include "src/Tensor/TensorIndexList.h"
|
||||
#include "src/Tensor/TensorDimensionList.h"
|
||||
#include "src/Tensor/TensorDimensions.h"
|
||||
#include "src/Tensor/TensorInitializer.h"
|
||||
#include "src/Tensor/TensorTraits.h"
|
||||
#include "src/Tensor/TensorRandom.h"
|
||||
#include "src/Tensor/TensorUInt128.h"
|
||||
#include "src/Tensor/TensorIntDiv.h"
|
||||
#include "src/Tensor/TensorGlobalFunctions.h"
|
||||
|
||||
#include "src/Tensor/TensorIO.h"
|
||||
|
||||
#include "src/Tensor/TensorBase.h"
|
||||
#include "src/Tensor/TensorBlock.h"
|
||||
|
||||
#include "src/Tensor/TensorEvaluator.h"
|
||||
#include "src/Tensor/TensorExpr.h"
|
||||
#include "src/Tensor/TensorReduction.h"
|
||||
#include "src/Tensor/TensorReductionGpu.h"
|
||||
#include "src/Tensor/TensorArgMax.h"
|
||||
#include "src/Tensor/TensorConcatenation.h"
|
||||
#include "src/Tensor/TensorContractionMapper.h"
|
||||
#include "src/Tensor/TensorContractionBlocking.h"
|
||||
#include "src/Tensor/TensorContraction.h"
|
||||
#include "src/Tensor/TensorContractionThreadPool.h"
|
||||
#include "src/Tensor/TensorContractionGpu.h"
|
||||
#include "src/Tensor/TensorConversion.h"
|
||||
#include "src/Tensor/TensorConvolution.h"
|
||||
#include "src/Tensor/TensorFFT.h"
|
||||
#include "src/Tensor/TensorPatch.h"
|
||||
#include "src/Tensor/TensorImagePatch.h"
|
||||
#include "src/Tensor/TensorVolumePatch.h"
|
||||
#include "src/Tensor/TensorBroadcasting.h"
|
||||
#include "src/Tensor/TensorChipping.h"
|
||||
#include "src/Tensor/TensorInflation.h"
|
||||
#include "src/Tensor/TensorLayoutSwap.h"
|
||||
#include "src/Tensor/TensorMorphing.h"
|
||||
#include "src/Tensor/TensorPadding.h"
|
||||
#include "src/Tensor/TensorReverse.h"
|
||||
#include "src/Tensor/TensorRoll.h"
|
||||
#include "src/Tensor/TensorShuffling.h"
|
||||
#include "src/Tensor/TensorStriding.h"
|
||||
#include "src/Tensor/TensorCustomOp.h"
|
||||
#include "src/Tensor/TensorEvalTo.h"
|
||||
#include "src/Tensor/TensorForcedEval.h"
|
||||
#include "src/Tensor/TensorGenerator.h"
|
||||
#include "src/Tensor/TensorAssign.h"
|
||||
#include "src/Tensor/TensorScan.h"
|
||||
#include "src/Tensor/TensorTrace.h"
|
||||
|
||||
#ifdef EIGEN_USE_SYCL
|
||||
#include "src/Tensor/TensorReductionSycl.h"
|
||||
#include "src/Tensor/TensorConvolutionSycl.h"
|
||||
#include "src/Tensor/TensorContractionSycl.h"
|
||||
#include "src/Tensor/TensorScanSycl.h"
|
||||
#endif
|
||||
|
||||
#include "src/Tensor/TensorExecutor.h"
|
||||
#include "src/Tensor/TensorDevice.h"
|
||||
|
||||
#include "src/Tensor/TensorStorage.h"
|
||||
#include "src/Tensor/Tensor.h"
|
||||
#include "src/Tensor/TensorFixedSize.h"
|
||||
#include "src/Tensor/TensorMap.h"
|
||||
#include "src/Tensor/TensorRef.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
#include "../../../Eigen/src/Core/util/ReenableStupidWarnings.h"
|
||||
|
||||
// #endif // EIGEN_CXX11_TENSOR_MODULE_H
|
||||
// Forwarding header for backward compatibility.
|
||||
#include "../Tensor" // IWYU pragma: export
|
||||
|
||||
@@ -1,40 +1,2 @@
|
||||
// This file is part of Eigen, a lightweight C++ template library
|
||||
// for linear algebra.
|
||||
//
|
||||
// Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
|
||||
//
|
||||
// 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_TENSORSYMMETRY_MODULE_H
|
||||
#define EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
|
||||
#include "Tensor"
|
||||
|
||||
#include "../../../Eigen/src/Core/util/DisableStupidWarnings.h"
|
||||
|
||||
#include "src/util/CXX11Meta.h"
|
||||
|
||||
/** \defgroup TensorSymmetry_Module Tensor Symmetry Module
|
||||
*
|
||||
* This module provides a classes that allow for the definition of
|
||||
* symmetries w.r.t. tensor indices.
|
||||
*
|
||||
* Including this module will implicitly include the Tensor module.
|
||||
*
|
||||
* \code
|
||||
* #include <Eigen/TensorSymmetry>
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "src/TensorSymmetry/util/TemplateGroupTheory.h"
|
||||
#include "src/TensorSymmetry/Symmetry.h"
|
||||
#include "src/TensorSymmetry/StaticSymmetry.h"
|
||||
#include "src/TensorSymmetry/DynamicSymmetry.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
#include "../../../Eigen/src/Core/util/ReenableStupidWarnings.h"
|
||||
|
||||
#endif // EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
// Forwarding header for backward compatibility.
|
||||
#include "../TensorSymmetry" // IWYU pragma: export
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
#include "../../../Eigen/ThreadPool" // IWYU pragma: export
|
||||
// Forwarding header for backward compatibility.
|
||||
#include "../ThreadPool" // IWYU pragma: export
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#ifndef EIGEN_CXX11_TENSOR_MODULE_H
|
||||
#error "Please include unsupported/Eigen/CXX11/Tensor instead of including headers inside the src directory directly."
|
||||
#endif
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#warning \
|
||||
"Deprecated header file, please either include the main Eigen/CXX11/Tensor header or the respective TensorContractionGpu.h file"
|
||||
#endif
|
||||
|
||||
#include "TensorContractionGpu.h"
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#warning \
|
||||
"Deprecated header file, please either include the main Eigen/CXX11/Tensor header or the respective TensorDeviceGpu.h file"
|
||||
#endif
|
||||
|
||||
#include "TensorDeviceGpu.h"
|
||||
@@ -1,4 +0,0 @@
|
||||
#ifndef EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
#error \
|
||||
"Please include unsupported/Eigen/CXX11/TensorSymmetry instead of including headers inside the src directory directly."
|
||||
#endif
|
||||
142
unsupported/Eigen/Tensor
Normal file
142
unsupported/Eigen/Tensor
Normal file
@@ -0,0 +1,142 @@
|
||||
// This file is part of Eigen, a lightweight C++ template library
|
||||
// for linear algebra.
|
||||
//
|
||||
// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
|
||||
// Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
|
||||
//
|
||||
// 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_TENSOR_MODULE_H
|
||||
#define EIGEN_CXX11_TENSOR_MODULE_H
|
||||
|
||||
#include "../../Eigen/Core"
|
||||
|
||||
#include "SpecialFunctions"
|
||||
|
||||
#include "../../Eigen/src/Core/util/DisableStupidWarnings.h"
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "../../Eigen/src/Core/util/Meta.h"
|
||||
#include "../../Eigen/src/Core/util/MaxSizeVector.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
/** \defgroup CXX11_Tensor_Module Tensor Module
|
||||
*
|
||||
* This module provides a Tensor class for storing arbitrarily indexed
|
||||
* objects.
|
||||
*
|
||||
* \code
|
||||
* #include <unsupported/Eigen/Tensor>
|
||||
* \endcode
|
||||
*
|
||||
* Much of the documentation can be found \ref eigen_tensors "here".
|
||||
*/
|
||||
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
#include <iterator>
|
||||
#include <numeric>
|
||||
#include <random>
|
||||
#include <thread>
|
||||
|
||||
#if defined(EIGEN_USE_THREADS) || defined(EIGEN_USE_SYCL)
|
||||
#include "../../Eigen/ThreadPool"
|
||||
#endif
|
||||
|
||||
#ifdef EIGEN_USE_GPU
|
||||
#include <iostream>
|
||||
#if defined(EIGEN_USE_HIP)
|
||||
#include <hip/hip_runtime.h>
|
||||
#else
|
||||
#include <cuda_runtime.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "src/Tensor/TensorMacros.h"
|
||||
#include "src/Tensor/TensorForwardDeclarations.h"
|
||||
#include "src/Tensor/TensorMeta.h"
|
||||
#include "src/Tensor/TensorFunctors.h"
|
||||
#include "src/Tensor/TensorCostModel.h"
|
||||
#include "src/Tensor/TensorDeviceDefault.h"
|
||||
#include "src/Tensor/TensorDeviceThreadPool.h"
|
||||
#include "src/Tensor/TensorDeviceGpu.h"
|
||||
#ifndef gpu_assert
|
||||
#define gpu_assert(x)
|
||||
#endif
|
||||
#include "src/Tensor/TensorDeviceSycl.h"
|
||||
#include "src/Tensor/TensorIndexList.h"
|
||||
#include "src/Tensor/TensorDimensionList.h"
|
||||
#include "src/Tensor/TensorDimensions.h"
|
||||
#include "src/Tensor/TensorInitializer.h"
|
||||
#include "src/Tensor/TensorTraits.h"
|
||||
#include "src/Tensor/TensorRandom.h"
|
||||
#include "src/Tensor/TensorUInt128.h"
|
||||
#include "src/Tensor/TensorIntDiv.h"
|
||||
#include "src/Tensor/TensorGlobalFunctions.h"
|
||||
|
||||
#include "src/Tensor/TensorIO.h"
|
||||
|
||||
#include "src/Tensor/TensorBase.h"
|
||||
#include "src/Tensor/TensorBlock.h"
|
||||
|
||||
#include "src/Tensor/TensorEvaluator.h"
|
||||
#include "src/Tensor/TensorExpr.h"
|
||||
#include "src/Tensor/TensorReduction.h"
|
||||
#include "src/Tensor/TensorReductionGpu.h"
|
||||
#include "src/Tensor/TensorArgMax.h"
|
||||
#include "src/Tensor/TensorConcatenation.h"
|
||||
#include "src/Tensor/TensorContractionMapper.h"
|
||||
#include "src/Tensor/TensorContractionBlocking.h"
|
||||
#include "src/Tensor/TensorContraction.h"
|
||||
#include "src/Tensor/TensorContractionThreadPool.h"
|
||||
#include "src/Tensor/TensorContractionGpu.h"
|
||||
#include "src/Tensor/TensorConversion.h"
|
||||
#include "src/Tensor/TensorConvolution.h"
|
||||
#include "src/Tensor/TensorFFT.h"
|
||||
#include "src/Tensor/TensorPatch.h"
|
||||
#include "src/Tensor/TensorImagePatch.h"
|
||||
#include "src/Tensor/TensorVolumePatch.h"
|
||||
#include "src/Tensor/TensorBroadcasting.h"
|
||||
#include "src/Tensor/TensorChipping.h"
|
||||
#include "src/Tensor/TensorInflation.h"
|
||||
#include "src/Tensor/TensorLayoutSwap.h"
|
||||
#include "src/Tensor/TensorMorphing.h"
|
||||
#include "src/Tensor/TensorPadding.h"
|
||||
#include "src/Tensor/TensorReverse.h"
|
||||
#include "src/Tensor/TensorRoll.h"
|
||||
#include "src/Tensor/TensorShuffling.h"
|
||||
#include "src/Tensor/TensorStriding.h"
|
||||
#include "src/Tensor/TensorCustomOp.h"
|
||||
#include "src/Tensor/TensorEvalTo.h"
|
||||
#include "src/Tensor/TensorForcedEval.h"
|
||||
#include "src/Tensor/TensorGenerator.h"
|
||||
#include "src/Tensor/TensorAssign.h"
|
||||
#include "src/Tensor/TensorScan.h"
|
||||
#include "src/Tensor/TensorTrace.h"
|
||||
|
||||
#ifdef EIGEN_USE_SYCL
|
||||
#include "src/Tensor/TensorReductionSycl.h"
|
||||
#include "src/Tensor/TensorConvolutionSycl.h"
|
||||
#include "src/Tensor/TensorContractionSycl.h"
|
||||
#include "src/Tensor/TensorScanSycl.h"
|
||||
#endif
|
||||
|
||||
#include "src/Tensor/TensorExecutor.h"
|
||||
#include "src/Tensor/TensorDevice.h"
|
||||
|
||||
#include "src/Tensor/TensorStorage.h"
|
||||
#include "src/Tensor/Tensor.h"
|
||||
#include "src/Tensor/TensorFixedSize.h"
|
||||
#include "src/Tensor/TensorMap.h"
|
||||
#include "src/Tensor/TensorRef.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
#include "../../Eigen/src/Core/util/ReenableStupidWarnings.h"
|
||||
|
||||
// #endif // EIGEN_CXX11_TENSOR_MODULE_H
|
||||
40
unsupported/Eigen/TensorSymmetry
Normal file
40
unsupported/Eigen/TensorSymmetry
Normal file
@@ -0,0 +1,40 @@
|
||||
// This file is part of Eigen, a lightweight C++ template library
|
||||
// for linear algebra.
|
||||
//
|
||||
// Copyright (C) 2013 Christian Seiler <christian@iwakd.de>
|
||||
//
|
||||
// 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_TENSORSYMMETRY_MODULE_H
|
||||
#define EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
|
||||
#include "Tensor"
|
||||
|
||||
#include "../../Eigen/src/Core/util/DisableStupidWarnings.h"
|
||||
|
||||
#include "src/TensorUtil/CXX11Meta.h"
|
||||
|
||||
/** \defgroup TensorSymmetry_Module Tensor Symmetry Module
|
||||
*
|
||||
* This module provides a classes that allow for the definition of
|
||||
* symmetries w.r.t. tensor indices.
|
||||
*
|
||||
* Including this module will implicitly include the Tensor module.
|
||||
*
|
||||
* \code
|
||||
* #include <Eigen/TensorSymmetry>
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
// IWYU pragma: begin_exports
|
||||
#include "src/TensorSymmetry/util/TemplateGroupTheory.h"
|
||||
#include "src/TensorSymmetry/Symmetry.h"
|
||||
#include "src/TensorSymmetry/StaticSymmetry.h"
|
||||
#include "src/TensorSymmetry/DynamicSymmetry.h"
|
||||
// IWYU pragma: end_exports
|
||||
|
||||
#include "../../Eigen/src/Core/util/ReenableStupidWarnings.h"
|
||||
|
||||
#endif // EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
1
unsupported/Eigen/ThreadPool
Normal file
1
unsupported/Eigen/ThreadPool
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../Eigen/ThreadPool" // IWYU pragma: export
|
||||
3
unsupported/Eigen/src/Tensor/InternalHeaderCheck.h
Normal file
3
unsupported/Eigen/src/Tensor/InternalHeaderCheck.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#ifndef EIGEN_CXX11_TENSOR_MODULE_H
|
||||
#error "Please include unsupported/Eigen/Tensor instead of including headers inside the src directory directly."
|
||||
#endif
|
||||
@@ -228,6 +228,7 @@ struct TensorContractionKernel {
|
||||
const StorageIndex depth, const StorageIndex cols,
|
||||
const ResScalar alpha, const ResScalar beta) {
|
||||
// Default GEBP kernel does not support beta.
|
||||
EIGEN_ONLY_USED_FOR_DEBUG(beta);
|
||||
eigen_assert(beta == ResScalar(1));
|
||||
static const int kComputeStrideFromBlockDimensions = -1;
|
||||
GebpKernel()(output_mapper, lhsBlock, rhsBlock, rows, depth, cols, alpha,
|
||||
7
unsupported/Eigen/src/Tensor/TensorContractionCuda.h
Normal file
7
unsupported/Eigen/src/Tensor/TensorContractionCuda.h
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#warning \
|
||||
"Deprecated header file, please either include the main unsupported/Eigen/Tensor header or the respective TensorContractionGpu.h file"
|
||||
#endif
|
||||
|
||||
#include "TensorContractionGpu.h"
|
||||
7
unsupported/Eigen/src/Tensor/TensorDeviceCuda.h
Normal file
7
unsupported/Eigen/src/Tensor/TensorDeviceCuda.h
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
#if defined(__clang__) || defined(__GNUC__)
|
||||
#warning \
|
||||
"Deprecated header file, please either include the main unsupported/Eigen/Tensor header or the respective TensorDeviceGpu.h file"
|
||||
#endif
|
||||
|
||||
#include "TensorDeviceGpu.h"
|
||||
@@ -77,7 +77,7 @@ class TensorExecutor {
|
||||
public:
|
||||
typedef typename Expression::Index StorageIndex;
|
||||
|
||||
// Including `unsupported/Eigen/CXX11/Tensor` in different translation units
|
||||
// Including `unsupported/Eigen/Tensor` in different translation units
|
||||
// with/without `EIGEN_USE_THREADS` or `EIGEN_USE_GPU` is a potential ODR
|
||||
// violation. If this template is instantiated with a non-default device, it
|
||||
// means that this header file was included without defining
|
||||
@@ -19,7 +19,10 @@ template <Index n>
|
||||
struct type2index {
|
||||
static constexpr Index value = n;
|
||||
EIGEN_DEVICE_FUNC constexpr operator Index() const { return n; }
|
||||
EIGEN_DEVICE_FUNC void set(Index val) { eigen_assert(val == n); }
|
||||
EIGEN_DEVICE_FUNC void set(Index val) {
|
||||
EIGEN_ONLY_USED_FOR_DEBUG(val);
|
||||
eigen_assert(val == n);
|
||||
}
|
||||
};
|
||||
|
||||
// This can be used with IndexPairList to get compile-time constant pairs,
|
||||
@@ -32,6 +35,7 @@ struct type2indexpair {
|
||||
constexpr EIGEN_DEVICE_FUNC operator IndexPair<Index>() const { return IndexPair<Index>(f, s); }
|
||||
|
||||
EIGEN_DEVICE_FUNC void set(const IndexPair<Index>& val) {
|
||||
EIGEN_ONLY_USED_FOR_DEBUG(val);
|
||||
eigen_assert(val.first == f);
|
||||
eigen_assert(val.second == s);
|
||||
}
|
||||
@@ -225,6 +229,7 @@ struct tuple_coeff<0, ValueT> {
|
||||
}
|
||||
template <typename... T>
|
||||
EIGEN_DEVICE_FUNC static void set(const Index i, IndexTuple<T...>& t, const ValueT value) {
|
||||
EIGEN_ONLY_USED_FOR_DEBUG(i);
|
||||
eigen_assert(i == 0);
|
||||
update_value(array_get<0>(t), value);
|
||||
}
|
||||
@@ -211,7 +211,7 @@ inline void DynamicSGroup::add(int one, int two, int flags) {
|
||||
std::size_t newNumIndices = (one > two) ? one : two + 1;
|
||||
for (auto& gelem : m_elements) {
|
||||
gelem.representation.reserve(newNumIndices);
|
||||
for (std::size_t i = m_numIndices; i < newNumIndices; i++) gelem.representation.push_back(i);
|
||||
for (std::size_t i = m_numIndices; i < newNumIndices; i++) gelem.representation.push_back(static_cast<int>(i));
|
||||
}
|
||||
m_numIndices = newNumIndices;
|
||||
}
|
||||
@@ -246,8 +246,8 @@ inline void DynamicSGroup::add(int one, int two, int flags) {
|
||||
|
||||
std::size_t coset_rep = coset_order;
|
||||
do {
|
||||
for (auto g : m_generators) {
|
||||
e = mul(m_elements[coset_rep], g);
|
||||
for (auto gen : m_generators) {
|
||||
e = mul(m_elements[coset_rep], gen);
|
||||
p = findElement(e);
|
||||
if (p < 0) {
|
||||
// element not yet in group
|
||||
@@ -0,0 +1,3 @@
|
||||
#ifndef EIGEN_CXX11_TENSORSYMMETRY_MODULE_H
|
||||
#error "Please include unsupported/Eigen/TensorSymmetry instead of including headers inside the src directory directly."
|
||||
#endif
|
||||
@@ -11,7 +11,7 @@
|
||||
#define EIGEN_CXX11META_H
|
||||
|
||||
#include <vector>
|
||||
#include "../../../../../Eigen/src/Core/util/EmulateArray.h"
|
||||
#include "../../../../Eigen/src/Core/util/EmulateArray.h"
|
||||
|
||||
#include "CXX11Workarounds.h"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <iostream>
|
||||
#define EIGEN_USE_SYCL
|
||||
#include <unsupported/Eigen/CXX11/Tensor>
|
||||
#include <unsupported/Eigen/Tensor>
|
||||
|
||||
using Eigen::array;
|
||||
using Eigen::SyclDevice;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#include <Eigen/CXX11/Tensor>
|
||||
#include <Eigen/Tensor>
|
||||
|
||||
using Eigen::array;
|
||||
using Eigen::Pair;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#define EIGEN_USE_GPU
|
||||
|
||||
#include "main.h"
|
||||
#include <unsupported/Eigen/CXX11/Tensor>
|
||||
#include <unsupported/Eigen/Tensor>
|
||||
|
||||
using Eigen::Tensor;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#include <unsupported/Eigen/CXX11/Tensor>
|
||||
#include <unsupported/Eigen/Tensor>
|
||||
|
||||
using Eigen::array;
|
||||
using Eigen::SyclDevice;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#include <Eigen/CXX11/Tensor>
|
||||
#include <Eigen/Tensor>
|
||||
|
||||
using Eigen::RowMajor;
|
||||
using Eigen::Tensor;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <algorithm>
|
||||
#include <set>
|
||||
|
||||
#include <Eigen/CXX11/Tensor>
|
||||
#include <Eigen/Tensor>
|
||||
|
||||
using Eigen::ColMajor;
|
||||
using Eigen::Index;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// clang-format off
|
||||
#include "main.h"
|
||||
#include <Eigen/CXX11/Tensor>
|
||||
#include <Eigen/Tensor>
|
||||
// clang-format on
|
||||
|
||||
using Eigen::internal::TensorBlockDescriptor;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// clang-format off
|
||||
#include "main.h"
|
||||
#include <Eigen/CXX11/Tensor>
|
||||
#include <Eigen/Tensor>
|
||||
// clang-format on
|
||||
|
||||
// -------------------------------------------------------------------------- //
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user