13#ifndef EIGEN_COREEVALUATORS_H
14#define EIGEN_COREEVALUATORS_H
22template<
typename StorageKind>
83template<typename T, typename Shape = typename evaluator_traits<T>::Shape >
85 static const bool value =
false;
109template<
typename ExpressionType>
141#ifndef EIGEN_INTERNAL_DEBUGGING
162template<
typename Derived>
171 IsRowMajor = PlainObjectType::IsRowMajor,
172 IsVectorAtCompileTime = PlainObjectType::IsVectorAtCompileTime,
173 RowsAtCompileTime = PlainObjectType::RowsAtCompileTime,
174 ColsAtCompileTime = PlainObjectType::ColsAtCompileTime,
182 OuterStrideAtCompileTime = IsVectorAtCompileTime ? 0
183 : int(IsRowMajor) ? ColsAtCompileTime
189 : m_d(0,OuterStrideAtCompileTime)
196 : m_d(m.
data(),IsVectorAtCompileTime ? 0 : m.outerStride())
205 return m_d.data[
row * m_d.outerStride() +
col];
207 return m_d.data[
row +
col * m_d.outerStride()];
213 return m_d.data[
index];
220 return const_cast<Scalar*
>(m_d.data)[
row * m_d.outerStride() +
col];
222 return const_cast<Scalar*
>(m_d.data)[
row +
col * m_d.outerStride()];
231 template<
int LoadMode,
typename PacketType>
236 return ploadt<PacketType, LoadMode>(m_d.data +
row * m_d.outerStride() +
col);
238 return ploadt<PacketType, LoadMode>(m_d.data +
row +
col * m_d.outerStride());
241 template<
int LoadMode,
typename PacketType>
245 return ploadt<PacketType, LoadMode>(m_d.data +
index);
248 template<
int StoreMode,
typename PacketType>
253 return pstoret<Scalar, PacketType, StoreMode>
254 (
const_cast<Scalar*
>(m_d.data) +
row * m_d.outerStride() +
col, x);
256 return pstoret<Scalar, PacketType, StoreMode>
257 (
const_cast<Scalar*
>(m_d.data) +
row +
col * m_d.outerStride(), x);
260 template<
int StoreMode,
typename PacketType>
264 return pstoret<Scalar, PacketType, StoreMode>(
const_cast<Scalar*
>(m_d.data) +
index, x);
272template<
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
274 :
evaluator<PlainObjectBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
287template<
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
289 :
evaluator<PlainObjectBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
304template<
typename ArgType>
325 return m_argImpl.coeff(
col,
row);
331 return m_argImpl.coeff(
index);
337 return m_argImpl.coeffRef(
col,
row);
343 return m_argImpl.coeffRef(
index);
346 template<
int LoadMode,
typename PacketType>
350 return m_argImpl.template packet<LoadMode,PacketType>(
col,
row);
353 template<
int LoadMode,
typename PacketType>
357 return m_argImpl.template packet<LoadMode,PacketType>(
index);
360 template<
int StoreMode,
typename PacketType>
364 m_argImpl.template writePacket<StoreMode,PacketType>(
col,
row, x);
367 template<
int StoreMode,
typename PacketType>
371 m_argImpl.template writePacket<StoreMode,PacketType>(
index, x);
382template<
typename Scalar,
typename NullaryOp,
388 template <
typename IndexType>
390 template <
typename IndexType>
397template<
typename Scalar,
typename NullaryOp>
400 template <
typename IndexType>
405template<
typename Scalar,
typename NullaryOp>
408 template <
typename IndexType>
416template<
typename Scalar,
typename NullaryOp>
419 template <
typename IndexType>
426 return op.template packetOp<T>(i+j);
429 template <
typename IndexType>
431 template <
typename T,
typename IndexType>
435template<
typename Scalar,
typename NullaryOp>
438#if 0 && EIGEN_COMP_MSVC>0
456template<
typename T>
struct nullary_wrapper_workaround_msvc {
457 nullary_wrapper_workaround_msvc(
const T&);
461template<
typename Scalar,
typename NullaryOp>
462struct nullary_wrapper<Scalar,NullaryOp,true,true,true>
464 template <
typename IndexType>
466 return nullary_wrapper<Scalar,NullaryOp,
467 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
468 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
469 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
operator()(op,i,j);
471 template <
typename IndexType>
473 return nullary_wrapper<Scalar,NullaryOp,
474 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
475 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
476 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
operator()(op,i);
479 template <
typename T,
typename IndexType>
481 return nullary_wrapper<Scalar,NullaryOp,
482 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
483 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
484 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
template packetOp<T>(op,i,j);
486 template <
typename T,
typename IndexType>
488 return nullary_wrapper<Scalar,NullaryOp,
489 has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
490 has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value,
491 has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >
::value>().
template packetOp<T>(op,i);
496template<
typename NullaryOp,
typename PlainObjectType>
515 : m_functor(n.functor()), m_wrapper()
522 template <
typename IndexType>
526 return m_wrapper(m_functor,
row,
col);
529 template <
typename IndexType>
533 return m_wrapper(m_functor,
index);
536 template<
int LoadMode,
typename PacketType,
typename IndexType>
540 return m_wrapper.template packetOp<PacketType>(m_functor,
row,
col);
543 template<
int LoadMode,
typename PacketType,
typename IndexType>
547 return m_wrapper.template packetOp<PacketType>(m_functor,
index);
557template<
typename UnaryOp,
typename ArgType>
583 return m_d.func()(m_d.argImpl.coeff(
row,
col));
589 return m_d.func()(m_d.argImpl.coeff(
index));
592 template<
int LoadMode,
typename PacketType>
596 return m_d.func().packetOp(m_d.argImpl.template packet<LoadMode, PacketType>(
row,
col));
599 template<
int LoadMode,
typename PacketType>
603 return m_d.func().packetOp(m_d.argImpl.template packet<LoadMode, PacketType>(
index));
612 Data(
const XprType& xpr) : op(xpr.functor()), argImpl(xpr.nestedExpression()) {}
614 const UnaryOp&
func()
const {
return op; }
625template<
typename TernaryOp,
typename Arg1,
typename Arg2,
typename Arg3>
635template<
typename TernaryOp,
typename Arg1,
typename Arg2,
typename Arg3>
649 Flags0 = (
int(Arg1Flags) | int(Arg2Flags) | int(Arg3Flags)) & (
651 | (
int(Arg1Flags) &
int(Arg2Flags) &
int(Arg3Flags) &
674 return m_d.func()(m_d.arg1Impl.coeff(
row,
col), m_d.arg2Impl.coeff(
row,
col), m_d.arg3Impl.coeff(
row,
col));
680 return m_d.func()(m_d.arg1Impl.coeff(
index), m_d.arg2Impl.coeff(
index), m_d.arg3Impl.coeff(
index));
683 template<
int LoadMode,
typename PacketType>
687 return m_d.func().packetOp(m_d.arg1Impl.template packet<LoadMode,PacketType>(
row,
col),
688 m_d.arg2Impl.template packet<LoadMode,PacketType>(
row,
col),
689 m_d.arg3Impl.template packet<LoadMode,PacketType>(
row,
col));
692 template<
int LoadMode,
typename PacketType>
696 return m_d.func().packetOp(m_d.arg1Impl.template packet<LoadMode,PacketType>(
index),
697 m_d.arg2Impl.template packet<LoadMode,PacketType>(
index),
698 m_d.arg3Impl.template packet<LoadMode,PacketType>(
index));
706 Data(
const XprType& xpr) : op(xpr.functor()), arg1Impl(xpr.arg1()), arg2Impl(xpr.arg2()), arg3Impl(xpr.arg3()) {}
708 const TernaryOp&
func()
const {
return op; }
721template<
typename BinaryOp,
typename Lhs,
typename Rhs>
732template<
typename BinaryOp,
typename Lhs,
typename Rhs>
745 Flags0 = (
int(LhsFlags) | int(RhsFlags)) & (
747 | (
int(LhsFlags) &
int(RhsFlags) &
769 return m_d.func()(m_d.lhsImpl.coeff(
row,
col), m_d.rhsImpl.coeff(
row,
col));
775 return m_d.func()(m_d.lhsImpl.coeff(
index), m_d.rhsImpl.coeff(
index));
778 template<
int LoadMode,
typename PacketType>
782 return m_d.func().packetOp(m_d.lhsImpl.template packet<LoadMode,PacketType>(
row,
col),
783 m_d.rhsImpl.template packet<LoadMode,PacketType>(
row,
col));
786 template<
int LoadMode,
typename PacketType>
790 return m_d.func().packetOp(m_d.lhsImpl.template packet<LoadMode,PacketType>(
index),
791 m_d.rhsImpl.template packet<LoadMode,PacketType>(
index));
800 Data(
const XprType& xpr) : op(xpr.functor()), lhsImpl(xpr.lhs()), rhsImpl(xpr.rhs()) {}
802 const BinaryOp&
func()
const {
return op; }
813template<
typename UnaryOp,
typename ArgType>
839 return m_d.func()(m_d.argImpl.coeff(
row,
col));
845 return m_d.func()(m_d.argImpl.coeff(
index));
851 return m_d.func()(m_d.argImpl.coeffRef(
row,
col));
857 return m_d.func()(m_d.argImpl.coeffRef(
index));
866 Data(
const XprType& xpr) : op(xpr.functor()), argImpl(xpr.nestedExpression()) {}
868 const UnaryOp&
func()
const {
return op; }
880template<
typename Derived,
typename PlainObjectType>
883template<
typename Derived,
typename PlainObjectType>
904 PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
932 template<
int LoadMode,
typename PacketType>
937 return internal::ploadt<PacketType, LoadMode>(
ptr);
940 template<
int LoadMode,
typename PacketType>
947 template<
int StoreMode,
typename PacketType>
952 return internal::pstoret<Scalar, PacketType, StoreMode>(
ptr, x);
955 template<
int StoreMode,
typename PacketType>
976template<
typename PlainObjectType,
int MapOptions,
typename Str
ideType>
978 :
public mapbase_evaluator<Map<PlainObjectType, MapOptions, StrideType>, PlainObjectType>
986 InnerStrideAtCompileTime = StrideType::InnerStrideAtCompileTime == 0
987 ? int(PlainObjectType::InnerStrideAtCompileTime)
988 : int(StrideType::InnerStrideAtCompileTime),
989 OuterStrideAtCompileTime = StrideType::OuterStrideAtCompileTime == 0
990 ? int(PlainObjectType::OuterStrideAtCompileTime)
991 : int(StrideType::OuterStrideAtCompileTime),
992 HasNoInnerStride = InnerStrideAtCompileTime == 1,
993 HasNoOuterStride = StrideType::OuterStrideAtCompileTime == 0,
994 HasNoStride = HasNoInnerStride && HasNoOuterStride,
995 IsDynamicSize = PlainObjectType::SizeAtCompileTime==
Dynamic,
998 LinearAccessMask = bool(HasNoStride) || bool(PlainObjectType::IsVectorAtCompileTime) ? ~int(0) : ~int(
LinearAccessBit),
999 Flags = int(
evaluator<PlainObjectType>::Flags) & (LinearAccessMask&PacketAccessMask),
1011template<
typename PlainObjectType,
int RefOptions,
typename Str
ideType>
1013 :
public mapbase_evaluator<Ref<PlainObjectType, RefOptions, StrideType>, PlainObjectType>
1030template<
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel,
1033template<
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1051 IsRowMajor = (MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1) ? 1
1052 : (MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1) ? 0
1053 : ArgTypeIsRowMajor,
1054 HasSameStorageOrderAsArgType = (IsRowMajor == ArgTypeIsRowMajor),
1055 InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
1056 InnerStrideAtCompileTime = HasSameStorageOrderAsArgType
1059 OuterStrideAtCompileTime = HasSameStorageOrderAsArgType
1062 MaskPacketAccessBit = (InnerStrideAtCompileTime == 1 || HasSameStorageOrderAsArgType) ?
PacketAccessBit : 0,
1068 MaskPacketAccessBit),
1069 Flags = Flags0 | FlagsLinearAccessBit | FlagsRowMajorBit,
1072 Alignment0 = (InnerPanel && (OuterStrideAtCompileTime!=
Dynamic)
1073 && (OuterStrideAtCompileTime!=0)
1074 && (((OuterStrideAtCompileTime * int(sizeof(
Scalar))) % int(PacketAlignment)) == 0)) ? int(PacketAlignment) : 0,
1086template<
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1098template<
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1100 :
evaluator_base<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
1106 : m_argImpl(
block.nestedExpression()),
1107 m_startRow(
block.startRow()),
1108 m_startCol(
block.startCol()),
1109 m_linear_offset(ForwardLinearAccess?(ArgType::IsRowMajor ?
block.startRow()*
block.nestedExpression().cols() +
block.startCol() :
block.startCol()*
block.nestedExpression().rows() +
block.startRow()):0)
1116 RowsAtCompileTime = XprType::RowsAtCompileTime,
1123 return m_argImpl.coeff(m_startRow.value() +
row, m_startCol.value() +
col);
1135 return m_argImpl.coeffRef(m_startRow.value() +
row, m_startCol.value() +
col);
1144 template<
int LoadMode,
typename PacketType>
1148 return m_argImpl.template packet<LoadMode,PacketType>(m_startRow.value() +
row, m_startCol.value() +
col);
1151 template<
int LoadMode,
typename PacketType>
1155 if (ForwardLinearAccess)
1156 return m_argImpl.template packet<LoadMode,PacketType>(m_linear_offset.value() +
index);
1158 return packet<LoadMode,PacketType>(RowsAtCompileTime == 1 ? 0 :
index,
1159 RowsAtCompileTime == 1 ?
index : 0);
1162 template<
int StoreMode,
typename PacketType>
1166 return m_argImpl.template writePacket<StoreMode,PacketType>(m_startRow.value() +
row, m_startCol.value() +
col, x);
1169 template<
int StoreMode,
typename PacketType>
1173 if (ForwardLinearAccess)
1174 return m_argImpl.template writePacket<StoreMode,PacketType>(m_linear_offset.value() +
index, x);
1176 return writePacket<StoreMode,PacketType>(RowsAtCompileTime == 1 ? 0 :
index,
1177 RowsAtCompileTime == 1 ?
index : 0,
1185 return m_argImpl.coeff(m_linear_offset.value() +
index);
1190 return coeff(RowsAtCompileTime == 1 ? 0 :
index, RowsAtCompileTime == 1 ?
index : 0);
1196 return m_argImpl.coeffRef(m_linear_offset.value() +
index);
1201 return coeffRef(RowsAtCompileTime == 1 ? 0 :
index, RowsAtCompileTime == 1 ?
index : 0);
1213template<
typename ArgType,
int BlockRows,
int BlockCols,
bool InnerPanel>
1216 typename Block<ArgType, BlockRows, BlockCols, InnerPanel>::PlainObject>
1235template<
typename ConditionMatrixType,
typename ThenMatrixType,
typename ElseMatrixType>
1237 :
evaluator_base<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
1252 : m_conditionImpl(select.conditionMatrix()),
1253 m_thenImpl(select.thenMatrix()),
1254 m_elseImpl(select.elseMatrix())
1264 if (m_conditionImpl.coeff(
row,
col))
1265 return m_thenImpl.coeff(
row,
col);
1267 return m_elseImpl.coeff(
row,
col);
1273 if (m_conditionImpl.coeff(
index))
1274 return m_thenImpl.coeff(
index);
1276 return m_elseImpl.coeff(
index);
1288template<
typename ArgType,
int RowFactor,
int ColFactor>
1310 : m_arg(replicate.nestedExpression()),
1312 m_rows(replicate.nestedExpression().rows()),
1313 m_cols(replicate.nestedExpression().cols())
1321 : RowFactor==1 ?
row
1322 :
row % m_rows.value();
1324 : ColFactor==1 ?
col
1325 :
col % m_cols.value();
1327 return m_argImpl.coeff(actual_row, actual_col);
1335 ? (ColFactor==1 ?
index :
index%m_cols.value())
1336 : (RowFactor==1 ?
index :
index%m_rows.value());
1338 return m_argImpl.coeff(actual_index);
1341 template<
int LoadMode,
typename PacketType>
1346 : RowFactor==1 ?
row
1347 :
row % m_rows.value();
1349 : ColFactor==1 ?
col
1350 :
col % m_cols.value();
1352 return m_argImpl.template packet<LoadMode,PacketType>(actual_row, actual_col);
1355 template<
int LoadMode,
typename PacketType>
1360 ? (ColFactor==1 ?
index :
index%m_cols.value())
1361 : (RowFactor==1 ?
index :
index%m_rows.value());
1363 return m_argImpl.template packet<LoadMode,PacketType>(actual_index);
1378template<
typename XprType>
1398 return m_argImpl.coeff(
row,
col);
1404 return m_argImpl.coeff(
index);
1410 return m_argImpl.coeffRef(
row,
col);
1416 return m_argImpl.coeffRef(
index);
1419 template<
int LoadMode,
typename PacketType>
1423 return m_argImpl.template packet<LoadMode,PacketType>(
row,
col);
1426 template<
int LoadMode,
typename PacketType>
1430 return m_argImpl.template packet<LoadMode,PacketType>(
index);
1433 template<
int StoreMode,
typename PacketType>
1437 m_argImpl.template writePacket<StoreMode>(
row,
col, x);
1440 template<
int StoreMode,
typename PacketType>
1444 m_argImpl.template writePacket<StoreMode>(
index, x);
1451template<
typename TArgType>
1463template<
typename TArgType>
1479template<
typename PacketType,
bool ReversePacket>
struct reverse_packet_cond;
1481template<
typename ArgType,
int Direction>
1490 IsRowMajor = XprType::IsRowMajor,
1491 IsColMajor = !IsRowMajor,
1495 || ((Direction ==
Vertical) && IsColMajor)
1504 || ((ReverseRow && XprType::ColsAtCompileTime==1) || (ReverseCol && XprType::RowsAtCompileTime==1))
1514 : m_argImpl(
reverse.nestedExpression()),
1515 m_rows(ReverseRow ?
reverse.nestedExpression().rows() : 1),
1516 m_cols(ReverseCol ?
reverse.nestedExpression().cols() : 1)
1522 return m_argImpl.coeff(ReverseRow ? m_rows.value() -
row - 1 :
row,
1523 ReverseCol ? m_cols.value() -
col - 1 :
col);
1529 return m_argImpl.coeff(m_rows.value() * m_cols.value() -
index - 1);
1535 return m_argImpl.coeffRef(ReverseRow ? m_rows.value() -
row - 1 :
row,
1536 ReverseCol ? m_cols.value() -
col - 1 :
col);
1542 return m_argImpl.coeffRef(m_rows.value() * m_cols.value() -
index - 1);
1545 template<
int LoadMode,
typename PacketType>
1551 OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
1552 OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
1555 return reverse_packet::run(m_argImpl.template packet<LoadMode,PacketType>(
1556 ReverseRow ? m_rows.value() -
row - OffsetRow :
row,
1557 ReverseCol ? m_cols.value() -
col - OffsetCol :
col));
1560 template<
int LoadMode,
typename PacketType>
1565 return preverse(m_argImpl.template packet<LoadMode,PacketType>(m_rows.value() * m_cols.value() -
index - PacketSize));
1568 template<
int LoadMode,
typename PacketType>
1575 OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
1576 OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
1579 m_argImpl.template writePacket<LoadMode>(
1580 ReverseRow ? m_rows.value() -
row - OffsetRow :
row,
1581 ReverseCol ? m_cols.value() -
col - OffsetCol :
col,
1582 reverse_packet::run(x));
1585 template<
int LoadMode,
typename PacketType>
1590 m_argImpl.template writePacket<LoadMode>
1591 (m_rows.value() * m_cols.value() -
index - PacketSize,
preverse(x));
1606template<
typename ArgType,
int DiagIndex>
1622 : m_argImpl(diagonal.nestedExpression()),
1623 m_index(diagonal.
index())
1632 return m_argImpl.coeff(
row + rowOffset(),
row + colOffset());
1638 return m_argImpl.coeff(
index + rowOffset(),
index + colOffset());
1644 return m_argImpl.coeffRef(
row + rowOffset(),
row + colOffset());
1650 return m_argImpl.coeffRef(
index + rowOffset(),
index + colOffset());
1659 Index rowOffset()
const {
return m_index.
value() > 0 ? 0 : -m_index.
value(); }
1661 Index colOffset()
const {
return m_index.
value() > 0 ? m_index.
value() : 0; }
1673template<
typename ArgType>
class EvalToTemp;
1675template<
typename ArgType>
1680template<
typename ArgType>
1700 return m_arg.rows();
1705 return m_arg.cols();
1709 const ArgType& m_arg;
1712template<
typename ArgType>
1714 :
public evaluator<typename ArgType::PlainObject>
1721 : m_result(xpr.
arg())
1723 ::new (
static_cast<Base*
>(
this))
Base(m_result);
1730 ::new (
static_cast<Base*
>(
this))
Base(m_result);
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const
Definition: ArrayCwiseUnaryOps.h:66
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ColXpr col(Index i)
This is the const version of col().
Definition: BlockMethods.h:1097
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RowXpr row(Index i)
This is the const version of row(). */.
Definition: BlockMethods.h:1118
EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE FixedBlockXpr< internal::get_fixed_value< NRowsType >::value, internal::get_fixed_value< NColsType >::value >::Type block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols)
Definition: BlockMethods.h:96
#define EIGEN_PLAIN_ENUM_MAX(a, b)
Definition: Macros.h:1299
#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
Just a side note.
Definition: Macros.h:1274
#define EIGEN_PLAIN_ENUM_MIN(a, b)
Definition: Macros.h:1298
#define eigen_internal_assert(x)
Definition: Macros.h:1053
#define EIGEN_NOEXCEPT
Definition: Macros.h:1428
#define EIGEN_CONSTEXPR
Definition: Macros.h:797
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:1086
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:986
#define eigen_assert(x)
Definition: Macros.h:1047
#define EIGEN_IMPLIES(a, b)
Definition: Macros.h:1325
#define EIGEN_STRONG_INLINE
Definition: Macros.h:927
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C)
Definition: StaticAssert.h:218
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition: StaticAssert.h:127
General-purpose arrays with easy API for coefficient-wise operations.
Definition: Array.h:47
Expression of a mathematical vector or matrix as an array object.
Definition: ArrayWrapper.h:43
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:105
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:84
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:61
Generic expression where a coefficient-wise ternary operator is applied to two expressions.
Definition: CwiseTernaryOp.h:88
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:56
Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector.
Definition: CwiseUnaryView.h:59
Expression of a diagonal/subdiagonal/superdiagonal in a matrix.
Definition: Diagonal.h:65
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:180
Expression of an array as a mathematical vector or matrix.
Definition: ArrayWrapper.h:141
Convenience specialization of Stride to specify only an outer stride See class Map for some examples.
Definition: Stride.h:107
Definition: PlainObjectBase.h:100
internal::traits< Derived >::Scalar Scalar
Definition: PlainObjectBase.h:106
A matrix or vector expression mapping an existing expression.
Definition: Ref.h:283
Expression of the multiple replication of a matrix or vector.
Definition: Replicate.h:63
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:54
Definition: CoreEvaluators.h:1683
dense_xpr_base< EvalToTemp >::type Base
Definition: CoreEvaluators.h:1686
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1703
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:1698
const ArgType & arg() const
Definition: CoreEvaluators.h:1693
const Scalar * data
Definition: CoreEvaluators.h:157
Index m_outerStride
Definition: CoreEvaluators.h:159
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index outerStride() const
Definition: CoreEvaluators.h:156
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE plainobjectbase_evaluator_data(const Scalar *ptr, Index outerStride)
Definition: CoreEvaluators.h:154
Definition: CoreEvaluators.h:136
const Scalar * data
Definition: CoreEvaluators.h:148
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE plainobjectbase_evaluator_data(const Scalar *ptr, Index outerStride)
Definition: CoreEvaluators.h:139
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index outerStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:147
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:135
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:160
type
Definition: core.h:575
@ AlignedMask
Definition: Constants.h:239
@ AlignedMax
Definition: Constants.h:252
@ BothDirections
For Reverse, both rows and columns are reversed; not used for PartialReduxExpr and VectorwiseOp.
Definition: Constants.h:270
@ Horizontal
For Reverse, all rows are reversed; for PartialReduxExpr and VectorwiseOp, act on rows.
Definition: Constants.h:267
@ Vertical
For Reverse, all columns are reversed; for PartialReduxExpr and VectorwiseOp, act on columns.
Definition: Constants.h:264
const unsigned int PacketAccessBit
Short version: means the expression might be vectorized.
Definition: Constants.h:94
const unsigned int LinearAccessBit
Short version: means the expression can be seen as 1D vector.
Definition: Constants.h:130
const unsigned int EvalBeforeNestingBit
means the expression should be evaluated by the calling expression
Definition: Constants.h:70
const unsigned int DirectAccessBit
Means that the underlying array of coefficients can be directly accessed as a plain strided array.
Definition: Constants.h:155
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition: Constants.h:66
std::size_t UIntPtr
Definition: Meta.h:92
EIGEN_STRONG_INLINE Packet8f preverse(const Packet8f &a)
Definition: PacketMath.h:707
Namespace containing all symbols from the Eigen library.
Definition: Core:141
const unsigned int HereditaryBits
Definition: Constants.h:195
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
const int Dynamic
This value means that a positive quantity (e.g., a size) is not known at compile-time,...
Definition: Constants.h:22
Definition: Eigen_Colamd.h:50
The type used to identify a dense storage.
Definition: Constants.h:507
Definition: Constants.h:528
Holds information about the various numeric (i.e.
Definition: NumTraits.h:233
Definition: Constants.h:535
The type used to identify a permutation storage.
Definition: Constants.h:516
Definition: Constants.h:529
The type used to identify a general solver (factored) storage.
Definition: Constants.h:513
Definition: Constants.h:536
The type used to identify a permutation storage.
Definition: Constants.h:519
Definition: Constants.h:542
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:780
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:767
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:773
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: CoreEvaluators.h:736
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:764
Data m_d
Definition: CoreEvaluators.h:808
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:788
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE binary_evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:758
evaluator< Lhs > lhsImpl
Definition: CoreEvaluators.h:804
evaluator< Rhs > rhsImpl
Definition: CoreEvaluators.h:805
BinaryOp op
Definition: CoreEvaluators.h:803
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:800
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const BinaryOp & func() const
Definition: CoreEvaluators.h:802
Definition: CoreEvaluators.h:61
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1090
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE block_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1093
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE block_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1222
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1219
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1218
Definition: CoreEvaluators.h:1031
Definition: XprHelper.h:484
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator()
Definition: CoreEvaluators.h:294
Array< Scalar, Rows, Cols, Options, MaxRows, MaxCols > XprType
Definition: CoreEvaluators.h:291
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &m)
Definition: CoreEvaluators.h:297
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1037
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &block)
Definition: CoreEvaluators.h:1079
block_evaluator< ArgType, BlockRows, BlockCols, InnerPanel > block_evaluator_type
Definition: CoreEvaluators.h:1077
packet_traits< Scalar >::type PacketScalar
Definition: CoreEvaluators.h:1040
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1038
binary_evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > > Base
Definition: CoreEvaluators.h:726
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:729
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: CoreEvaluators.h:725
internal::remove_all< PlainObjectType >::type PlainObjectTypeCleaned
Definition: CoreEvaluators.h:501
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:520
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(IndexType index) const
Definition: CoreEvaluators.h:531
EIGEN_STRONG_INLINE PacketType packet(IndexType index) const
Definition: CoreEvaluators.h:545
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(IndexType row, IndexType col) const
Definition: CoreEvaluators.h:524
const NullaryOp m_functor
Definition: CoreEvaluators.h:551
EIGEN_DEVICE_FUNC evaluator(const XprType &n)
Definition: CoreEvaluators.h:514
CwiseNullaryOp< NullaryOp, PlainObjectType > XprType
Definition: CoreEvaluators.h:500
EIGEN_STRONG_INLINE PacketType packet(IndexType row, IndexType col) const
Definition: CoreEvaluators.h:538
const internal::nullary_wrapper< CoeffReturnType, NullaryOp > m_wrapper
Definition: CoreEvaluators.h:552
CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > XprType
Definition: CoreEvaluators.h:629
EIGEN_DEVICE_FUNC evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:632
ternary_evaluator< CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > > Base
Definition: CoreEvaluators.h:630
const internal::variable_if_dynamicindex< Index, XprType::DiagIndex > m_index
Definition: CoreEvaluators.h:1655
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index)
Definition: CoreEvaluators.h:1642
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1636
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1626
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1648
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1654
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1627
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index) const
Definition: CoreEvaluators.h:1630
Diagonal< ArgType, DiagIndex > XprType
Definition: CoreEvaluators.h:1610
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &diagonal)
Definition: CoreEvaluators.h:1621
EIGEN_DEVICE_FUNC evaluator(const ArgType &arg)
Definition: CoreEvaluators.h:1727
EvalToTemp< ArgType > XprType
Definition: CoreEvaluators.h:1716
EIGEN_DEVICE_FUNC evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:1720
evaluator< PlainObject > Base
Definition: CoreEvaluators.h:1718
ArgType::PlainObject PlainObject
Definition: CoreEvaluators.h:1717
PlainObject m_result
Definition: CoreEvaluators.h:1734
packet_traits< Scalar >::type PacketScalar
Definition: CoreEvaluators.h:983
EIGEN_DEVICE_FUNC evaluator(const XprType &map)
Definition: CoreEvaluators.h:1004
XprType::Scalar Scalar
Definition: CoreEvaluators.h:981
Map< PlainObjectType, MapOptions, StrideType > XprType
Definition: CoreEvaluators.h:980
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &m)
Definition: CoreEvaluators.h:282
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator()
Definition: CoreEvaluators.h:279
Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > XprType
Definition: CoreEvaluators.h:276
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const PlainObjectType &m)
Definition: CoreEvaluators.h:195
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:202
plainobjectbase_evaluator_data< Scalar, OuterStrideAtCompileTime > m_d
Definition: CoreEvaluators.h:269
PlainObjectType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:168
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:233
PlainObjectBase< Derived > PlainObjectType
Definition: CoreEvaluators.h:166
PlainObjectType::Scalar Scalar
Definition: CoreEvaluators.h:167
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:243
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:250
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:211
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:262
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator()
Definition: CoreEvaluators.h:188
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:217
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:226
Ref< PlainObjectType, RefOptions, StrideType > XprType
Definition: CoreEvaluators.h:1015
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &ref)
Definition: CoreEvaluators.h:1023
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const XprType &select)
Definition: CoreEvaluators.h:1251
evaluator< ConditionMatrixType > m_conditionImpl
Definition: CoreEvaluators.h:1280
Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType > XprType
Definition: CoreEvaluators.h:1239
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1271
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1262
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1259
evaluator< ThenMatrixType > m_thenImpl
Definition: CoreEvaluators.h:1281
evaluator< ElseMatrixType > m_elseImpl
Definition: CoreEvaluators.h:1282
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const T &xpr)
Definition: CoreEvaluators.h:104
Definition: CoreEvaluators.h:84
Definition: CoreEvaluators.h:111
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator_base()
Definition: CoreEvaluators.h:121
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ~evaluator_base()
Definition: CoreEvaluators.h:122
@ Alignment
Definition: CoreEvaluators.h:116
traits< ExpressionType > ExpressionTraits
Definition: CoreEvaluators.h:113
Definition: CoreEvaluators.h:71
storage_kind_to_shape< typenametraits< T >::StorageKind >::Shape Shape
Definition: CoreEvaluators.h:74
storage_kind_to_evaluator_kind< typenametraits< T >::StorageKind >::Kind Kind
Definition: CoreEvaluators.h:73
Definition: CoreEvaluators.h:80
Definition: CoreEvaluators.h:1381
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1435
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1442
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1428
ArgType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1393
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator_wrapper_base(const ArgType &arg)
Definition: CoreEvaluators.h:1390
ArgType::Scalar Scalar
Definition: CoreEvaluators.h:1392
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1408
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1414
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1448
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1421
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1402
remove_all< typenameXprType::NestedExpressionType >::type ArgType
Definition: CoreEvaluators.h:1382
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1396
Definition: CoreEvaluators.h:91
unary_evaluator< T > Base
Definition: CoreEvaluators.h:92
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE evaluator(const T &xpr)
Definition: CoreEvaluators.h:94
Definition: NullaryFunctors.h:151
Definition: XprHelper.h:176
Definition: ForwardDeclarations.h:26
Definition: DenseCoeffsBase.h:659
Definition: CoreEvaluators.h:885
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:927
PointerType m_data
Definition: CoreEvaluators.h:971
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:915
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:949
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:909
XprType::Scalar Scalar
Definition: CoreEvaluators.h:888
XprType::PointerType PointerType
Definition: CoreEvaluators.h:887
const internal::variable_if_dynamic< Index, XprType::InnerStrideAtCompileTime > m_innerStride
Definition: CoreEvaluators.h:972
@ IsRowMajor
Definition: CoreEvaluators.h:892
@ CoeffReadCost
Definition: CoreEvaluators.h:894
@ ColsAtCompileTime
Definition: CoreEvaluators.h:893
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:921
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:942
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rowStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:963
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:889
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index colStride() const EIGEN_NOEXCEPT
Definition: CoreEvaluators.h:967
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE mapbase_evaluator(const XprType &map)
Definition: CoreEvaluators.h:898
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:957
const internal::variable_if_dynamic< Index, XprType::OuterStrideAtCompileTime > m_outerStride
Definition: CoreEvaluators.h:973
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:934
Derived XprType
Definition: CoreEvaluators.h:886
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j=0) const
Definition: CoreEvaluators.h:409
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j=0) const
Definition: CoreEvaluators.h:410
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:430
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:424
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:420
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:432
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType=0, IndexType=0) const
Definition: CoreEvaluators.h:401
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType=0, IndexType=0) const
Definition: CoreEvaluators.h:402
Definition: CoreEvaluators.h:387
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:394
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:393
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i, IndexType j) const
Definition: CoreEvaluators.h:389
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp &op, IndexType i) const
Definition: CoreEvaluators.h:391
Definition: DenseCoeffsBase.h:671
T type
Definition: GenericPacketMath.h:108
T type
Definition: Meta.h:126
Definition: CoreEvaluators.h:23
IndexBased Kind
Definition: CoreEvaluators.h:24
DenseShape Shape
Definition: CoreEvaluators.h:31
PermutationShape Shape
Definition: CoreEvaluators.h:33
SolverShape Shape
Definition: CoreEvaluators.h:32
TranspositionsShape Shape
Definition: CoreEvaluators.h:34
Definition: CoreEvaluators.h:29
evaluator< Arg1 > arg1Impl
Definition: CoreEvaluators.h:710
evaluator< Arg2 > arg2Impl
Definition: CoreEvaluators.h:711
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:706
TernaryOp op
Definition: CoreEvaluators.h:709
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TernaryOp & func() const
Definition: CoreEvaluators.h:708
evaluator< Arg3 > arg3Impl
Definition: CoreEvaluators.h:712
CwiseTernaryOp< TernaryOp, Arg1, Arg2, Arg3 > XprType
Definition: CoreEvaluators.h:639
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:694
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:685
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:669
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:678
Data m_d
Definition: CoreEvaluators.h:715
EIGEN_DEVICE_FUNC ternary_evaluator(const XprType &xpr)
Definition: CoreEvaluators.h:663
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:672
Definition: CoreEvaluators.h:55
Definition: ForwardDeclarations.h:17
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &wrapper)
Definition: CoreEvaluators.h:1470
ArrayWrapper< TArgType > XprType
Definition: CoreEvaluators.h:1467
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &block)
Definition: CoreEvaluators.h:1105
Block< ArgType, BlockRows, BlockCols, InnerPanel > XprType
Definition: CoreEvaluators.h:1102
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1133
const variable_if_dynamic< Index, ForwardLinearAccess ? Dynamic :0 > m_linear_offset
Definition: CoreEvaluators.h:1207
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1204
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1171
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & linear_coeffRef_impl(Index index, internal::false_type)
Definition: CoreEvaluators.h:1199
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType linear_coeff_impl(Index index, internal::true_type) const
Definition: CoreEvaluators.h:1183
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1164
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1121
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1153
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1112
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType linear_coeff_impl(Index index, internal::false_type) const
Definition: CoreEvaluators.h:1188
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1146
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & linear_coeffRef_impl(Index index, internal::true_type)
Definition: CoreEvaluators.h:1194
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1113
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1139
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1127
evaluator< ArgType > argImpl
Definition: CoreEvaluators.h:616
UnaryOp op
Definition: CoreEvaluators.h:615
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp & func() const
Definition: CoreEvaluators.h:614
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:612
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:587
CwiseUnaryOp< UnaryOp, ArgType > XprType
Definition: CoreEvaluators.h:561
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:594
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:578
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &op)
Definition: CoreEvaluators.h:572
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:601
Data m_d
Definition: CoreEvaluators.h:619
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:581
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:855
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:849
Data m_d
Definition: CoreEvaluators.h:873
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:837
XprType::Scalar Scalar
Definition: CoreEvaluators.h:833
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:843
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:834
CwiseUnaryView< UnaryOp, ArgType > XprType
Definition: CoreEvaluators.h:817
EIGEN_DEVICE_FUNC unary_evaluator(const XprType &op)
Definition: CoreEvaluators.h:827
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Data(const XprType &xpr)
Definition: CoreEvaluators.h:866
UnaryOp op
Definition: CoreEvaluators.h:869
evaluator< ArgType > argImpl
Definition: CoreEvaluators.h:870
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp & func() const
Definition: CoreEvaluators.h:868
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &wrapper)
Definition: CoreEvaluators.h:1458
MatrixWrapper< TArgType > XprType
Definition: CoreEvaluators.h:1455
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1317
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &replicate)
Definition: CoreEvaluators.h:1309
const ArgTypeNested m_arg
Definition: CoreEvaluators.h:1367
Replicate< ArgType, RowFactor, ColFactor > XprType
Definition: CoreEvaluators.h:1292
const variable_if_dynamic< Index, ArgType::ColsAtCompileTime > m_cols
Definition: CoreEvaluators.h:1370
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1357
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1331
internal::nested_eval< ArgType, Factor >::type ArgTypeNested
Definition: CoreEvaluators.h:1297
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1293
evaluator< ArgTypeNestedCleaned > m_argImpl
Definition: CoreEvaluators.h:1368
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1343
const variable_if_dynamic< Index, ArgType::RowsAtCompileTime > m_rows
Definition: CoreEvaluators.h:1369
internal::remove_all< ArgTypeNested >::type ArgTypeNestedCleaned
Definition: CoreEvaluators.h:1298
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:1540
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:1527
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:1595
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:1570
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &reverse)
Definition: CoreEvaluators.h:1513
const variable_if_dynamic< Index, ReverseRow ? ArgType::RowsAtCompileTime :1 > m_rows
Definition: CoreEvaluators.h:1599
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:1547
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:1587
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:1562
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:1487
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:1533
Reverse< ArgType, Direction > XprType
Definition: CoreEvaluators.h:1485
const variable_if_dynamic< Index, ReverseCol ? ArgType::ColsAtCompileTime :1 > m_cols
Definition: CoreEvaluators.h:1600
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:1520
XprType::Scalar Scalar
Definition: CoreEvaluators.h:1486
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
Definition: CoreEvaluators.h:323
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar & coeffRef(Index row, Index col)
Definition: CoreEvaluators.h:335
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE XprType::Scalar & coeffRef(Index index)
Definition: CoreEvaluators.h:341
XprType::CoeffReturnType CoeffReturnType
Definition: CoreEvaluators.h:320
evaluator< ArgType > m_argImpl
Definition: CoreEvaluators.h:375
EIGEN_STRONG_INLINE void writePacket(Index index, const PacketType &x)
Definition: CoreEvaluators.h:369
EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
Definition: CoreEvaluators.h:348
EIGEN_STRONG_INLINE void writePacket(Index row, Index col, const PacketType &x)
Definition: CoreEvaluators.h:362
XprType::Scalar Scalar
Definition: CoreEvaluators.h:319
Transpose< ArgType > XprType
Definition: CoreEvaluators.h:308
EIGEN_STRONG_INLINE PacketType packet(Index index) const
Definition: CoreEvaluators.h:355
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE unary_evaluator(const XprType &t)
Definition: CoreEvaluators.h:317
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: CoreEvaluators.h:329
Definition: CoreEvaluators.h:65
Definition: GenericPacketMath.h:133
Definition: format.h:1552