26template<
typename Func,
typename Evaluator>
34 ? Evaluator::MaxColsAtCompileTime
35 : Evaluator::MaxRowsAtCompileTime,
37 ? Evaluator::MaxRowsAtCompileTime
38 : Evaluator::MaxColsAtCompileTime,
70#ifdef EIGEN_DEBUG_ASSIGN
73 std::cerr <<
"Xpr: " <<
typeid(
typename Evaluator::XprType).name() << std::endl;
74 std::cerr.setf(std::ios::hex, std::ios::basefield);
76 std::cerr.unsetf(std::ios::hex);
84 std::cerr <<
"Traversal" <<
" = " <<
Traversal <<
" (" << demangle_traversal(
Traversal) <<
")" << std::endl;
86 std::cerr <<
"Unrolling" <<
" = " << Unrolling <<
" (" << demangle_unrolling(Unrolling) <<
")" << std::endl;
87 std::cerr << std::endl;
98template<
typename Func,
typename Evaluator,
int Start,
int Length>
105 typedef typename Evaluator::Scalar
Scalar;
115template<
typename Func,
typename Evaluator,
int Start>
119 outer =
Start / Evaluator::InnerSizeAtCompileTime,
120 inner =
Start % Evaluator::InnerSizeAtCompileTime
123 typedef typename Evaluator::Scalar
Scalar;
128 return eval.coeffByOuterInner(outer, inner);
135template<
typename Func,
typename Evaluator,
int Start>
138 typedef typename Evaluator::Scalar
Scalar;
145template<
typename Func,
typename Evaluator,
int Start,
int Length>
148 template<
typename PacketType>
157 return func.packetOp(
163template<
typename Func,
typename Evaluator,
int Start>
166 template<
typename PacketType>
172 index =
Start * PacketSize,
173 outer = index /
int(Evaluator::InnerSizeAtCompileTime),
174 inner = index %
int(Evaluator::InnerSizeAtCompileTime),
175 alignment = Evaluator::Alignment
185template<
typename Func,
typename Evaluator,
187 int Unrolling = redux_traits<Func, Evaluator>::Unrolling
191template<
typename Func,
typename Evaluator>
194 typedef typename Evaluator::Scalar
Scalar;
196 template<
typename XprType>
202 res =
eval.coeffByOuterInner(0, 0);
212template<
typename Func,
typename Evaluator>
217 typedef typename Evaluator::Scalar
Scalar;
218 template<
typename XprType>
226template<
typename Func,
typename Evaluator>
229 typedef typename Evaluator::Scalar
Scalar;
232 template<
typename XprType>
277 for(
Index index = 1; index <
size; ++index)
286template<
typename Func,
typename Evaluator,
int Unrolling>
289 typedef typename Evaluator::Scalar
Scalar;
292 template<
typename XprType>
296 const Index innerSize =
xpr.innerSize();
297 const Index outerSize =
xpr.outerSize();
312 for(
Index i=packetedInnerSize;
i<innerSize; ++
i)
318 res = redux_impl<Func, Evaluator, DefaultTraversal, NoUnrolling>::run(
eval,
func, xpr);
325template<
typename Func,
typename Evaluator>
328 typedef typename Evaluator::Scalar
Scalar;
333 Size = Evaluator::SizeAtCompileTime,
334 VectorizedSize = (
int(Size) /
int(PacketSize)) *
int(PacketSize)
337 template<
typename XprType>
343 if (VectorizedSize > 0) {
345 if (VectorizedSize != Size)
356template<
typename _XprType>
370 MaxRowsAtCompileTime = XprType::MaxRowsAtCompileTime,
371 MaxColsAtCompileTime = XprType::MaxColsAtCompileTime,
373 Flags = Base::Flags & ~DirectAccessBit,
374 IsRowMajor = XprType::IsRowMajor,
375 SizeAtCompileTime = XprType::SizeAtCompileTime,
376 InnerSizeAtCompileTime = XprType::InnerSizeAtCompileTime
381 {
return Base::coeff(IsRowMajor ? outer : inner, IsRowMajor ? inner : outer); }
383 template<
int LoadMode,
typename PacketType>
406template<
typename Derived>
407template<
typename Func>
414 ThisEvaluator thisEval(derived());
428template<
typename Derived>
429template<
int NaNPropagation>
443template<
typename Derived>
444template<
int NaNPropagation>
457template<
typename Derived>
461 if(SizeAtCompileTime==0 || (SizeAtCompileTime==
Dynamic &&
size()==0))
470template<
typename Derived>
474#ifdef __INTEL_COMPILER
476 #pragma warning ( disable : 2259 )
479#ifdef __INTEL_COMPILER
491template<
typename Derived>
495 if(SizeAtCompileTime==0 || (SizeAtCompileTime==
Dynamic &&
size()==0))
506template<
typename Derived>
510 return derived().diagonal().sum();
int i
Definition BiCGSTAB_step_by_step.cpp:9
#define EIGEN_PLAIN_ENUM_MAX(a, b)
Definition Macros.h:1289
#define EIGEN_DEBUG_VAR(x)
Definition Macros.h:898
#define EIGEN_DEVICE_FUNC
Definition Macros.h:976
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Definition Macros.h:1049
#define eigen_assert(x)
Definition Macros.h:1037
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition PartialRedux_count.cpp:3
#define EIGEN_UNROLLING_LIMIT
Definition Settings.h:24
int rows
Definition Tutorial_commainit_02.cpp:1
int cols
Definition Tutorial_commainit_02.cpp:1
Scalar Scalar int size
Definition benchVecAdd.cpp:17
SCALAR Scalar
Definition bench_gemm.cpp:46
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar minCoeff() const
EIGEN_DEVICE_FUNC internal::traits< Derived >::Scalar maxCoeff() const
EIGEN_DEVICE_FUNC Scalar prod() const
Definition Redux.h:493
EIGEN_DEVICE_FUNC Scalar redux(const BinaryOp &func) const
EIGEN_DEVICE_FUNC Scalar sum() const
Definition Redux.h:459
EIGEN_DEVICE_FUNC Scalar mean() const
Definition Redux.h:472
EIGEN_DEVICE_FUNC Scalar trace() const
Definition Redux.h:508
XprType::Scalar Scalar
Definition Redux.h:365
XprType::CoeffReturnType CoeffReturnType
Definition Redux.h:366
XprType::PacketScalar PacketScalar
Definition Redux.h:367
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE redux_evaluator(const XprType &xpr)
Definition Redux.h:363
_XprType XprType
Definition Redux.h:361
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packetByOuterInner(Index outer, Index inner) const
Definition Redux.h:385
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
Definition Redux.h:380
@ Unaligned
Definition Constants.h:233
const unsigned int LinearAccessBit
Definition Constants.h:130
const unsigned int DirectAccessBit
Definition Constants.h:155
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
const unsigned int ActualPacketAccessBit
Definition Constants.h:107
const int HugeCost
Definition Constants.h:44
@ LinearVectorizedTraversal
Definition Constants.h:285
@ DefaultTraversal
Definition Constants.h:277
@ SliceVectorizedTraversal
Definition Constants.h:288
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
@ CompleteUnrolling
Definition Constants.h:304
@ NoUnrolling
Definition Constants.h:299
const int Dynamic
Definition Constants.h:22
Definition BandTriangularSolver.h:13
CwiseBinaryOp< internal::scalar_sum_op< double, double >, const CpyMatrixXd, const CpyMatrixXd > XprType
Definition nestbyvalue.cpp:15
internal::nested_eval< T, 1 >::type eval(const T &xpr)
Definition sparse_permutations.cpp:38
Definition TensorMeta.h:50
Definition XprHelper.h:332
Definition CoreEvaluators.h:91
find_best_packet_helper< Size, typenamepacket_traits< T >::type >::type type
Definition XprHelper.h:208
Definition XprHelper.h:176
Definition GenericPacketMath.h:107
redux_novec_unroller< Func, Evaluator, 0, Evaluator::SizeAtCompileTime > Base
Definition Redux.h:216
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func &func, const XprType &)
Definition Redux.h:220
Evaluator::Scalar Scalar
Definition Redux.h:217
Evaluator::Scalar Scalar
Definition Redux.h:194
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func &func, const XprType &xpr)
Definition Redux.h:198
Evaluator::Scalar Scalar
Definition Redux.h:328
redux_traits< Func, Evaluator >::PacketType PacketType
Definition Redux.h:330
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func &func, const XprType &xpr)
Definition Redux.h:339
redux_traits< Func, Evaluator >::PacketType PacketScalar
Definition Redux.h:230
static Scalar run(const Evaluator &eval, const Func &func, const XprType &xpr)
Definition Redux.h:233
Evaluator::Scalar Scalar
Definition Redux.h:229
static EIGEN_DEVICE_FUNC Scalar run(const Evaluator &eval, const Func &func, const XprType &xpr)
Definition Redux.h:293
redux_traits< Func, Evaluator >::PacketType PacketType
Definition Redux.h:290
Evaluator::Scalar Scalar
Definition Redux.h:289
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &, const Func &)
Definition Redux.h:140
Evaluator::Scalar Scalar
Definition Redux.h:138
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func &)
Definition Redux.h:126
Evaluator::Scalar Scalar
Definition Redux.h:123
Evaluator::Scalar Scalar
Definition Redux.h:105
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func &func)
Definition Redux.h:108
@ UnrollingLimit
Definition Redux.h:62
@ Cost
Definition Redux.h:60
@ Traversal
Definition Redux.h:53
@ MayLinearVectorize
Definition Redux.h:47
@ MaySliceVectorize
Definition Redux.h:48
@ MightVectorize
Definition Redux.h:45
find_best_packet< typenameEvaluator::Scalar, Evaluator::SizeAtCompileTime >::type PacketType
Definition Redux.h:30
@ SliceVectorizedWork
Definition Redux.h:39
@ InnerMaxSize
Definition Redux.h:33
@ PacketSize
Definition Redux.h:32
@ OuterMaxSize
Definition Redux.h:36
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType run(const Evaluator &eval, const Func &)
Definition Redux.h:168
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType run(const Evaluator &eval, const Func &func)
Definition Redux.h:150
Definition ForwardDeclarations.h:17
Definition GenericPacketMath.h:133
Definition benchGeometry.cpp:23
std::ptrdiff_t j
Definition tut_arithmetic_redux_minmax.cpp:2