Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation > Struct Template Reference

#include <Visitor.h>

Public Types

using Evaluator = visitor_evaluator< Derived >
 
using Scalar = typename DenseBase< Derived >::Scalar
 
using impl = visitor_impl< Visitor, Evaluator, UnrollCount, Vectorize, LinearAccess, ShortCircuitEvaulation >
 

Static Public Member Functions

static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void run (const DenseBase< Derived > &mat, Visitor &visitor)
 

Static Public Attributes

static constexpr bool IsRowMajor = DenseBase<Derived>::IsRowMajor
 
static constexpr int SizeAtCompileTime = DenseBase<Derived>::SizeAtCompileTime
 
static constexpr int RowsAtCompileTime = DenseBase<Derived>::RowsAtCompileTime
 
static constexpr int ColsAtCompileTime = DenseBase<Derived>::ColsAtCompileTime
 
static constexpr int InnerSizeAtCompileTime = IsRowMajor ? ColsAtCompileTime : RowsAtCompileTime
 
static constexpr int OuterSizeAtCompileTime = IsRowMajor ? RowsAtCompileTime : ColsAtCompileTime
 
static constexpr bool LinearAccess
 
static constexpr bool Vectorize = Evaluator::PacketAccess && static_cast<bool>(functor_traits<Visitor>::PacketAccess)
 
static constexpr int PacketSize = packet_traits<Scalar>::size
 
static constexpr int VectorOps
 
static constexpr int ScalarOps = SizeAtCompileTime - (VectorOps * PacketSize)
 
static constexpr int TotalOps = VectorOps + ScalarOps
 
static constexpr int UnrollCost = int(Evaluator::CoeffReadCost) + int(functor_traits<Visitor>::Cost)
 
static constexpr bool Unroll = (SizeAtCompileTime != Dynamic) && ((TotalOps * UnrollCost) <= EIGEN_UNROLLING_LIMIT)
 
static constexpr int UnrollCount = Unroll ? int(SizeAtCompileTime) : Dynamic
 

Member Typedef Documentation

◆ Evaluator

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
using Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::Evaluator = visitor_evaluator<Derived>

◆ impl

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
using Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::impl = visitor_impl<Visitor, Evaluator, UnrollCount, Vectorize, LinearAccess, ShortCircuitEvaulation>

◆ Scalar

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
using Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::Scalar = typename DenseBase<Derived>::Scalar

Member Function Documentation

◆ run()

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::run ( const DenseBase< Derived > &  mat,
Visitor &  visitor 
)
inlinestatic
353  {
354  Evaluator evaluator(mat.derived());
355  impl::run(evaluator, visitor);
356  }
const Derived & derived() const
Definition: SparseMatrixBase.h:144
visitor_evaluator< Derived > Evaluator
Definition: Visitor.h:324
void run(const string &dir_name, LinearSolver *linear_solver_pt, const unsigned nel_1d, bool mess_up_order)
Definition: two_d_poisson_compare_solvers.cc:317

References Eigen::SparseMatrixBase< Derived >::derived(), and run().

Member Data Documentation

◆ ColsAtCompileTime

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::ColsAtCompileTime = DenseBase<Derived>::ColsAtCompileTime
staticconstexpr

◆ InnerSizeAtCompileTime

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::InnerSizeAtCompileTime = IsRowMajor ? ColsAtCompileTime : RowsAtCompileTime
staticconstexpr

◆ IsRowMajor

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr bool Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::IsRowMajor = DenseBase<Derived>::IsRowMajor
staticconstexpr

◆ LinearAccess

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr bool Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::LinearAccess
staticconstexpr
Initial value:
=
Evaluator::LinearAccess && static_cast<bool>(functor_traits<Visitor>::LinearAccess)
static constexpr bool LinearAccess
Definition: Visitor.h:290

◆ OuterSizeAtCompileTime

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::OuterSizeAtCompileTime = IsRowMajor ? RowsAtCompileTime : ColsAtCompileTime
staticconstexpr

◆ PacketSize

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::PacketSize = packet_traits<Scalar>::size
staticconstexpr

◆ RowsAtCompileTime

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::RowsAtCompileTime = DenseBase<Derived>::RowsAtCompileTime
staticconstexpr

◆ ScalarOps

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::ScalarOps = SizeAtCompileTime - (VectorOps * PacketSize)
staticconstexpr

◆ SizeAtCompileTime

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::SizeAtCompileTime = DenseBase<Derived>::SizeAtCompileTime
staticconstexpr

◆ TotalOps

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::TotalOps = VectorOps + ScalarOps
staticconstexpr

◆ Unroll

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr bool Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::Unroll = (SizeAtCompileTime != Dynamic) && ((TotalOps * UnrollCost) <= EIGEN_UNROLLING_LIMIT)
staticconstexpr

◆ UnrollCost

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::UnrollCost = int(Evaluator::CoeffReadCost) + int(functor_traits<Visitor>::Cost)
staticconstexpr

◆ UnrollCount

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::UnrollCount = Unroll ? int(SizeAtCompileTime) : Dynamic
staticconstexpr

◆ Vectorize

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr bool Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::Vectorize = Evaluator::PacketAccess && static_cast<bool>(functor_traits<Visitor>::PacketAccess)
staticconstexpr

◆ VectorOps

template<typename Derived , typename Visitor , bool ShortCircuitEvaulation>
constexpr int Eigen::internal::visit_impl< Derived, Visitor, ShortCircuitEvaulation >::VectorOps
staticconstexpr
Initial value:
=
: 0
static constexpr int PacketSize
Definition: Visitor.h:338
static constexpr bool Vectorize
Definition: Visitor.h:336
static constexpr int OuterSizeAtCompileTime
Definition: Visitor.h:332
static constexpr bool LinearAccess
Definition: Visitor.h:334
static constexpr int InnerSizeAtCompileTime
Definition: Visitor.h:331
static constexpr int SizeAtCompileTime
Definition: Visitor.h:328

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