10 #ifndef EIGEN_PRODUCT_H    11 #define EIGEN_PRODUCT_H    15 template<
typename Lhs, 
typename Rhs, 
int Option, 
typename StorageKind> 
class ProductImpl;
    19 template<
typename Lhs, 
typename Rhs, 
int Option>
    31                                                 typename RhsTraits::StorageKind,
    37     RowsAtCompileTime    = LhsTraits::RowsAtCompileTime,
    38     ColsAtCompileTime    = RhsTraits::ColsAtCompileTime,
    39     MaxRowsAtCompileTime = LhsTraits::MaxRowsAtCompileTime,
    40     MaxColsAtCompileTime = RhsTraits::MaxColsAtCompileTime,
    46     Flags = (MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1) ? 
RowMajorBit    47           : (MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1) ? 0
    50           : NoPreferredStorageOrderBit
    70 template<
typename _Lhs, 
typename _Rhs, 
int Option>
    72                                    typename internal::product_promote_storage_type<typename internal::traits<_Lhs>::StorageKind,
    73                                                                                    typename internal::traits<_Rhs>::StorageKind,
    74                                                                                    internal::product_type<_Lhs,_Rhs>::ret>::ret>
    93     EIGEN_DEVICE_FUNC 
Product(const Lhs& lhs, const Rhs& rhs) : m_lhs(lhs), m_rhs(rhs)
    96         && 
"invalid matrix product"    97         && 
"if you wanted a coeff-wise or a dot product use the respective explicit functions");
   100     EIGEN_DEVICE_FUNC 
inline Index rows()
 const { 
return m_lhs.rows(); }
   101     EIGEN_DEVICE_FUNC 
inline Index cols()
 const { 
return m_rhs.cols(); }
   114 template<typename Lhs, typename Rhs, int Option, int ProductTag = internal::product_type<Lhs,Rhs>::ret>
   120 template<
typename Lhs, 
typename Rhs, 
int Option>
   130   operator const Scalar()
 const   139 template<
typename Lhs, 
typename Rhs, 
int Option, 
typename StorageKind>
   146 template<
typename Lhs, 
typename Rhs, 
int Option>
   158       IsOneByOne = (RowsAtCompileTime == 1 || RowsAtCompileTime == 
Dynamic) && 
   159                    (ColsAtCompileTime == 1 || ColsAtCompileTime == 
Dynamic),
   186 #endif // EIGEN_PRODUCT_H #define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
Expression of the product of two arbitrary matrices or vectors. 
promote_index_type< typename LhsTraits::StorageIndex, typename RhsTraits::StorageIndex >::type StorageIndex
EIGEN_DEVICE_FUNC Scalar coeff(Index row, Index col) const
EIGEN_DEVICE_FUNC Scalar coeff(Index i) const
Product< Lhs, Rhs, Option > Derived
EIGEN_DEVICE_FUNC const LhsNestedCleaned & lhs() const
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col(). */. 
remove_all< Rhs >::type RhsCleaned
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
const unsigned int RowMajorBit
#define EIGEN_SIZE_MIN_PREFER_FIXED(a, b)
internal::remove_all< RhsNested >::type RhsNestedCleaned
remove_all< Lhs >::type LhsCleaned
EIGEN_DEVICE_FUNC Index rows() const
traits< RhsCleaned > RhsTraits
ScalarBinaryOpTraits< typename traits< LhsCleaned >::Scalar, typename traits< RhsCleaned >::Scalar >::ReturnType Scalar
internal::generic_xpr_base< Product< Lhs, Rhs, Option >, MatrixXpr, StorageKind >::type Base
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
traits< LhsCleaned > LhsTraits
internal::dense_xpr_base< ProductXpr >::type Base
ProductImpl< Lhs, Rhs, Option, typename internal::product_promote_storage_type< typename internal::traits< Lhs >::StorageKind, typename internal::traits< Rhs >::StorageKind, internal::product_type< Lhs, Rhs >::ret >::ret >::Base Base
EIGEN_DEVICE_FUNC Index cols() const
Product< Lhs, Rhs, Option > ProductXpr
EIGEN_DEVICE_FUNC RowXpr row(Index i)
This is the const version of row(). */. 
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
internal::dense_product_base< Lhs, Rhs, Option > Base
internal::remove_all< LhsNested >::type LhsNestedCleaned
EIGEN_DEVICE_FUNC const RhsNestedCleaned & rhs() const
const unsigned int NoPreferredStorageOrderBit
product_promote_storage_type< typename LhsTraits::StorageKind, typename RhsTraits::StorageKind, internal::product_type< Lhs, Rhs >::ret >::ret StorageKind