STK++ 0.9.13
STK::hidden::VisitorSelector< Visitor, Derived > Struct Template Reference

visitor selector. More...

#include <STK_VisitorSelector.h>

Public Types

enum  {
  structure_ = hidden::Traits<Derived>::structure_ , orient_ = hidden::Traits<Derived>::orient_ , sizeRows_ = hidden::Traits<Derived>::sizeRows_ , sizeCols_ = hidden::Traits<Derived>::sizeCols_ ,
  storage_ = hidden::Traits<Derived>::storage_ , unrollRows_ = (sizeRows_ < MaxUnrollSlice) , unrollCols_ = (sizeCols_ < MaxUnrollSlice) , is2D_ = (structure_ == (int)Arrays::array2D_ || structure_ == (int)Arrays::square_)
}
 
typedef VisitorSelectorHelper< Visitor, Derived, structure_ >::Impl HelperImpl
 
typedef VisitorArrayUnrollImpl< Visitor, Derived, orient_, sizeRows_, sizeCols_ArrayImpl
 
typedef If< is2D_ &&unrollRows_ &&unrollCols_, ArrayImpl, HelperImpl >::Result Impl
 

Detailed Description

template<typename Visitor, typename Derived>
struct STK::hidden::VisitorSelector< Visitor, Derived >

visitor selector.

If Derived is a full two-dimensional array and the visitation can be unrolled,then we use directly the VisitorArrayImpl class in order to compute the result of the visitation.

Otherwise we delegate the search of the correct implementation to the VisitorSelectorHelper class.

Definition at line 56 of file STK_VisitorSelector.h.

Member Typedef Documentation

◆ ArrayImpl

Definition at line 71 of file STK_VisitorSelector.h.

◆ HelperImpl

Definition at line 70 of file STK_VisitorSelector.h.

◆ Impl

Definition at line 73 of file STK_VisitorSelector.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Visitor , typename Derived >
anonymous enum
Enumerator
structure_ 
orient_ 
sizeRows_ 
sizeCols_ 
storage_ 
unrollRows_ 
unrollCols_ 
is2D_ 

Definition at line 58 of file STK_VisitorSelector.h.

59 {
60 structure_ = hidden::Traits<Derived>::structure_,
61 orient_ = hidden::Traits<Derived>::orient_,
62 sizeRows_ = hidden::Traits<Derived>::sizeRows_,
63 sizeCols_ = hidden::Traits<Derived>::sizeCols_,
64 storage_ = hidden::Traits<Derived>::storage_,
68 };
@ array2D_
general matrix/array/expression
@ square_
square matrix/array/expression
const int MaxUnrollSlice
This value means that when we unroll loops we go until MaxUnrollSlice.

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