mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-12 17:33:15 +08:00
Avoided language features that are only available in cxx11 mode.
This commit is contained in:
parent
4be4286224
commit
c8ea398675
@ -36,7 +36,7 @@ template <typename Expression, typename Device, bool Vectorizable,
|
|||||||
bool Tileable>
|
bool Tileable>
|
||||||
class TensorExecutor {
|
class TensorExecutor {
|
||||||
public:
|
public:
|
||||||
using StorageIndex = typename Expression::Index;
|
typedef typename Expression::Index StorageIndex;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
||||||
@ -60,7 +60,7 @@ template <typename Expression>
|
|||||||
class TensorExecutor<Expression, DefaultDevice, /*Vectorizable*/ true,
|
class TensorExecutor<Expression, DefaultDevice, /*Vectorizable*/ true,
|
||||||
/*Tileable*/ false> {
|
/*Tileable*/ false> {
|
||||||
public:
|
public:
|
||||||
using StorageIndex = typename Expression::Index;
|
typedef typename Expression::Index StorageIndex;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
||||||
@ -102,21 +102,19 @@ template <typename Expression, bool Vectorizable>
|
|||||||
class TensorExecutor<Expression, DefaultDevice, Vectorizable,
|
class TensorExecutor<Expression, DefaultDevice, Vectorizable,
|
||||||
/*Tileable*/ true> {
|
/*Tileable*/ true> {
|
||||||
public:
|
public:
|
||||||
using Scalar = typename traits<Expression>::Scalar;
|
typedef typename traits<Expression>::Scalar Scalar;
|
||||||
using ScalarNoConst = typename remove_const<Scalar>::type;
|
typedef typename remove_const<Scalar>::type ScalarNoConst;
|
||||||
|
|
||||||
using Evaluator = TensorEvaluator<Expression, DefaultDevice>;
|
typedef TensorEvaluator<Expression, DefaultDevice> Evaluator;
|
||||||
using StorageIndex = typename traits<Expression>::Index;
|
typedef typename traits<Expression>::Index StorageIndex;
|
||||||
|
|
||||||
static const int NumDims = traits<Expression>::NumDimensions;
|
static const int NumDims = traits<Expression>::NumDimensions;
|
||||||
|
|
||||||
EIGEN_DEVICE_FUNC
|
EIGEN_DEVICE_FUNC
|
||||||
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
||||||
const DefaultDevice& device = DefaultDevice()) {
|
const DefaultDevice& device = DefaultDevice()) {
|
||||||
using TensorBlock =
|
typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlock;
|
||||||
TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout>;
|
typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlockMapper;
|
||||||
using TensorBlockMapper = TensorBlockMapper<ScalarNoConst, StorageIndex,
|
|
||||||
NumDims, Evaluator::Layout>;
|
|
||||||
|
|
||||||
Evaluator evaluator(expr, device);
|
Evaluator evaluator(expr, device);
|
||||||
Index total_size = array_prod(evaluator.dimensions());
|
Index total_size = array_prod(evaluator.dimensions());
|
||||||
@ -221,7 +219,7 @@ struct EvalRange<Evaluator, StorageIndex, /*Vectorizable*/ true> {
|
|||||||
template <typename Expression, bool Vectorizable, bool Tileable>
|
template <typename Expression, bool Vectorizable, bool Tileable>
|
||||||
class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, Tileable> {
|
class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, Tileable> {
|
||||||
public:
|
public:
|
||||||
using StorageIndex = typename Expression::Index;
|
typedef typename Expression::Index StorageIndex;
|
||||||
|
|
||||||
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
||||||
const ThreadPoolDevice& device) {
|
const ThreadPoolDevice& device) {
|
||||||
@ -249,20 +247,18 @@ class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, Tileable> {
|
|||||||
template <typename Expression, bool Vectorizable>
|
template <typename Expression, bool Vectorizable>
|
||||||
class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, /*Tileable*/ true> {
|
class TensorExecutor<Expression, ThreadPoolDevice, Vectorizable, /*Tileable*/ true> {
|
||||||
public:
|
public:
|
||||||
using Scalar = typename traits<Expression>::Scalar;
|
typedef typename traits<Expression>::Scalar Scalar;
|
||||||
using ScalarNoConst = typename remove_const<Scalar>::type;
|
typedef typename remove_const<Scalar>::type ScalarNoConst;
|
||||||
|
|
||||||
using Evaluator = TensorEvaluator<Expression, ThreadPoolDevice>;
|
typedef TensorEvaluator<Expression, ThreadPoolDevice> Evaluator;
|
||||||
using StorageIndex = typename traits<Expression>::Index;
|
typedef typename traits<Expression>::Index StorageIndex;
|
||||||
|
|
||||||
static const int NumDims = traits<Expression>::NumDimensions;
|
static const int NumDims = traits<Expression>::NumDimensions;
|
||||||
|
|
||||||
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
static EIGEN_STRONG_INLINE void run(const Expression& expr,
|
||||||
const ThreadPoolDevice& device) {
|
const ThreadPoolDevice& device) {
|
||||||
using TensorBlock =
|
typedef TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlock;
|
||||||
TensorBlock<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout>;
|
typedef TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout> TensorBlockMapper;
|
||||||
using TensorBlockMapper =
|
|
||||||
TensorBlockMapper<ScalarNoConst, StorageIndex, NumDims, Evaluator::Layout>;
|
|
||||||
|
|
||||||
Evaluator evaluator(expr, device);
|
Evaluator evaluator(expr, device);
|
||||||
StorageIndex total_size = array_prod(evaluator.dimensions());
|
StorageIndex total_size = array_prod(evaluator.dimensions());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user