1 // This file is part of Eigen, a lightweight C++ template library 2 // for linear algebra. 3 // 4 // Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog (a] gmail.com> 5 // Copyright (C) 2013 Christian Seiler <christian (a] iwakd.de> 6 // 7 // This Source Code Form is subject to the terms of the Mozilla 8 // Public License v. 2.0. If a copy of the MPL was not distributed 9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 11 //#ifndef EIGEN_CXX11_TENSOR_MODULE 12 //#define EIGEN_CXX11_TENSOR_MODULE 13 14 #include "../../../Eigen/Core" 15 16 #ifdef EIGEN_USE_SYCL 17 #undef min 18 #undef max 19 #undef isnan 20 #undef isinf 21 #undef isfinite 22 #include <SYCL/sycl.hpp> 23 #include <map> 24 #include <memory> 25 #include <utility> 26 #endif 27 28 #include <Eigen/src/Core/util/DisableStupidWarnings.h> 29 30 #include "../SpecialFunctions" 31 #include "src/util/CXX11Meta.h" 32 #include "src/util/MaxSizeVector.h" 33 34 /** \defgroup CXX11_Tensor_Module Tensor Module 35 * 36 * This module provides a Tensor class for storing arbitrarily indexed 37 * objects. 38 * 39 * \code 40 * #include <Eigen/CXX11/Tensor> 41 * \endcode 42 */ 43 44 #include <cmath> 45 #include <cstddef> 46 #include <cstring> 47 48 #ifdef _WIN32 49 typedef __int16 int16_t; 50 typedef unsigned __int16 uint16_t; 51 typedef __int32 int32_t; 52 typedef unsigned __int32 uint32_t; 53 typedef __int64 int64_t; 54 typedef unsigned __int64 uint64_t; 55 #else 56 #include <stdint.h> 57 #endif 58 59 #if __cplusplus > 199711 || EIGEN_COMP_MSVC >= 1900 60 #include <random> 61 #endif 62 63 #ifdef _WIN32 64 #include <windows.h> 65 #elif defined(__APPLE__) 66 #include <mach/mach_time.h> 67 #else 68 #include <time.h> 69 #endif 70 71 #ifdef EIGEN_USE_THREADS 72 #include "ThreadPool" 73 #endif 74 75 #ifdef EIGEN_USE_GPU 76 #include <iostream> 77 #include <cuda_runtime.h> 78 #if __cplusplus >= 201103L 79 #include <atomic> 80 #include <unistd.h> 81 #endif 82 #endif 83 84 #include "src/Tensor/TensorMacros.h" 85 #include "src/Tensor/TensorForwardDeclarations.h" 86 #include "src/Tensor/TensorMeta.h" 87 #include "src/Tensor/TensorFunctors.h" 88 #include "src/Tensor/TensorCostModel.h" 89 #include "src/Tensor/TensorDeviceDefault.h" 90 #include "src/Tensor/TensorDeviceThreadPool.h" 91 #include "src/Tensor/TensorDeviceCuda.h" 92 #include "src/Tensor/TensorDeviceSycl.h" 93 #include "src/Tensor/TensorIndexList.h" 94 #include "src/Tensor/TensorDimensionList.h" 95 #include "src/Tensor/TensorDimensions.h" 96 #include "src/Tensor/TensorInitializer.h" 97 #include "src/Tensor/TensorTraits.h" 98 #include "src/Tensor/TensorRandom.h" 99 #include "src/Tensor/TensorUInt128.h" 100 #include "src/Tensor/TensorIntDiv.h" 101 #include "src/Tensor/TensorGlobalFunctions.h" 102 103 #include "src/Tensor/TensorBase.h" 104 105 #include "src/Tensor/TensorEvaluator.h" 106 #include "src/Tensor/TensorExpr.h" 107 #include "src/Tensor/TensorReduction.h" 108 #include "src/Tensor/TensorReductionCuda.h" 109 #include "src/Tensor/TensorArgMax.h" 110 #include "src/Tensor/TensorConcatenation.h" 111 #include "src/Tensor/TensorContractionMapper.h" 112 #include "src/Tensor/TensorContractionBlocking.h" 113 #include "src/Tensor/TensorContraction.h" 114 #include "src/Tensor/TensorContractionThreadPool.h" 115 #include "src/Tensor/TensorContractionCuda.h" 116 #include "src/Tensor/TensorConversion.h" 117 #include "src/Tensor/TensorConvolution.h" 118 #include "src/Tensor/TensorFFT.h" 119 #include "src/Tensor/TensorPatch.h" 120 #include "src/Tensor/TensorImagePatch.h" 121 #include "src/Tensor/TensorVolumePatch.h" 122 #include "src/Tensor/TensorBroadcasting.h" 123 #include "src/Tensor/TensorChipping.h" 124 #include "src/Tensor/TensorInflation.h" 125 #include "src/Tensor/TensorLayoutSwap.h" 126 #include "src/Tensor/TensorMorphing.h" 127 #include "src/Tensor/TensorPadding.h" 128 #include "src/Tensor/TensorReverse.h" 129 #include "src/Tensor/TensorShuffling.h" 130 #include "src/Tensor/TensorStriding.h" 131 #include "src/Tensor/TensorCustomOp.h" 132 #include "src/Tensor/TensorEvalTo.h" 133 #include "src/Tensor/TensorForcedEval.h" 134 #include "src/Tensor/TensorGenerator.h" 135 #include "src/Tensor/TensorAssign.h" 136 #include "src/Tensor/TensorScan.h" 137 138 #include "src/Tensor/TensorSycl.h" 139 #include "src/Tensor/TensorExecutor.h" 140 #include "src/Tensor/TensorDevice.h" 141 142 #include "src/Tensor/TensorStorage.h" 143 #include "src/Tensor/Tensor.h" 144 #include "src/Tensor/TensorFixedSize.h" 145 #include "src/Tensor/TensorMap.h" 146 #include "src/Tensor/TensorRef.h" 147 148 #include "src/Tensor/TensorIO.h" 149 150 #include <Eigen/src/Core/util/ReenableStupidWarnings.h> 151 152 //#endif // EIGEN_CXX11_TENSOR_MODULE 153