Pseudo expression providing partial reduction operations. More...
Public Member Functions | |
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 |
Homogeneous< ExpressionType, Direction > | homogeneous () 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 > | |
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 |
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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the sum of each column: 1.04 0.815 -0.238 Here is the maximum absolute value of each column: 0.68 0.823 0.536
const ReturnType<internal::member_all>::Type all | ( | void | ) | const [inline] |
true
.const ReturnType<internal::member_any>::Type any | ( | void | ) | const [inline] |
true
.const ReturnType<internal::member_blueNorm,RealScalar>::Type blueNorm | ( | ) | const [inline] |
const PartialReduxExpr<ExpressionType, internal::member_count<Index>, 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the count of elements larger or equal than 0.5 of each row: 2 2 1
const VectorwiseOp< ExpressionType, Direction >::CrossReturnType 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.
This is defined in the Geometry module.
#include <Eigen/Geometry>
const VectorwiseOp< ExpressionType, Direction >::HNormalizedReturnType hnormalized | ( | ) | const [inline] |
This is defined in the Geometry module.
#include <Eigen/Geometry>
*this
Example:
Output:
Homogeneous< ExpressionType, Direction > homogeneous | ( | ) | const [inline] |
This is defined in the Geometry module.
#include <Eigen/Geometry>
Example:
Output:
const ReturnType<internal::member_hypotNorm,RealScalar>::Type hypotNorm | ( | ) | const [inline] |
const ReturnType<internal::member_maxCoeff>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the maximum of each column: 0.68 0.823 0.536
const ReturnType<internal::member_mean>::Type mean | ( | ) | const [inline] |
const ReturnType<internal::member_minCoeff>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the minimum of each column: -0.211 -0.605 -0.444
const ReturnType<internal::member_norm,RealScalar>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the norm of each column: 0.91 1.18 0.771
CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> operator+ | ( | const DenseBase< OtherDerived > & | other | ) | const [inline] |
Returns the expression of the sum of the vector other to each subvector of *this
ExpressionType& operator+= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Adds the vector other to each subvector of *this
CwiseBinaryOp<internal::scalar_difference_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> operator- | ( | const DenseBase< OtherDerived > & | other | ) | const [inline] |
Returns the expression of the difference between each subvector of *this
and the vector other
ExpressionType& operator-= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Substracts the vector other to each subvector of *this
ExpressionType& operator= | ( | const DenseBase< OtherDerived > & | other | ) | [inline] |
Copies the vector other to each subvector of *this
const ReturnType<internal::member_prod>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the product of each row: -0.134 -0.0933 0.152
const ReduxReturnType<BinaryOp>::Type 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.
const VectorwiseOp< ExpressionType, Direction >::ReplicateReturnType 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:
Here is the vector v: 7 -2 6 v.rowwise().replicate(5) = ... 7 7 7 7 7 -2 -2 -2 -2 -2 6 6 6 6 6
const Replicate<ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)> 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:
Here is the matrix m: 7 6 9 -2 6 -6 m.colwise().replicate<3>() = ... 7 6 9 -2 6 -6 7 6 9 -2 6 -6 7 6 9 -2 6 -6
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:
Here is the matrix m: 7 6 -3 1 -2 9 6 0 6 -6 -5 3 Here is the rowwise reverse of m: 1 -3 6 7 0 6 9 -2 3 -5 -6 6 Here is the colwise reverse of m: 6 -6 -5 3 -2 9 6 0 7 6 -3 1 Here is the coefficient (1,0) in the rowise reverse of m: 0 Let us overwrite this coefficient with the value 4. Now the matrix m is: 7 6 -3 1 -2 9 6 0 6 -6 -5 3
const ReturnType<internal::member_squaredNorm,RealScalar>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the square norm of each row: 0.928 1.01 0.884
const ReturnType<internal::member_stableNorm,RealScalar>::Type stableNorm | ( | ) | const [inline] |
const ReturnType<internal::member_sum>::Type 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:
Here is the matrix m: 0.68 0.597 -0.33 -0.211 0.823 0.536 0.566 -0.605 -0.444 Here is the sum of each row: 0.948 1.15 -0.483