10#ifndef EIGEN_SKYLINEPRODUCT_H
11#define EIGEN_SKYLINEPRODUCT_H
15template<
typename Lhs,
typename Rhs,
int ProductMode>
23template<
typename LhsNested,
typename RhsNested,
int ProductMode>
28 typedef typename _LhsNested::Scalar
Scalar;
31 LhsCoeffReadCost = _LhsNested::CoeffReadCost,
32 RhsCoeffReadCost = _RhsNested::CoeffReadCost,
33 LhsFlags = _LhsNested::Flags,
34 RhsFlags = _RhsNested::Flags,
36 RowsAtCompileTime = _LhsNested::RowsAtCompileTime,
37 ColsAtCompileTime = _RhsNested::ColsAtCompileTime,
40 MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
41 MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
61template<
typename LhsNested,
typename RhsNested,
int ProductMode>
63public traits<SkylineProduct<LhsNested, RhsNested, ProductMode> >::Base {
75 template<
typename Lhs,
typename Rhs>
77 : m_lhs(lhs), m_rhs(rhs) {
82 || _RhsNested::RowsAtCompileTime ==
Dynamic
83 ||
int(_LhsNested::ColsAtCompileTime) ==
int(_RhsNested::RowsAtCompileTime),
84 AreVectors = _LhsNested::IsVectorAtCompileTime && _RhsNested::IsVectorAtCompileTime,
91 INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
93 INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
121template<
typename Lhs,
typename Rhs,
typename Dest>
145 typename _Lhs::InnerLowerIterator
lIt(lhs,
row);
165 typename _Lhs::InnerUpperIterator
uIt(lhs,
lhscol);
184template<
typename Lhs,
typename Rhs,
typename Dest>
209 typename _Lhs::InnerUpperIterator
uIt(lhs,
row);
230 typename _Lhs::InnerLowerIterator
lIt(lhs,
lhscol);
248template<
typename Lhs,
typename Rhs,
typename ResultType,
249 int LhsStorageOrder = traits<Lhs>::Flags&
RowMajorBit>
252template<
typename Lhs,
typename Rhs,
typename ResultType>
256 static void run(
const Lhs& lhs,
const Rhs& rhs, ResultType &
res) {
261template<
typename Lhs,
typename Rhs,
typename ResultType>
265 static void run(
const Lhs& lhs,
const Rhs& rhs, ResultType &
res) {
285template<
typename Derived>
286template<
typename OtherDerived >
#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
Definition Macros.h:1264
#define EIGEN_DONT_INLINE
Definition Macros.h:940
#define eigen_assert(x)
Definition Macros.h:1037
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
#define EIGEN_SIZE_MIN_PREFER_FIXED(a, b)
Definition Macros.h:1302
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition PartialRedux_count.cpp:3
#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0, TYPE1)
Definition StaticAssert.h:174
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:127
SCALAR Scalar
Definition bench_gemm.cpp:46
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
const SkylineProductReturnType< Derived, OtherDerived >::Type operator*(const MatrixBase< OtherDerived > &other) const
Definition SkylineUtil.h:22
Definition SkylineProduct.h:63
EIGEN_STRONG_INLINE const _RhsNested & rhs() const
Definition SkylineProduct.h:109
EIGEN_STRONG_INLINE Index rows() const
Definition SkylineProduct.h:97
RhsNested m_rhs
Definition SkylineProduct.h:115
EIGEN_STRONG_INLINE Index cols() const
Definition SkylineProduct.h:101
EIGEN_STRONG_INLINE const _LhsNested & lhs() const
Definition SkylineProduct.h:105
EIGEN_STRONG_INLINE SkylineProduct(const Lhs &lhs, const Rhs &rhs)
Definition SkylineProduct.h:76
LhsNested m_lhs
Definition SkylineProduct.h:114
Definition TensorRef.h:81
Definition XprHelper.h:110
@ ColMajor
Definition Constants.h:319
@ RowMajor
Definition Constants.h:321
EIGEN_DEPRECATED const unsigned int EvalBeforeAssigningBit
Definition Constants.h:76
const unsigned int EvalBeforeNestingBit
Definition Constants.h:70
const unsigned int RowMajorBit
Definition Constants.h:66
EIGEN_DONT_INLINE void skyline_row_major_time_dense_product(const Lhs &lhs, const Rhs &rhs, Dest &dst)
Definition SkylineProduct.h:122
@ Lhs
Definition TensorContractionMapper.h:19
@ Rhs
Definition TensorContractionMapper.h:18
EIGEN_DONT_INLINE void skyline_col_major_time_dense_product(const Lhs &lhs, const Rhs &rhs, Dest &dst)
Definition SkylineProduct.h:185
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
@ SkylineTimeSkylineProduct
Definition SkylineUtil.h:23
const unsigned int HereditaryBits
Definition Constants.h:195
const int HugeCost
Definition Constants.h:44
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
const unsigned int SkylineBit
Definition SkylineUtil.h:21
const int Dynamic
Definition Constants.h:22
Definition BandTriangularSolver.h:13
Definition SkylineProduct.h:16
SkylineProduct< LhsNested, RhsNested, ProductMode > Type
Definition SkylineProduct.h:20
const internal::nested_eval< Rhs, Lhs::RowsAtCompileTime >::type RhsNested
Definition SkylineProduct.h:18
const internal::nested_eval< Lhs, Rhs::RowsAtCompileTime >::type LhsNested
Definition SkylineProduct.h:17
traits< typenameremove_all< Lhs >::type >::Scalar Scalar
Definition SkylineProduct.h:263
static void run(const Lhs &lhs, const Rhs &rhs, ResultType &res)
Definition SkylineProduct.h:265
static void run(const Lhs &lhs, const Rhs &rhs, ResultType &res)
Definition SkylineProduct.h:256
traits< typenameremove_all< Lhs >::type >::Scalar Scalar
Definition SkylineProduct.h:254
Definition SkylineProduct.h:250
internal::conditional< ResultIsSkyline, SkylineMatrixBase< SkylineProduct< LhsNested, RhsNested, ProductMode > >, MatrixBase< SkylineProduct< LhsNested, RhsNested, ProductMode > > >::type Base
Definition SkylineProduct.h:57
internal::remove_all< RhsNested >::type _RhsNested
Definition SkylineProduct.h:27
internal::remove_all< LhsNested >::type _LhsNested
Definition SkylineProduct.h:26
_LhsNested::Scalar Scalar
Definition SkylineProduct.h:28
Definition ForwardDeclarations.h:17