Home | History | Annotate | Download | only in CXX11
      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