add efficient matrix product specializations for Homogeneous

This commit is contained in:
Gael Guennebaud
2009-03-05 16:40:56 +00:00
parent 31332fca0b
commit fa9f7708d4
4 changed files with 104 additions and 10 deletions

View File

@@ -281,16 +281,16 @@ template<typename ExpressionType, int Direction> class PartialRedux
return Reverse<ExpressionType, Direction>( _expression() );
}
template<int Factor>
const Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
replicate(int factor = Factor) const;
/////////// Geometry module ///////////
const Homogeneous<ExpressionType,Direction> homogeneous() const;
const Replicate<ExpressionType,Direction==Vertical?Dynamic:1,Direction==Horizontal?Dynamic:1>
replicate(int factor) const;
template<int Factor>
const Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
replicate() const;
typedef typename ExpressionType::PlainMatrixType CrossReturnType;
template<typename OtherDerived>

View File

@@ -151,9 +151,10 @@ PartialRedux<ExpressionType,Direction>::replicate(int factor) const
template<typename ExpressionType, int Direction>
template<int Factor>
const Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
PartialRedux<ExpressionType,Direction>::replicate() const
PartialRedux<ExpressionType,Direction>::replicate(int factor) const
{
return _expression();
return Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
(_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
}
#endif // EIGEN_REPLICATE_H