Eigen::internal::redux_traits< Func, Evaluator > Struct Template Reference

#include <Redux.h>

Public Types

enum  { PacketSize = unpacket_traits<PacketType>::size , InnerMaxSize = int(Evaluator::IsRowMajor) ? Evaluator::MaxColsAtCompileTime : Evaluator::MaxRowsAtCompileTime , OuterMaxSize = int(Evaluator::IsRowMajor) ? Evaluator::MaxRowsAtCompileTime : Evaluator::MaxColsAtCompileTime , SliceVectorizedWork }
 
enum  { MayLinearize = (int(Evaluator::Flags) & LinearAccessBit) , MightVectorize = (int(Evaluator::Flags) & ActualPacketAccessBit) && (functor_traits<Func>::PacketAccess) , MayLinearVectorize = bool(MightVectorize) && bool(MayLinearize) , MaySliceVectorize = bool(MightVectorize) && (int(SliceVectorizedWork) == Dynamic || int(SliceVectorizedWork) >= 3) }
 
enum  { Traversal }
 
enum  { Cost , UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize)) }
 
enum  
 
typedef find_best_packet< typename Evaluator::Scalar, Evaluator::SizeAtCompileTime >::type PacketType
 

Member Typedef Documentation

◆ PacketType

template<typename Func , typename Evaluator >
typedef find_best_packet<typename Evaluator::Scalar, Evaluator::SizeAtCompileTime>::type Eigen::internal::redux_traits< Func, Evaluator >::PacketType

Member Enumeration Documentation

◆ anonymous enum

template<typename Func , typename Evaluator >
anonymous enum
Enumerator
PacketSize 
InnerMaxSize 
OuterMaxSize 
SliceVectorizedWork 
33  {
35  InnerMaxSize = int(Evaluator::IsRowMajor) ? Evaluator::MaxColsAtCompileTime : Evaluator::MaxRowsAtCompileTime,
36  OuterMaxSize = int(Evaluator::IsRowMajor) ? Evaluator::MaxRowsAtCompileTime : Evaluator::MaxColsAtCompileTime,
39  : (int(InnerMaxSize) / int(PacketSize)) * int(OuterMaxSize)
40  };
return int(ret)+1
const int Dynamic
Definition: Constants.h:25
@ SliceVectorizedWork
Definition: Redux.h:37
@ InnerMaxSize
Definition: Redux.h:35
@ PacketSize
Definition: Redux.h:34
@ OuterMaxSize
Definition: Redux.h:36
@ size
Definition: GenericPacketMath.h:139

◆ anonymous enum

template<typename Func , typename Evaluator >
anonymous enum
Enumerator
MayLinearize 
MightVectorize 
MayLinearVectorize 
MaySliceVectorize 
42  {
43  MayLinearize = (int(Evaluator::Flags) & LinearAccessBit),
47  };
const unsigned int LinearAccessBit
Definition: Constants.h:133
const unsigned int ActualPacketAccessBit
Definition: Constants.h:110
@ PacketAccess
Definition: XprHelper.h:206
@ MayLinearVectorize
Definition: Redux.h:45
@ MaySliceVectorize
Definition: Redux.h:46
@ MayLinearize
Definition: Redux.h:43
@ MightVectorize
Definition: Redux.h:44

◆ anonymous enum

template<typename Func , typename Evaluator >
anonymous enum
Enumerator
Traversal 
50  {
55  };
@ LinearVectorizedTraversal
Definition: Constants.h:287
@ DefaultTraversal
Definition: Constants.h:279
@ SliceVectorizedTraversal
Definition: Constants.h:290
@ LinearTraversal
Definition: Constants.h:281
@ Traversal
Definition: Redux.h:51

◆ anonymous enum

template<typename Func , typename Evaluator >
anonymous enum
Enumerator
Cost 
UnrollingLimit 
58  {
59  Cost = Evaluator::SizeAtCompileTime == Dynamic
60  ? HugeCost
61  : int(Evaluator::SizeAtCompileTime) * int(Evaluator::CoeffReadCost) +
62  (Evaluator::SizeAtCompileTime - 1) * functor_traits<Func>::Cost,
64  };
#define EIGEN_UNROLLING_LIMIT
Definition: Settings.h:23
const int HugeCost
Definition: Constants.h:48
@ Cost
Definition: XprHelper.h:206
@ UnrollingLimit
Definition: Redux.h:63
@ Cost
Definition: Redux.h:59

◆ anonymous enum

template<typename Func , typename Evaluator >
anonymous enum
67 { Unrolling = Cost <= UnrollingLimit ? CompleteUnrolling : NoUnrolling };
@ CompleteUnrolling
Definition: Constants.h:306
@ NoUnrolling
Definition: Constants.h:301

The documentation for this struct was generated from the following file: