Pseudo expression providing partial reduction operations. More...
#include <VectorwiseOp.h>
Classes | |
struct | ExtendedType |
struct | ReduxReturnType |
struct | ReturnType |
Public Types | |
enum | { IsVertical = (Direction==Vertical) ? 1 : 0, IsHorizontal = (Direction==Horizontal) ? 1 : 0 } |
enum | { HNormalized_Size, HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1 } |
typedef ExpressionType::PlainObject | CrossReturnType |
typedef internal::conditional < internal::must_nest_by_value < ExpressionType >::ret, ExpressionType, ExpressionType & > ::type | ExpressionTypeNested |
typedef internal::remove_all < ExpressionTypeNested >::type | ExpressionTypeNestedCleaned |
typedef Block< const ExpressionType, Direction==Vertical?int(HNormalized_SizeMinusOne):int(internal::traits < ExpressionType > ::RowsAtCompileTime), Direction==Horizontal?int(HNormalized_SizeMinusOne):int(internal::traits < ExpressionType > ::ColsAtCompileTime)> | HNormalized_Block |
typedef Block< const ExpressionType, Direction==Vertical?1:int(internal::traits < ExpressionType > ::RowsAtCompileTime), Direction==Horizontal?1:int(internal::traits < ExpressionType > ::ColsAtCompileTime)> | HNormalized_Factors |
typedef CwiseBinaryOp < internal::scalar_quotient_op < typename internal::traits < ExpressionType >::Scalar > , const HNormalized_Block, const Replicate < HNormalized_Factors, Direction==Vertical?HNormalized_SizeMinusOne:1, Direction==Horizontal?HNormalized_SizeMinusOne:1 > > | HNormalizedReturnType |
typedef ExpressionType::Index | Index |
typedef ExpressionType::RealScalar | RealScalar |
typedef Replicate < ExpressionType, Direction==Vertical?Dynamic:1, Direction==Horizontal?Dynamic:1 > | ReplicateReturnType |
typedef ExpressionType::Scalar | Scalar |
Public Member Functions | |
const ExpressionType & | _expression () const |
const ReturnType < internal::member_all >::Type | all () const |
const ReturnType < internal::member_any >::Type | any () const |
const ReturnType < internal::member_blueNorm, RealScalar >::Type | blueNorm () const |
const PartialReduxExpr < ExpressionType, internal::member_count< Index > , Direction > | count () const |
template<typename OtherDerived > | |
const CrossReturnType | cross (const MatrixBase< OtherDerived > &other) const |
const HNormalizedReturnType | hnormalized () const |
const ReturnType < internal::member_hypotNorm, RealScalar >::Type | hypotNorm () const |
const ReturnType < internal::member_maxCoeff > ::Type | maxCoeff () const |
const ReturnType < internal::member_mean > ::Type | mean () const |
const ReturnType < internal::member_minCoeff > ::Type | minCoeff () const |
const ReturnType < internal::member_norm, RealScalar >::Type | norm () const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE CwiseBinaryOp < internal::scalar_sum_op < Scalar >, const ExpressionTypeNestedCleaned, const typename ExtendedType < OtherDerived >::Type > | operator+ (const DenseBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
ExpressionType & | operator+= (const DenseBase< OtherDerived > &other) |
template<typename OtherDerived > | |
CwiseBinaryOp < internal::scalar_difference_op < Scalar >, const ExpressionTypeNestedCleaned, const typename ExtendedType < OtherDerived >::Type > | operator- (const DenseBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
ExpressionType & | operator-= (const DenseBase< OtherDerived > &other) |
template<typename OtherDerived > | |
ExpressionType & | operator= (const DenseBase< OtherDerived > &other) |
const ReturnType < internal::member_prod > ::Type | prod () const |
template<typename BinaryOp > | |
const ReduxReturnType < BinaryOp >::Type | redux (const BinaryOp &func=BinaryOp()) const |
const ReplicateReturnType | replicate (Index factor) const |
template<int Factor> | |
const Replicate < ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)> | replicate (Index factor=Factor) const |
const Reverse< ExpressionType, Direction > | reverse () const |
const ReturnType < internal::member_squaredNorm, RealScalar >::Type | squaredNorm () const |
const ReturnType < internal::member_stableNorm, RealScalar >::Type | stableNorm () const |
const ReturnType < internal::member_sum >::Type | sum () const |
VectorwiseOp (ExpressionType &matrix) | |
Protected Types | |
typedef internal::conditional < Direction==Vertical, typename ExpressionType::ColXpr, typename ExpressionType::RowXpr >::type | SubVector |
Protected Member Functions | |
template<typename OtherDerived > | |
ExtendedType< OtherDerived >::Type | extendedTo (const DenseBase< OtherDerived > &other) const |
SubVector | subVector (Index i) |
Index | subVectors () const |
Protected Attributes | |
ExpressionTypeNested | m_matrix |
Pseudo expression providing partial reduction operations.
ExpressionType | the type of the object on which to do partial reductions |
Direction | indicates the direction of the redux (Vertical or Horizontal) |
This class represents a pseudo expression with partial reduction features. It is the return type of DenseBase::colwise() and DenseBase::rowwise() and most of the time this is the only way it is used.
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the sum of each column:" << endl << m.colwise().sum() << endl; cout << "Here is the maximum absolute value of each column:" << endl << m.cwiseAbs().colwise().maxCoeff() << endl;
Output:
Definition at line 178 of file VectorwiseOp.h.
typedef ExpressionType::PlainObject VectorwiseOp< ExpressionType, Direction >::CrossReturnType |
Definition at line 475 of file VectorwiseOp.h.
typedef internal::conditional<internal::must_nest_by_value<ExpressionType>::ret, ExpressionType, ExpressionType&>::type VectorwiseOp< ExpressionType, Direction >::ExpressionTypeNested |
Definition at line 186 of file VectorwiseOp.h.
typedef internal::remove_all<ExpressionTypeNested>::type VectorwiseOp< ExpressionType, Direction >::ExpressionTypeNestedCleaned |
Definition at line 187 of file VectorwiseOp.h.
typedef Block<const ExpressionType, Direction==Vertical ? int(HNormalized_SizeMinusOne) : int(internal::traits<ExpressionType>::RowsAtCompileTime), Direction==Horizontal ? int(HNormalized_SizeMinusOne) : int(internal::traits<ExpressionType>::ColsAtCompileTime)> VectorwiseOp< ExpressionType, Direction >::HNormalized_Block |
Definition at line 489 of file VectorwiseOp.h.
typedef Block<const ExpressionType, Direction==Vertical ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime), Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)> VectorwiseOp< ExpressionType, Direction >::HNormalized_Factors |
Definition at line 493 of file VectorwiseOp.h.
typedef CwiseBinaryOp<internal::scalar_quotient_op<typename internal::traits<ExpressionType>::Scalar>, const HNormalized_Block, const Replicate<HNormalized_Factors, Direction==Vertical ? HNormalized_SizeMinusOne : 1, Direction==Horizontal ? HNormalized_SizeMinusOne : 1> > VectorwiseOp< ExpressionType, Direction >::HNormalizedReturnType |
Definition at line 499 of file VectorwiseOp.h.
typedef ExpressionType::Index VectorwiseOp< ExpressionType, Direction >::Index |
Definition at line 184 of file VectorwiseOp.h.
typedef ExpressionType::RealScalar VectorwiseOp< ExpressionType, Direction >::RealScalar |
Definition at line 183 of file VectorwiseOp.h.
typedef Replicate<ExpressionType,Direction==Vertical?Dynamic:1,Direction==Horizontal?Dynamic:1> VectorwiseOp< ExpressionType, Direction >::ReplicateReturnType |
Definition at line 395 of file VectorwiseOp.h.
typedef ExpressionType::Scalar VectorwiseOp< ExpressionType, Direction >::Scalar |
Definition at line 182 of file VectorwiseOp.h.
typedef internal::conditional<Direction==Vertical, typename ExpressionType::ColXpr, typename ExpressionType::RowXpr>::type VectorwiseOp< ExpressionType, Direction >::SubVector [protected] |
Definition at line 217 of file VectorwiseOp.h.
anonymous enum |
Definition at line 206 of file VectorwiseOp.h.
anonymous enum |
Definition at line 479 of file VectorwiseOp.h.
VectorwiseOp< ExpressionType, Direction >::VectorwiseOp | ( | ExpressionType & | matrix | ) | [inline] |
Definition at line 249 of file VectorwiseOp.h.
const ExpressionType& VectorwiseOp< ExpressionType, Direction >::_expression | ( | ) | const [inline] |
Definition at line 252 of file VectorwiseOp.h.
const ReturnType<internal::member_all>::Type VectorwiseOp< ExpressionType, Direction >::all | ( | void | ) | const [inline] |
true
.Definition at line 354 of file VectorwiseOp.h.
const ReturnType<internal::member_any>::Type VectorwiseOp< ExpressionType, Direction >::any | ( | void | ) | const [inline] |
true
.Definition at line 361 of file VectorwiseOp.h.
const ReturnType<internal::member_blueNorm,RealScalar>::Type VectorwiseOp< ExpressionType, Direction >::blueNorm | ( | ) | const [inline] |
Definition at line 312 of file VectorwiseOp.h.
const PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> VectorwiseOp< ExpressionType, Direction >::count | ( | ) | const [inline] |
true
coefficients of each respective column (or row).Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the count of elements larger or equal than 0.5 of each row:" << endl << (m.array() >= 0.5).rowwise().count() << endl;
Output:
Definition at line 371 of file VectorwiseOp.h.
const VectorwiseOp< ExpressionType, Direction >::CrossReturnType VectorwiseOp< ExpressionType, Direction >::cross | ( | const MatrixBase< OtherDerived > & | other | ) | const |
The referenced matrix must have one dimension equal to 3. The result matrix has the same dimensions than the referenced one.
Definition at line 114 of file OrthoMethods.h.
ExtendedType<OtherDerived>::Type VectorwiseOp< ExpressionType, Direction >::extendedTo | ( | const DenseBase< OtherDerived > & | other | ) | const [inline, protected] |
Definition at line 238 of file VectorwiseOp.h.
const VectorwiseOp< ExpressionType, Direction >::HNormalizedReturnType VectorwiseOp< ExpressionType, Direction >::hnormalized | ( | ) | const [inline] |
*this
Example:
Output:
Definition at line 189 of file Homogeneous.h.
const ReturnType<internal::member_hypotNorm,RealScalar>::Type VectorwiseOp< ExpressionType, Direction >::hypotNorm | ( | ) | const [inline] |
Definition at line 330 of file VectorwiseOp.h.
const ReturnType<internal::member_maxCoeff>::Type VectorwiseOp< ExpressionType, Direction >::maxCoeff | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the maximum of each column:" << endl << m.colwise().maxCoeff() << endl;
Output:
Definition at line 283 of file VectorwiseOp.h.
const ReturnType<internal::member_mean>::Type VectorwiseOp< ExpressionType, Direction >::mean | ( | ) | const [inline] |
Definition at line 347 of file VectorwiseOp.h.
const ReturnType<internal::member_minCoeff>::Type VectorwiseOp< ExpressionType, Direction >::minCoeff | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the minimum of each column:" << endl << m.colwise().minCoeff() << endl;
Output:
Definition at line 273 of file VectorwiseOp.h.
const ReturnType<internal::member_norm,RealScalar>::Type VectorwiseOp< ExpressionType, Direction >::norm | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the norm of each column:" << endl << m.colwise().norm() << endl;
Output:
Definition at line 303 of file VectorwiseOp.h.
EIGEN_STRONG_INLINE CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> VectorwiseOp< ExpressionType, Direction >::operator+ | ( | const DenseBase< OtherDerived > & | other | ) | const [inline] |
Returns the expression of the sum of the vector other to each subvector of *this
Definition at line 452 of file VectorwiseOp.h.
ExpressionType& VectorwiseOp< ExpressionType, Direction >::operator+= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Adds the vector other to each subvector of *this
Definition at line 429 of file VectorwiseOp.h.
CwiseBinaryOp<internal::scalar_difference_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> VectorwiseOp< ExpressionType, Direction >::operator- | ( | const DenseBase< OtherDerived > & | other | ) | const [inline] |
Returns the expression of the difference between each subvector of *this
and the vector other
Definition at line 463 of file VectorwiseOp.h.
ExpressionType& VectorwiseOp< ExpressionType, Direction >::operator-= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Substracts the vector other to each subvector of *this
Definition at line 439 of file VectorwiseOp.h.
ExpressionType& VectorwiseOp< ExpressionType, Direction >::operator= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Copies the vector other to each subvector of *this
Definition at line 418 of file VectorwiseOp.h.
const ReturnType<internal::member_prod>::Type VectorwiseOp< ExpressionType, Direction >::prod | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the product of each row:" << endl << m.rowwise().prod() << endl;
Output:
Definition at line 381 of file VectorwiseOp.h.
const ReduxReturnType<BinaryOp>::Type VectorwiseOp< ExpressionType, Direction >::redux | ( | const BinaryOp & | func = BinaryOp() | ) | const [inline] |
*this
reduxed by func The template parameter BinaryOp is the type of the functor of the custom redux operator. Note that func must be an associative operator.
Definition at line 263 of file VectorwiseOp.h.
const VectorwiseOp< ExpressionType, Direction >::ReplicateReturnType VectorwiseOp< ExpressionType, Direction >::replicate | ( | Index | factor | ) | const |
*this
Example:
Vector3i v = Vector3i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "v.rowwise().replicate(5) = ..." << endl; cout << v.rowwise().replicate(5) << endl;
Output:
Definition at line 173 of file Replicate.h.
const Replicate<ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)> VectorwiseOp< ExpressionType, Direction >::replicate | ( | Index | factor = Factor | ) | const [inline] |
*this
Example:
MatrixXi m = MatrixXi::Random(2,3); cout << "Here is the matrix m:" << endl << m << endl; cout << "m.colwise().replicate<3>() = ..." << endl; cout << m.colwise().replicate<3>() << endl;
Output:
Definition at line 408 of file VectorwiseOp.h.
const Reverse<ExpressionType, Direction> VectorwiseOp< ExpressionType, Direction >::reverse | ( | ) | const [inline] |
Example:
MatrixXi m = MatrixXi::Random(3,4); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the rowwise reverse of m:" << endl << m.rowwise().reverse() << endl; cout << "Here is the colwise reverse of m:" << endl << m.colwise().reverse() << endl; cout << "Here is the coefficient (1,0) in the rowise reverse of m:" << endl << m.rowwise().reverse()(1,0) << endl; cout << "Let us overwrite this coefficient with the value 4." << endl; //m.colwise().reverse()(1,0) = 4; cout << "Now the matrix m is:" << endl << m << endl;
Output:
Definition at line 392 of file VectorwiseOp.h.
const ReturnType<internal::member_squaredNorm,RealScalar>::Type VectorwiseOp< ExpressionType, Direction >::squaredNorm | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the square norm of each row:" << endl << m.rowwise().squaredNorm() << endl;
Output:
Definition at line 293 of file VectorwiseOp.h.
const ReturnType<internal::member_stableNorm,RealScalar>::Type VectorwiseOp< ExpressionType, Direction >::stableNorm | ( | ) | const [inline] |
Definition at line 321 of file VectorwiseOp.h.
SubVector VectorwiseOp< ExpressionType, Direction >::subVector | ( | Index | i | ) | [inline, protected] |
Definition at line 218 of file VectorwiseOp.h.
Index VectorwiseOp< ExpressionType, Direction >::subVectors | ( | ) | const [inline, protected] |
Definition at line 225 of file VectorwiseOp.h.
const ReturnType<internal::member_sum>::Type VectorwiseOp< ExpressionType, Direction >::sum | ( | ) | const [inline] |
Example:
Matrix3d m = Matrix3d::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the sum of each row:" << endl << m.rowwise().sum() << endl;
Output:
Definition at line 340 of file VectorwiseOp.h.
ExpressionTypeNested VectorwiseOp< ExpressionType, Direction >::m_matrix [protected] |
Definition at line 504 of file VectorwiseOp.h.