12 #ifndef EIGEN_COREEVALUATORS_H
13 #define EIGEN_COREEVALUATORS_H
24 template <
typename StorageKind>
31 template <
typename StorageKind>
66 template <typename T, typename Arg1Kind = typename evaluator_traits<typename T::Arg1>::Kind,
74 template <typename T, typename LhsKind = typename evaluator_traits<typename T::Lhs>::Kind,
80 template <typename T, typename Kind = typename evaluator_traits<typename T::NestedExpression>::Kind,
97 template <typename T, typename Shape = typename evaluator_traits<T>::Shape>
99 static const bool value =
false;
103 template <
typename T>
110 template <
typename T>
117 template <
typename ExpressionType>
142 template <
typename Scalar,
int OuterStr
ide>
147 #ifndef EIGEN_INTERNAL_DEBUGGING
156 template <
typename Scalar>
168 template <
typename Derived>
175 IsRowMajor = PlainObjectType::IsRowMajor,
176 IsVectorAtCompileTime = PlainObjectType::IsVectorAtCompileTime,
177 RowsAtCompileTime = PlainObjectType::RowsAtCompileTime,
178 ColsAtCompileTime = PlainObjectType::ColsAtCompileTime,
186 OuterStrideAtCompileTime = IsVectorAtCompileTime ? 0
187 :
int(IsRowMajor) ? ColsAtCompileTime
196 : m_d(
m.
data(), IsVectorAtCompileTime ? 0 :
m.outerStride()) {
202 return m_d.data[
row * m_d.outerStride() +
col];
204 return m_d.data[
row +
col * m_d.outerStride()];
211 return const_cast<Scalar*
>(m_d.data)[
row * m_d.outerStride() +
col];
213 return const_cast<Scalar*
>(m_d.data)[
row +
col * m_d.outerStride()];
217 return const_cast<Scalar*
>(m_d.data)[index];
220 template <
int LoadMode,
typename PacketType>
223 return ploadt<PacketType, LoadMode>(m_d.data +
row * m_d.outerStride() +
col);
225 return ploadt<PacketType, LoadMode>(m_d.data +
row +
col * m_d.outerStride());
228 template <
int LoadMode,
typename PacketType>
230 return ploadt<PacketType, LoadMode>(m_d.data + index);
233 template <
int StoreMode,
typename PacketType>
236 return pstoret<Scalar, PacketType, StoreMode>(
const_cast<Scalar*
>(m_d.data) +
row * m_d.outerStride() +
col,
x);
238 return pstoret<Scalar, PacketType, StoreMode>(
const_cast<Scalar*
>(m_d.data) +
row +
col * m_d.outerStride(),
x);
241 template <
int StoreMode,
typename PacketType>
243 return pstoret<Scalar, PacketType, StoreMode>(
const_cast<Scalar*
>(m_d.data) + index,
x);
250 template <
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
252 :
evaluator<PlainObjectBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {
261 template <
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
263 :
evaluator<PlainObjectBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {
274 template <
typename ArgType>
290 return m_argImpl.coeff(
col,
row);
298 return m_argImpl.coeffRef(index);
301 template <
int LoadMode,
typename PacketType>
303 return m_argImpl.template packet<LoadMode, PacketType>(
col,
row);
306 template <
int LoadMode,
typename PacketType>
308 return m_argImpl.template packet<LoadMode, PacketType>(index);
311 template <
int StoreMode,
typename PacketType>
313 m_argImpl.template writePacket<StoreMode, PacketType>(
col,
row,
x);
316 template <
int StoreMode,
typename PacketType>
318 m_argImpl.template writePacket<StoreMode, PacketType>(index,
x);
333 template <
typename IndexType>
337 template <
typename IndexType>
342 template <
typename T,
typename IndexType>
344 return op.template packetOp<T>(
i,
j);
346 template <
typename T,
typename IndexType>
348 return op.template packetOp<T>(
i);
352 template <
typename Scalar,
typename NullaryOp>
354 template <
typename IndexType>
358 template <
typename T,
typename IndexType>
360 return op.template packetOp<T>();
364 template <
typename Scalar,
typename NullaryOp>
366 template <
typename IndexType>
370 template <
typename T,
typename IndexType>
372 return op.template packetOp<T>(
i,
j);
379 template <
typename Scalar,
typename NullaryOp>
381 template <
typename IndexType>
386 template <
typename T,
typename IndexType>
389 return op.template packetOp<T>(
i +
j);
392 template <
typename IndexType>
396 template <
typename T,
typename IndexType>
398 return op.template packetOp<T>(
i);
402 template <
typename Scalar,
typename NullaryOp>
405 #if 0 && EIGEN_COMP_MSVC > 0
423 template<
typename T>
struct nullary_wrapper_workaround_msvc {
424 nullary_wrapper_workaround_msvc(
const T&);
428 template<
typename Scalar,
typename NullaryOp>
429 struct nullary_wrapper<
Scalar,NullaryOp,true,true,true>
431 template <
typename IndexType>
433 return nullary_wrapper<
Scalar,NullaryOp,
434 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
435 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
436 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
operator()(
op,
i,
j);
438 template <
typename IndexType>
440 return nullary_wrapper<
Scalar,NullaryOp,
441 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
442 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
443 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
operator()(
op,
i);
446 template <
typename T,
typename IndexType>
448 return nullary_wrapper<
Scalar,NullaryOp,
449 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
450 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
451 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
template packetOp<T>(
op,
i,
j);
453 template <
typename T,
typename IndexType>
455 return nullary_wrapper<
Scalar,NullaryOp,
456 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
457 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
458 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
template packetOp<T>(
op,
i);
463 template <
typename NullaryOp,
typename PlainObjectType>
485 template <
typename IndexType>
487 return m_wrapper(m_functor,
row,
col);
490 template <
typename IndexType>
492 return m_wrapper(m_functor, index);
495 template <
int LoadMode,
typename PacketType,
typename IndexType>
497 return m_wrapper.template packetOp<PacketType>(m_functor,
row,
col);
500 template <
int LoadMode,
typename PacketType,
typename IndexType>
502 return m_wrapper.template packetOp<PacketType>(m_functor, index);
512 template <
typename UnaryOp,
typename ArgType>
532 return m_d.func()(m_d.argImpl.coeff(
row,
col));
536 return m_d.func()(m_d.argImpl.coeff(index));
539 template <
int LoadMode,
typename PacketType>
541 return m_d.func().packetOp(m_d.argImpl.template packet<LoadMode, PacketType>(
row,
col));
544 template <
int LoadMode,
typename PacketType>
546 return m_d.func().packetOp(m_d.argImpl.template packet<LoadMode, PacketType>(index));
553 :
op(xpr.functor()), argImpl(xpr.nestedExpression()) {}
564 template <
typename SrcType,
typename DstType,
typename ArgType>
572 static constexpr
int SrcPacketBytes = SrcPacketSize *
sizeof(SrcType);
584 : m_argImpl(xpr.nestedExpression()), m_rows(xpr.
rows()), m_cols(xpr.
cols()) {
589 template <
typename DstPacketType>
593 template <
typename DstPacketType>
596 template <
typename DstPacketType>
598 template <
typename DstPacketType>
600 template <
typename DstPacketType>
603 template <
bool UseRowMajor = IsRowMajor, std::enable_if_t<UseRowMajor,
bool> = true>
605 return col + packetSize <=
cols();
607 template <
bool UseRowMajor = IsRowMajor, std::enable_if_t<!UseRowMajor,
bool> = true>
609 return row + packetSize <=
rows();
612 return index + packetSize <=
size();
618 return m_argImpl.coeff(actualRow, actualCol);
621 Index actualIndex = index + offset;
622 return m_argImpl.coeff(actualIndex);
626 return cast<SrcType, DstType>(srcCoeff(
row,
col, 0));
629 return cast<SrcType, DstType>(srcCoeff(index, 0));
632 template <
int LoadMode,
typename PacketType = SrcPacketType>
635 Index actualRow = IsRowMajor ?
row :
row + (offset * PacketSize);
636 Index actualCol = IsRowMajor ?
col + (offset * PacketSize) :
col;
637 eigen_assert(check_array_bounds(actualRow, actualCol, PacketSize) &&
"Array index out of bounds");
638 return m_argImpl.template packet<LoadMode, PacketType>(actualRow, actualCol);
640 template <
int LoadMode,
typename PacketType = SrcPacketType>
643 Index actualIndex = index + (offset * PacketSize);
644 eigen_assert(check_array_bounds(actualIndex, PacketSize) &&
"Array index out of bounds");
645 return m_argImpl.template packet<LoadMode, PacketType>(actualIndex);
657 template <
int LoadMode,
typename DstPacketType, AltSrcScalarOp<DstPacketType> = true>
660 constexpr
int SrcBytesIncrement = DstPacketSize *
sizeof(SrcType);
661 constexpr
int SrcLoadMode =
plain_enum_min(SrcBytesIncrement, LoadMode);
664 src = srcPacket<SrcLoadMode>(
row,
col, 0);
667 for (
size_t k = 0;
k < DstPacketSize;
k++) srcArray[
k] = srcCoeff(
row,
col,
k);
668 for (
size_t k = DstPacketSize;
k < SrcPacketSize;
k++) srcArray[
k] = SrcType(0);
669 src = pload<SrcPacketType>(srcArray.
data());
671 return pcast<SrcPacketType, DstPacketType>(src);
674 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs1<DstPacketType> = true>
678 constexpr
int SrcBytesIncrement = DstPacketSize *
sizeof(SrcType);
679 constexpr
int SrcLoadMode =
plain_enum_min(SrcBytesIncrement, LoadMode);
680 return pcast<SizedSrcPacketType, DstPacketType>(srcPacket<SrcLoadMode, SizedSrcPacketType>(
row,
col, 0));
683 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs2<DstPacketType> = true>
685 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
686 return pcast<SrcPacketType, DstPacketType>(srcPacket<SrcLoadMode>(
row,
col, 0),
687 srcPacket<SrcLoadMode>(
row,
col, 1));
690 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs4<DstPacketType> = true>
692 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
693 return pcast<SrcPacketType, DstPacketType>(srcPacket<SrcLoadMode>(
row,
col, 0), srcPacket<SrcLoadMode>(
row,
col, 1),
694 srcPacket<SrcLoadMode>(
row,
col, 2),
695 srcPacket<SrcLoadMode>(
row,
col, 3));
698 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs8<DstPacketType> = true>
700 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
701 return pcast<SrcPacketType, DstPacketType>(
702 srcPacket<SrcLoadMode>(
row,
col, 0), srcPacket<SrcLoadMode>(
row,
col, 1), srcPacket<SrcLoadMode>(
row,
col, 2),
703 srcPacket<SrcLoadMode>(
row,
col, 3), srcPacket<SrcLoadMode>(
row,
col, 4), srcPacket<SrcLoadMode>(
row,
col, 5),
704 srcPacket<SrcLoadMode>(
row,
col, 6), srcPacket<SrcLoadMode>(
row,
col, 7));
708 template <
int LoadMode,
typename DstPacketType, AltSrcScalarOp<DstPacketType> = true>
711 constexpr
int SrcBytesIncrement = DstPacketSize *
sizeof(SrcType);
712 constexpr
int SrcLoadMode =
plain_enum_min(SrcBytesIncrement, LoadMode);
715 src = srcPacket<SrcLoadMode>(index, 0);
718 for (
size_t k = 0;
k < DstPacketSize;
k++) srcArray[
k] = srcCoeff(index,
k);
719 for (
size_t k = DstPacketSize;
k < SrcPacketSize;
k++) srcArray[
k] = SrcType(0);
720 src = pload<SrcPacketType>(srcArray.
data());
722 return pcast<SrcPacketType, DstPacketType>(src);
724 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs1<DstPacketType> = true>
728 constexpr
int SrcBytesIncrement = DstPacketSize *
sizeof(SrcType);
729 constexpr
int SrcLoadMode =
plain_enum_min(SrcBytesIncrement, LoadMode);
730 return pcast<SizedSrcPacketType, DstPacketType>(srcPacket<SrcLoadMode, SizedSrcPacketType>(index, 0));
732 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs2<DstPacketType> = true>
734 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
735 return pcast<SrcPacketType, DstPacketType>(srcPacket<SrcLoadMode>(index, 0), srcPacket<SrcLoadMode>(index, 1));
737 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs4<DstPacketType> = true>
739 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
740 return pcast<SrcPacketType, DstPacketType>(srcPacket<SrcLoadMode>(index, 0), srcPacket<SrcLoadMode>(index, 1),
741 srcPacket<SrcLoadMode>(index, 2), srcPacket<SrcLoadMode>(index, 3));
743 template <
int LoadMode,
typename DstPacketType, SrcPacketArgs8<DstPacketType> = true>
745 constexpr
int SrcLoadMode =
plain_enum_min(SrcPacketBytes, LoadMode);
746 return pcast<SrcPacketType, DstPacketType>(srcPacket<SrcLoadMode>(index, 0), srcPacket<SrcLoadMode>(index, 1),
747 srcPacket<SrcLoadMode>(index, 2), srcPacket<SrcLoadMode>(index, 3),
748 srcPacket<SrcLoadMode>(index, 4), srcPacket<SrcLoadMode>(index, 5),
749 srcPacket<SrcLoadMode>(index, 6), srcPacket<SrcLoadMode>(index, 7));
765 template <
typename TernaryOp,
typename Arg1,
typename Arg2,
typename Arg3>
774 template <
typename TernaryOp,
typename Arg1,
typename Arg2,
typename Arg3>
790 Flags0 = (
int(Arg1Flags) |
int(Arg2Flags) |
int(Arg3Flags)) &
792 (
int(Arg1Flags) &
int(Arg2Flags) &
int(Arg3Flags) &
808 return m_d.func()(m_d.arg1Impl.coeff(
row,
col), m_d.arg2Impl.coeff(
row,
col), m_d.arg3Impl.coeff(
row,
col));
812 return m_d.func()(m_d.arg1Impl.coeff(index), m_d.arg2Impl.coeff(index), m_d.arg3Impl.coeff(index));
815 template <
int LoadMode,
typename PacketType>
817 return m_d.func().packetOp(m_d.arg1Impl.template packet<LoadMode, PacketType>(
row,
col),
818 m_d.arg2Impl.template packet<LoadMode, PacketType>(
row,
col),
819 m_d.arg3Impl.template packet<LoadMode, PacketType>(
row,
col));
822 template <
int LoadMode,
typename PacketType>
824 return m_d.func().packetOp(m_d.arg1Impl.template packet<LoadMode, PacketType>(index),
825 m_d.arg2Impl.template packet<LoadMode, PacketType>(index),
826 m_d.arg3Impl.template packet<LoadMode, PacketType>(index));
833 :
op(xpr.functor()), arg1Impl(xpr.arg1()), arg2Impl(xpr.arg2()), arg3Impl(xpr.arg3()) {}
845 template <
typename Arg1,
typename Arg2,
typename Scalar,
typename CmpLhsType,
typename CmpRhsType, ComparisonName cmp>
849 CwiseTernaryOp<scalar_boolean_select_op<Scalar, Scalar, Scalar>, Arg1, Arg2,
850 CwiseBinaryOp<scalar_cmp_op<Scalar, Scalar, cmp, true>, CmpLhsType, CmpRhsType>>> {
862 :
Base(
XprType(xpr.arg1(), xpr.arg2(),
Arg3(xpr.arg3().lhs(), xpr.arg3().rhs()))) {}
868 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
876 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
889 Flags0 = (
int(LhsFlags) |
int(RhsFlags)) &
891 (
int(LhsFlags) &
int(RhsFlags) &
906 return m_d.func()(m_d.lhsImpl.coeff(
row,
col), m_d.rhsImpl.coeff(
row,
col));
910 return m_d.func()(m_d.lhsImpl.coeff(index), m_d.rhsImpl.coeff(index));
913 template <
int LoadMode,
typename PacketType>
915 return m_d.func().packetOp(m_d.lhsImpl.template packet<LoadMode, PacketType>(
row,
col),
916 m_d.rhsImpl.template packet<LoadMode, PacketType>(
row,
col));
919 template <
int LoadMode,
typename PacketType>
921 return m_d.func().packetOp(m_d.lhsImpl.template packet<LoadMode, PacketType>(index),
922 m_d.rhsImpl.template packet<LoadMode, PacketType>(index));
929 :
op(xpr.functor()), lhsImpl(xpr.lhs()), rhsImpl(xpr.rhs()) {}
941 template <
typename UnaryOp,
typename ArgType,
typename Str
ideType>
963 return m_d.func()(m_d.argImpl.coeff(
row,
col));
967 return m_d.func()(m_d.argImpl.coeff(index));
971 return m_d.func()(m_d.argImpl.coeffRef(
row,
col));
975 return m_d.func()(m_d.argImpl.coeffRef(index));
982 :
op(xpr.functor()), argImpl(xpr.nestedExpression()) {}
995 template <
typename Derived,
typename PlainObjectType>
998 template <
typename Derived,
typename PlainObjectType>
1017 PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
1035 template <
int LoadMode,
typename PacketType>
1038 return internal::ploadt<PacketType, LoadMode>(ptr);
1041 template <
int LoadMode,
typename PacketType>
1046 template <
int StoreMode,
typename PacketType>
1049 return internal::pstoret<Scalar, PacketType, StoreMode>(ptr,
x);
1052 template <
int StoreMode,
typename PacketType>
1070 template <
typename PlainObjectType,
int MapOptions,
typename Str
ideType>
1072 :
public mapbase_evaluator<Map<PlainObjectType, MapOptions, StrideType>, PlainObjectType> {
1079 InnerStrideAtCompileTime = StrideType::InnerStrideAtCompileTime == 0
1080 ?
int(PlainObjectType::InnerStrideAtCompileTime)
1081 :
int(StrideType::InnerStrideAtCompileTime),
1082 OuterStrideAtCompileTime = StrideType::OuterStrideAtCompileTime == 0
1083 ?
int(PlainObjectType::OuterStrideAtCompileTime)
1084 :
int(StrideType::OuterStrideAtCompileTime),
1085 HasNoInnerStride = InnerStrideAtCompileTime == 1,
1086 HasNoOuterStride = StrideType::OuterStrideAtCompileTime == 0,
1087 HasNoStride = HasNoInnerStride && HasNoOuterStride,
1088 IsDynamicSize = PlainObjectType::SizeAtCompileTime ==
Dynamic,
1103 template <
typename PlainObjectType,
int RefOptions,
typename Str
ideType>
1105 :
public mapbase_evaluator<Ref<PlainObjectType, RefOptions, StrideType>, PlainObjectType> {
1119 template <
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel,
1123 template <
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1140 IsRowMajor = (MaxRowsAtCompileTime == 1 && MaxColsAtCompileTime != 1) ? 1
1141 : (MaxColsAtCompileTime == 1 && MaxRowsAtCompileTime != 1) ? 0
1142 : ArgTypeIsRowMajor,
1143 HasSameStorageOrderAsArgType = (IsRowMajor == ArgTypeIsRowMajor),
1144 InnerSize = IsRowMajor ?
int(ColsAtCompileTime) :
int(RowsAtCompileTime),
1149 MaskPacketAccessBit = (InnerStrideAtCompileTime == 1 || HasSameStorageOrderAsArgType) ?
PacketAccessBit : 0,
1151 FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1 ||
1157 Flags = Flags0 | FlagsLinearAccessBit | FlagsRowMajorBit,
1160 Alignment0 = (InnerPanel && (OuterStrideAtCompileTime !=
Dynamic) && (OuterStrideAtCompileTime != 0) &&
1161 (((OuterStrideAtCompileTime *
int(sizeof(
Scalar))) %
int(PacketAlignment)) == 0))
1162 ?
int(PacketAlignment)
1173 template <
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1182 template <
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1184 :
evaluator_base<Block<ArgType, BlockRows, BlockCols, InnerPanel>> {
1188 : m_argImpl(
block.nestedExpression()),
1189 m_startRow(
block.startRow()),
1190 m_startCol(
block.startCol()),
1191 m_linear_offset(ForwardLinearAccess
1192 ? (ArgType::IsRowMajor
1201 RowsAtCompileTime = XprType::RowsAtCompileTime,
1202 ForwardLinearAccess = (InnerPanel ||
int(XprType::IsRowMajor) ==
int(ArgType::IsRowMajor)) &&
1207 return m_argImpl.coeff(m_startRow.value() +
row, m_startCol.value() +
col);
1215 return m_argImpl.coeffRef(m_startRow.value() +
row, m_startCol.value() +
col);
1222 template <
int LoadMode,
typename PacketType>
1224 return m_argImpl.template packet<LoadMode, PacketType>(m_startRow.value() +
row, m_startCol.value() +
col);
1227 template <
int LoadMode,
typename PacketType>
1229 if (ForwardLinearAccess)
1230 return m_argImpl.template packet<LoadMode, PacketType>(m_linear_offset.value() + index);
1232 return packet<LoadMode, PacketType>(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0);
1235 template <
int StoreMode,
typename PacketType>
1237 return m_argImpl.template writePacket<StoreMode, PacketType>(m_startRow.value() +
row, m_startCol.value() +
col,
x);
1240 template <
int StoreMode,
typename PacketType>
1242 if (ForwardLinearAccess)
1243 return m_argImpl.template writePacket<StoreMode, PacketType>(m_linear_offset.value() + index,
x);
1245 return writePacket<StoreMode, PacketType>(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0,
1252 return m_argImpl.coeff(m_linear_offset.value() + index);
1256 return coeff(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0);
1261 return m_argImpl.coeffRef(m_linear_offset.value() + index);
1265 return coeffRef(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0);
1277 template <
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1280 typename Block<ArgType, BlockRows, BlockCols, InnerPanel>::PlainObject> {
1288 "data is not aligned");
1296 template <
typename ConditionMatrixType,
typename ThenMatrixType,
typename ElseMatrixType>
1298 :
evaluator_base<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType>> {
1310 : m_conditionImpl(select.conditionMatrix()), m_thenImpl(select.thenMatrix()), m_elseImpl(select.elseMatrix()) {
1317 if (m_conditionImpl.coeff(
row,
col))
1318 return m_thenImpl.coeff(
row,
col);
1320 return m_elseImpl.coeff(
row,
col);
1324 if (m_conditionImpl.coeff(index))
1325 return m_thenImpl.coeff(index);
1327 return m_elseImpl.coeff(index);
1338 template <
typename ArgType,
int RowFactor,
int ColFactor>
1365 : RowFactor == 1 ?
row
1366 :
row % m_rows.value();
1368 : ColFactor == 1 ?
col
1369 :
col % m_cols.value();
1371 return m_argImpl.coeff(actual_row, actual_col);
1377 ? (ColFactor == 1 ? index : index % m_cols.value())
1378 : (RowFactor == 1 ? index : index % m_rows.value());
1380 return m_argImpl.coeff(actual_index);
1383 template <
int LoadMode,
typename PacketType>
1386 : RowFactor == 1 ?
row
1387 :
row % m_rows.value();
1389 : ColFactor == 1 ?
col
1390 :
col % m_cols.value();
1392 return m_argImpl.template packet<LoadMode, PacketType>(actual_row, actual_col);
1395 template <
int LoadMode,
typename PacketType>
1398 ? (ColFactor == 1 ? index : index % m_cols.value())
1399 : (RowFactor == 1 ? index : index % m_rows.value());
1401 return m_argImpl.template packet<LoadMode, PacketType>(actual_index);
1416 template <
typename XprType>
1431 return m_argImpl.coeff(
row,
col);
1440 template <
int LoadMode,
typename PacketType>
1442 return m_argImpl.template packet<LoadMode, PacketType>(
row,
col);
1445 template <
int LoadMode,
typename PacketType>
1447 return m_argImpl.template packet<LoadMode, PacketType>(index);
1450 template <
int StoreMode,
typename PacketType>
1452 m_argImpl.template writePacket<StoreMode>(
row,
col,
x);
1455 template <
int StoreMode,
typename PacketType>
1457 m_argImpl.template writePacket<StoreMode>(index,
x);
1464 template <
typename TArgType>
1472 template <
typename TArgType>
1483 template <
typename PacketType,
bool ReversePacket>
1484 struct reverse_packet_cond;
1486 template <
typename ArgType,
int Direction>
1493 IsRowMajor = XprType::IsRowMajor,
1494 IsColMajor = !IsRowMajor,
1507 ((ReverseRow && XprType::ColsAtCompileTime == 1) || (ReverseCol && XprType::RowsAtCompileTime == 1))
1517 : m_argImpl(
reverse.nestedExpression()),
1518 m_rows(ReverseRow ?
reverse.nestedExpression().
rows() : 1),
1519 m_cols(ReverseCol ?
reverse.nestedExpression().
cols() : 1) {}
1522 return m_argImpl.coeff(ReverseRow ? m_rows.value() -
row - 1 :
row, ReverseCol ? m_cols.value() -
col - 1 :
col);
1526 return m_argImpl.coeff(m_rows.value() * m_cols.value() - index - 1);
1530 return m_argImpl.coeffRef(ReverseRow ? m_rows.value() -
row - 1 :
row, ReverseCol ? m_cols.value() -
col - 1 :
col);
1534 return m_argImpl.coeffRef(m_rows.value() * m_cols.value() - index - 1);
1537 template <
int LoadMode,
typename PacketType>
1541 OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
1542 OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
1546 ReverseRow ? m_rows.value() -
row - OffsetRow :
row, ReverseCol ? m_cols.value() -
col - OffsetCol :
col));
1549 template <
int LoadMode,
typename PacketType>
1553 m_argImpl.template packet<LoadMode, PacketType>(m_rows.value() * m_cols.value() - index - PacketSize));
1556 template <
int LoadMode,
typename PacketType>
1561 OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
1562 OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
1565 m_argImpl.template writePacket<LoadMode>(ReverseRow ? m_rows.value() -
row - OffsetRow :
row,
1566 ReverseCol ? m_cols.value() -
col - OffsetCol :
col,
1570 template <
int LoadMode,
typename PacketType>
1573 m_argImpl.template writePacket<LoadMode>(m_rows.value() * m_cols.value() - index - PacketSize,
preverse(
x));
1587 template <
typename ArgType,
int DiagIndex>
1607 return m_argImpl.coeff(
row + rowOffset(),
row + colOffset());
1611 return m_argImpl.coeff(index + rowOffset(), index + colOffset());
1615 return m_argImpl.coeffRef(
row + rowOffset(),
row + colOffset());
1619 return m_argImpl.coeffRef(index + rowOffset(), index + colOffset());
1628 return m_index.
value() > 0 ? 0 : -m_index.
value();
1631 return m_index.
value() > 0 ? m_index.
value() : 0;
1643 template <
typename ArgType>
1646 template <
typename ArgType>
1649 template <
typename ArgType>
1657 const ArgType&
arg()
const {
return m_arg; }
1667 template <
typename ArgType>
1674 internal::construct_at<Base>(
this, m_result);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Eigen::Triplet< double > T
Definition: EigenUnitTest.cpp:11
Direction
An enum that indicates the direction in Cartesian coordinates.
Definition: GeneralDefine.h:56
#define EIGEN_PREDICT_TRUE(x)
Definition: Macros.h:1180
#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
Definition: Macros.h:1149
#define eigen_internal_assert(x)
Definition: Macros.h:916
#define EIGEN_NOEXCEPT
Definition: Macros.h:1267
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:966
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define eigen_assert(x)
Definition: Macros.h:910
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
int data[]
Definition: Map_placement_new.cpp:1
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C)
Definition: StaticAssert.h:101
m m block(1, 0, 2, 2)<< 4
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
void replicate(const MatrixType &m)
Definition: array_replicate.cpp:13
void reverse(const MatrixType &m)
Definition: array_reverse.cpp:17
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
SCALAR Scalar
Definition: bench_gemm.cpp:45
Expression of a mathematical vector or matrix as an array object.
Definition: ArrayWrapper.h:43
General-purpose arrays with easy API for coefficient-wise operations.
Definition: Array.h:48
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:110
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:79
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:64
Generic expression where a coefficient-wise ternary operator is applied to two expressions.
Definition: CwiseTernaryOp.h:86
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:53
Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector.
Definition: CwiseUnaryView.h:135
Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
Definition: Diagonal.h:68
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
Expression of an array as a mathematical vector or matrix.
Definition: ArrayWrapper.h:122
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Convenience specialization of Stride to specify only an outer stride See class Map for some examples.
Definition: Stride.h:104
Definition: PlainObjectBase.h:121
constexpr EIGEN_DEVICE_FUNC const Scalar * data() const
Definition: PlainObjectBase.h:273
internal::traits< Derived >::Scalar Scalar
Definition: PlainObjectBase.h:127
A matrix or vector expression mapping an existing expression.
Definition: Ref.h:264
Expression of the multiple replication of a matrix or vector.
Definition: Replicate.h:64
Expression of the reverse of a vector or matrix.
Definition: Reverse.h:65
Expression of a coefficient wise version of the C++ ternary operator ?:
Definition: Select.h:54
Expression of the transpose of a matrix.
Definition: Transpose.h:56
Definition: CoreEvaluators.h:1650
dense_xpr_base< EvalToTemp >::type Base
Definition: CoreEvaluators.h:1652
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1661
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1659
const ArgType & m_arg
Definition: CoreEvaluators.h:1664
const ArgType & arg() const
Definition: CoreEvaluators.h:1657
const Scalar * data
Definition: CoreEvaluators.h:162
Index m_outerStride
Definition: CoreEvaluators.h:165
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE Index outerStride() const
Definition: CoreEvaluators.h:161
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE plainobjectbase_evaluator_data(const Scalar *ptr, Index outerStride)
Definition: CoreEvaluators.h:159
Definition: CoreEvaluators.h:143
const Scalar * data
Definition: CoreEvaluators.h:153
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE plainobjectbase_evaluator_data(const Scalar *ptr, Index outerStride)
Definition: CoreEvaluators.h:145
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index outerStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:152
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:161
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:189
void diagonal(const MatrixType &m)
Definition: diagonal.cpp:13
@ AlignedMask
Definition: Constants.h:241
@ AlignedMax
Definition: Constants.h:254
@ BothDirections
Definition: Constants.h:272
@ Horizontal
Definition: Constants.h:269
@ Vertical
Definition: Constants.h:266
const unsigned int PacketAccessBit
Definition: Constants.h:97
const unsigned int LinearAccessBit
Definition: Constants.h:133
const unsigned int EvalBeforeNestingBit
Definition: Constants.h:74
const unsigned int DirectAccessBit
Definition: Constants.h:159
const unsigned int RowMajorBit
Definition: Constants.h:70
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
int * m
Definition: level2_cplx_impl.h:294
char char char int int * k
Definition: level2_impl.h:374
char char * op
Definition: level2_impl.h:374
constexpr int plain_enum_min(A a, B b)
Definition: Meta.h:649
@ Lhs
Definition: TensorContractionMapper.h:20
@ Rhs
Definition: TensorContractionMapper.h:20
constexpr int plain_enum_max(A a, B b)
Definition: Meta.h:656
constexpr bool check_implication(bool a, bool b)
Definition: Meta.h:740
EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf &a)
Definition: AltiVec/Complex.h:303
typename remove_all< T >::type remove_all_t
Definition: Meta.h:142
constexpr bool is_constant_evaluated()
Definition: Meta.h:746
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
const unsigned int ActualPacketAccessBit
Definition: Constants.h:110
squared absolute value
Definition: GlobalFunctions.h:87
const unsigned int HereditaryBits
Definition: Constants.h:198
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
const int Dynamic
Definition: Constants.h:25
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
type
Definition: compute_granudrum_aor.py:141
Definition: Eigen_Colamd.h:49
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
Definition: Constants.h:540
Definition: Constants.h:519
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
Definition: TensorMeta.h:47
Definition: Constants.h:564
Definition: Constants.h:528
Definition: Constants.h:543
Definition: Constants.h:525
Definition: Constants.h:567
Definition: Constants.h:531
Definition: Constants.h:577
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:920
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:905
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:909
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:914
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: CoreEvaluators.h:879
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:903
Data m_d
Definition: CoreEvaluators.h:936
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE binary_evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:898
evaluator< Lhs > lhsImpl
Definition: CoreEvaluators.h:932
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const BinaryOp & func() const
Definition: CoreEvaluators.h:930
evaluator< Rhs > rhsImpl
Definition: CoreEvaluators.h:933
BinaryOp op
Definition: CoreEvaluators.h:931
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:928
Definition: CoreEvaluators.h:78
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1176
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE block_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1178
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE block_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1284
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1282
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1281
Definition: CoreEvaluators.h:1121
Definition: functors/UnaryFunctors.h:224
Definition: XprHelper.h:558
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator()=default
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator(const XprType &m)
Definition: CoreEvaluators.h:268
Array< Scalar, Rows, Cols, Options, MaxRows, MaxCols > XprType
Definition: CoreEvaluators.h:264
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1126
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &block)
Definition: CoreEvaluators.h:1167
block_evaluator< ArgType, BlockRows, BlockCols, InnerPanel > block_evaluator_type
Definition: CoreEvaluators.h:1166
packet_traits< Scalar >::type PacketScalar
Definition: CoreEvaluators.h:1129
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1127
binary_evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > > Base
Definition: CoreEvaluators.h:871
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:873
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: CoreEvaluators.h:870
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(IndexType index) const
Definition: CoreEvaluators.h:501
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(IndexType row, IndexType col) const
Definition: CoreEvaluators.h:496
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:483
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(IndexType index) const
Definition: CoreEvaluators.h:491
internal::remove_all_t< PlainObjectType > PlainObjectTypeCleaned
Definition: CoreEvaluators.h:467
CwiseNullaryOp< NullaryOp, PlainObjectType > XprType
Definition: CoreEvaluators.h:466
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(IndexType row, IndexType col) const
Definition: CoreEvaluators.h:486
const NullaryOp m_functor
Definition: CoreEvaluators.h:506
EIGEN_DEVICE_FUNC evaluator(const XprType &n)
Definition: CoreEvaluators.h:479
const internal::nullary_wrapper< CoeffReturnType, NullaryOp > m_wrapper
Definition: CoreEvaluators.h:507
CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > XprType
Definition: CoreEvaluators.h:768
EIGEN_DEVICE_FUNC evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:771
ternary_evaluator< CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > > Base
Definition: CoreEvaluators.h:769
Eigen::internal::evaluator< CwiseTernaryOp< scalar_boolean_select_op< Scalar, Scalar, bool >, Arg1, Arg2, CwiseBinaryOp< scalar_cmp_op< Scalar, Scalar, cmp, false >, CmpLhsType, CmpRhsType > > >::evaluator EIGEN_DEVICE_FUNC evaluator(const DummyXprType &xpr)
Definition: CoreEvaluators.h:861
const internal::variable_if_dynamicindex< Index, XprType::DiagIndex > m_index
Definition: CoreEvaluators.h:1624
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index colOffset() const
Definition: CoreEvaluators.h:1630
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1610
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1603
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index)
Definition: CoreEvaluators.h:1614
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1623
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1604
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index) const
Definition: CoreEvaluators.h:1606
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rowOffset() const
Definition: CoreEvaluators.h:1627
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1618
Diagonal< ArgType, DiagIndex > XprType
Definition: CoreEvaluators.h:1589
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &diagonal)
Definition: CoreEvaluators.h:1600
EIGEN_DEVICE_FUNC evaluator(const ArgType &arg)
Definition: CoreEvaluators.h:1678
EvalToTemp< ArgType > XprType
Definition: CoreEvaluators.h:1669
EIGEN_DEVICE_FUNC evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:1673
evaluator< PlainObject > Base
Definition: CoreEvaluators.h:1671
ArgType::PlainObject PlainObject
Definition: CoreEvaluators.h:1670
PlainObject m_result
Definition: CoreEvaluators.h:1681
packet_traits< Scalar >::type PacketScalar
Definition: CoreEvaluators.h:1076
EIGEN_DEVICE_FUNC evaluator(const XprType &map)
Definition: CoreEvaluators.h:1098
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1074
Map< PlainObjectType, MapOptions, StrideType > XprType
Definition: CoreEvaluators.h:1073
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator()=default
Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > XprType
Definition: CoreEvaluators.h:253
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator(const XprType &m)
Definition: CoreEvaluators.h:257
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:216
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator()
Definition: CoreEvaluators.h:191
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:200
PlainObjectType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:172
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:234
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:207
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator(const PlainObjectType &m)
Definition: CoreEvaluators.h:195
PlainObjectBase< Derived > PlainObjectType
Definition: CoreEvaluators.h:170
plainobjectbase_evaluator_data< Scalar, OuterStrideAtCompileTime > m_d
Definition: CoreEvaluators.h:247
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:209
PlainObjectType::Scalar Scalar
Definition: CoreEvaluators.h:171
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:221
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:242
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:229
Ref< PlainObjectType, RefOptions, StrideType > XprType
Definition: CoreEvaluators.h:1106
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &ref)
Definition: CoreEvaluators.h:1113
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &select)
Definition: CoreEvaluators.h:1309
evaluator< ConditionMatrixType > m_conditionImpl
Definition: CoreEvaluators.h:1331
Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType > XprType
Definition: CoreEvaluators.h:1299
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1323
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1316
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1314
evaluator< ThenMatrixType > m_thenImpl
Definition: CoreEvaluators.h:1332
evaluator< ElseMatrixType > m_elseImpl
Definition: CoreEvaluators.h:1333
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const T &xpr)
Definition: CoreEvaluators.h:112
Definition: CoreEvaluators.h:98
static const bool value
Definition: CoreEvaluators.h:99
Definition: CoreEvaluators.h:118
EIGEN_DEVICE_FUNC evaluator_base(const evaluator_base &)
@ Alignment
Definition: CoreEvaluators.h:123
EIGEN_DEVICE_FUNC const evaluator_base & operator=(const evaluator_base &)
EIGEN_DEVICE_FUNC constexpr EIGEN_STRONG_INLINE evaluator_base()=default
traits< ExpressionType > ExpressionTraits
Definition: CoreEvaluators.h:121
Definition: CoreEvaluators.h:87
storage_kind_to_evaluator_kind< typename traits< T >::StorageKind >::Kind Kind
Definition: CoreEvaluators.h:89
storage_kind_to_shape< typename traits< T >::StorageKind >::Shape Shape
Definition: CoreEvaluators.h:90
Definition: CoreEvaluators.h:95
Definition: CoreEvaluators.h:1417
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1456
ArgType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1428
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator_wrapper_base(const ArgType &arg)
Definition: CoreEvaluators.h:1425
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1451
ArgType::Scalar Scalar
Definition: CoreEvaluators.h:1427
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1441
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1446
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1461
remove_all_t< typename XprType::NestedExpressionType > ArgType
Definition: CoreEvaluators.h:1418
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1438
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1434
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1436
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1430
Definition: CoreEvaluators.h:104
unary_evaluator< T > Base
Definition: CoreEvaluators.h:105
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const T &xpr)
Definition: CoreEvaluators.h:106
Definition: XprHelper.h:307
typename find_packet_by_size_helper< Size, typename packet_traits< T >::type >::type type
Definition: XprHelper.h:308
Definition: NullaryFunctors.h:209
Definition: XprHelper.h:205
Definition: ForwardDeclarations.h:31
Definition: DenseCoeffsBase.h:546
Definition: CoreEvaluators.h:999
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1053
PointerType m_data
Definition: CoreEvaluators.h:1065
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1025
@ IsRowMajor
Definition: CoreEvaluators.h:1006
@ CoeffReadCost
Definition: CoreEvaluators.h:1008
@ ColsAtCompileTime
Definition: CoreEvaluators.h:1007
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1036
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1021
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1033
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1002
XprType::PointerType PointerType
Definition: CoreEvaluators.h:1001
const internal::variable_if_dynamic< Index, XprType::InnerStrideAtCompileTime > m_innerStride
Definition: CoreEvaluators.h:1066
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1042
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rowStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1058
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1003
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index colStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1061
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE mapbase_evaluator(const XprType &map)
Definition: CoreEvaluators.h:1011
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1029
const internal::variable_if_dynamic< Index, XprType::OuterStrideAtCompileTime > m_outerStride
Definition: CoreEvaluators.h:1067
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1047
Derived XprType
Definition: CoreEvaluators.h:1000
std::conditional_t< Evaluate, PlainObject, typename ref_selector< T >::type > type
Definition: XprHelper.h:549
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j=0) const
Definition: CoreEvaluators.h:367
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j=0) const
Definition: CoreEvaluators.h:371
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:393
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:387
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:382
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:397
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType=0, IndexType=0) const
Definition: CoreEvaluators.h:355
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType=0, IndexType=0) const
Definition: CoreEvaluators.h:359
Definition: CoreEvaluators.h:332
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:347
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:343
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:334
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:338
Definition: DenseCoeffsBase.h:556
Definition: GenericPacketMath.h:108
Definition: TernaryFunctors.h:23
Template functors for comparison of two scalars.
Definition: BinaryFunctors.h:199
Definition: CoreEvaluators.h:25
IndexBased Kind
Definition: CoreEvaluators.h:26
DenseShape Shape
Definition: CoreEvaluators.h:36
PermutationShape Shape
Definition: CoreEvaluators.h:44
SolverShape Shape
Definition: CoreEvaluators.h:40
TranspositionsShape Shape
Definition: CoreEvaluators.h:48
Definition: CoreEvaluators.h:32
CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > XprType
Definition: CoreEvaluators.h:777
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:805
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:811
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:823
Data m_d
Definition: CoreEvaluators.h:841
EIGEN_DEVICE_FUNC ternary_evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:800
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:807
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:816
evaluator< Arg1 > arg1Impl
Definition: CoreEvaluators.h:836
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TernaryOp & func() const
Definition: CoreEvaluators.h:834
evaluator< Arg2 > arg2Impl
Definition: CoreEvaluators.h:837
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:832
TernaryOp op
Definition: CoreEvaluators.h:835
evaluator< Arg3 > arg3Impl
Definition: CoreEvaluators.h:838
Definition: CoreEvaluators.h:72
Definition: ForwardDeclarations.h:21
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &wrapper)
Definition: CoreEvaluators.h:1476
ArrayWrapper< TArgType > XprType
Definition: CoreEvaluators.h:1474
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1228
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1236
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1187
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1214
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1185
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & linear_coeffRef_impl(Index index, internal::false_type)
Definition: CoreEvaluators.h:1263
const variable_if_dynamic< Index, ForwardLinearAccess ? Dynamic :0 > m_linear_offset
Definition: CoreEvaluators.h:1271
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1268
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType linear_coeff_impl(Index index, internal::true_type) const
Definition: CoreEvaluators.h:1251
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1241
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & linear_coeffRef_impl(Index index, internal::true_type)
Definition: CoreEvaluators.h:1259
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1218
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1206
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1197
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType linear_coeff_impl(Index index, internal::false_type) const
Definition: CoreEvaluators.h:1255
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1223
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1198
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1210
evaluator< ArgType > argImpl
Definition: CoreEvaluators.h:556
UnaryOp op
Definition: CoreEvaluators.h:555
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp & func() const
Definition: CoreEvaluators.h:554
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:552
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:535
CwiseUnaryOp< UnaryOp, ArgType > XprType
Definition: CoreEvaluators.h:514
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:540
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:529
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &op)
Definition: CoreEvaluators.h:524
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:545
Data m_d
Definition: CoreEvaluators.h:559
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:531
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DstPacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:658
const variable_if_dynamic< Index, XprType::RowsAtCompileTime > m_rows
Definition: CoreEvaluators.h:758
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool check_array_bounds(Index index, Index packetSize) const
Definition: CoreEvaluators.h:611
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType srcPacket(Index row, Index col, Index offset) const
Definition: CoreEvaluators.h:633
constexpr EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index size() const
Definition: CoreEvaluators.h:754
std::enable_if_t<(unpacket_traits< DstPacketType >::size)==(8 *SrcPacketSize), bool > SrcPacketArgs8
Definition: CoreEvaluators.h:601
constexpr EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const
Definition: CoreEvaluators.h:753
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType srcPacket(Index index, Index offset) const
Definition: CoreEvaluators.h:641
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DstPacketType packet(Index index) const
Definition: CoreEvaluators.h:709
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE SrcType srcCoeff(Index row, Index col, Index offset) const
Definition: CoreEvaluators.h:615
std::enable_if_t<(unpacket_traits< DstPacketType >::size)==(4 *SrcPacketSize), bool > SrcPacketArgs4
Definition: CoreEvaluators.h:599
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DstType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:625
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE SrcType srcCoeff(Index index, Index offset) const
Definition: CoreEvaluators.h:620
std::enable_if_t<(find_packet_by_size< SrcType, unpacket_traits< DstPacketType >::size >::value), bool > SrcPacketArgs1
Definition: CoreEvaluators.h:595
constexpr EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
Definition: CoreEvaluators.h:752
std::enable_if_t<(unpacket_traits< DstPacketType >::size< SrcPacketSize &&!find_packet_by_size< SrcType, unpacket_traits< DstPacketType >::size >::value), bool > AltSrcScalarOp
Definition: CoreEvaluators.h:592
std::enable_if_t<(unpacket_traits< DstPacketType >::size)==(2 *SrcPacketSize), bool > SrcPacketArgs2
Definition: CoreEvaluators.h:597
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool check_array_bounds(Index row, Index, Index packetSize) const
Definition: CoreEvaluators.h:608
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool check_array_bounds(Index, Index col, Index packetSize) const
Definition: CoreEvaluators.h:604
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE DstType coeff(Index index) const
Definition: CoreEvaluators.h:628
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:583
const evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:757
const variable_if_dynamic< Index, XprType::ColsAtCompileTime > m_cols
Definition: CoreEvaluators.h:759
typename packet_traits< SrcType >::type SrcPacketType
Definition: CoreEvaluators.h:570
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:981
evaluator< ArgType > argImpl
Definition: CoreEvaluators.h:985
UnaryOp op
Definition: CoreEvaluators.h:984
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp & func() const
Definition: CoreEvaluators.h:983
Data m_d
Definition: CoreEvaluators.h:988
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:962
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:966
XprType::Scalar Scalar
Definition: CoreEvaluators.h:959
CwiseUnaryView< UnaryOp, ArgType, StrideType > XprType
Definition: CoreEvaluators.h:944
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:960
EIGEN_DEVICE_FUNC unary_evaluator(const XprType &op)
Definition: CoreEvaluators.h:954
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:970
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:974
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &wrapper)
Definition: CoreEvaluators.h:1468
MatrixWrapper< TArgType > XprType
Definition: CoreEvaluators.h:1466
internal::nested_eval< ArgType, Factor >::type ArgTypeNested
Definition: CoreEvaluators.h:1344
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1362
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &replicate)
Definition: CoreEvaluators.h:1356
internal::remove_all_t< ArgTypeNested > ArgTypeNestedCleaned
Definition: CoreEvaluators.h:1345
const ArgTypeNested m_arg
Definition: CoreEvaluators.h:1405
Replicate< ArgType, RowFactor, ColFactor > XprType
Definition: CoreEvaluators.h:1341
const variable_if_dynamic< Index, ArgType::ColsAtCompileTime > m_cols
Definition: CoreEvaluators.h:1408
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1374
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1384
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1396
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1342
evaluator< ArgTypeNestedCleaned > m_argImpl
Definition: CoreEvaluators.h:1406
const variable_if_dynamic< Index, ArgType::RowsAtCompileTime > m_rows
Definition: CoreEvaluators.h:1407
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1538
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1525
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1577
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1533
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &reverse)
Definition: CoreEvaluators.h:1516
const variable_if_dynamic< Index, ReverseRow ? ArgType::RowsAtCompileTime :1 > m_rows
Definition: CoreEvaluators.h:1581
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1550
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1529
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1571
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1490
Reverse< ArgType, Direction > XprType
Definition: CoreEvaluators.h:1488
const variable_if_dynamic< Index, ReverseCol ? ArgType::ColsAtCompileTime :1 > m_cols
Definition: CoreEvaluators.h:1582
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1521
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1557
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1489
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:289
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:287
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:295
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:317
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:322
XprType::Scalar Scalar
Definition: CoreEvaluators.h:286
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:302
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:312
Transpose< ArgType > XprType
Definition: CoreEvaluators.h:276
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:307
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE XprType::Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:297
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &t)
Definition: CoreEvaluators.h:284
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:293
Definition: CoreEvaluators.h:82
Definition: GenericPacketMath.h:134
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2
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