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@gmail.com>
5// Copyright (C) 2013 Christian Seiler <christian@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
49typedef __int16 int16_t;
50typedef unsigned __int16 uint16_t;
51typedef __int32 int32_t;
52typedef unsigned __int32 uint32_t;
53typedef __int64 int64_t;
54typedef 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