MOAB  4.9.3pre
Eigen::VectorwiseOp< ExpressionType, Direction > Class Template Reference

Pseudo expression providing partial reduction operations. More...

#include <VectorwiseOp.h>

Collaboration diagram for Eigen::VectorwiseOp< ExpressionType, Direction >:

List of all members.

Classes

struct  ExtendedType
struct  LpNormReturnType
struct  OppositeExtendedType
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::Scalar Scalar
typedef ExpressionType::RealScalar RealScalar
typedef Eigen::Index Index
typedef internal::ref_selector
< ExpressionType >
::non_const_type 
ExpressionTypeNested
typedef internal::remove_all
< ExpressionTypeNested >::type 
ExpressionTypeNestedCleaned
typedef ReturnType
< internal::member_minCoeff >
::Type 
MinCoeffReturnType
typedef ReturnType
< internal::member_maxCoeff >
::Type 
MaxCoeffReturnType
typedef ReturnType
< internal::member_squaredNorm,
RealScalar >::Type 
SquaredNormReturnType
typedef ReturnType
< internal::member_norm,
RealScalar >::Type 
NormReturnType
typedef ReturnType
< internal::member_blueNorm,
RealScalar >::Type 
BlueNormReturnType
typedef ReturnType
< internal::member_stableNorm,
RealScalar >::Type 
StableNormReturnType
typedef ReturnType
< internal::member_hypotNorm,
RealScalar >::Type 
HypotNormReturnType
typedef ReturnType
< internal::member_sum >::Type 
SumReturnType
typedef ReturnType
< internal::member_mean >
::Type 
MeanReturnType
typedef ReturnType
< internal::member_all >::Type 
AllReturnType
typedef ReturnType
< internal::member_any >::Type 
AnyReturnType
typedef PartialReduxExpr
< ExpressionType,
internal::member_count< Index >
, Direction > 
CountReturnType
typedef ReturnType
< internal::member_prod >
::Type 
ProdReturnType
typedef Reverse
< ExpressionType, Direction > 
ReverseReturnType
typedef Replicate
< ExpressionType,(isVertical?Dynamic:1),(isHorizontal?Dynamic:1)> 
ReplicateReturnType
typedef Homogeneous
< ExpressionType, Direction > 
HomogeneousReturnType
typedef ExpressionType::PlainObject CrossReturnType
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

Public Member Functions

EIGEN_DEVICE_FUNC VectorwiseOp (ExpressionType &matrix)
EIGEN_DEVICE_FUNC const
ExpressionType & 
_expression () const
template<typename BinaryOp >
EIGEN_DEVICE_FUNC const
ReduxReturnType< BinaryOp >
::Type 
redux (const BinaryOp &func=BinaryOp()) const
EIGEN_DEVICE_FUNC const
MinCoeffReturnType 
minCoeff () const
EIGEN_DEVICE_FUNC const
MaxCoeffReturnType 
maxCoeff () const
EIGEN_DEVICE_FUNC const
SquaredNormReturnType 
squaredNorm () const
EIGEN_DEVICE_FUNC const
NormReturnType 
norm () const
template<int p>
EIGEN_DEVICE_FUNC const
LpNormReturnType< p >::Type 
lpNorm () const
EIGEN_DEVICE_FUNC const
BlueNormReturnType 
blueNorm () const
EIGEN_DEVICE_FUNC const
StableNormReturnType 
stableNorm () const
EIGEN_DEVICE_FUNC const
HypotNormReturnType 
hypotNorm () const
EIGEN_DEVICE_FUNC const
SumReturnType 
sum () const
EIGEN_DEVICE_FUNC const
MeanReturnType 
mean () const
EIGEN_DEVICE_FUNC const
AllReturnType 
all () const
EIGEN_DEVICE_FUNC const
AnyReturnType 
any () const
EIGEN_DEVICE_FUNC const
CountReturnType 
count () const
EIGEN_DEVICE_FUNC const
ProdReturnType 
prod () const
EIGEN_DEVICE_FUNC const
ReverseReturnType 
reverse () const
EIGEN_DEVICE_FUNC const
ReplicateReturnType 
replicate (Index factor) const
template<int Factor>
const Replicate
< ExpressionType, isVertical
*Factor+isHorizontal,
isHorizontal *Factor+isVertical >
EIGEN_DEVICE_FUNC 
replicate (Index factor=Factor) const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType & operator= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType & operator+= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType & operator-= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType & operator*= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType & operator/= (const DenseBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC
CwiseBinaryOp
< internal::scalar_sum_op
< Scalar >, const
ExpressionTypeNestedCleaned,
const typename ExtendedType
< OtherDerived >::Type > 
operator+ (const DenseBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC
CwiseBinaryOp
< internal::scalar_difference_op
< Scalar >, const
ExpressionTypeNestedCleaned,
const typename ExtendedType
< OtherDerived >::Type > 
operator- (const DenseBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC
CwiseBinaryOp
< internal::scalar_product_op
< Scalar >, const
ExpressionTypeNestedCleaned,
const typename ExtendedType
< OtherDerived >::Type >
EIGEN_DEVICE_FUNC 
operator* (const DenseBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC
CwiseBinaryOp
< internal::scalar_quotient_op
< Scalar >, const
ExpressionTypeNestedCleaned,
const typename ExtendedType
< OtherDerived >::Type > 
operator/ (const DenseBase< OtherDerived > &other) const
EIGEN_DEVICE_FUNC
CwiseBinaryOp
< internal::scalar_quotient_op
< Scalar >, const
ExpressionTypeNestedCleaned,
const typename
OppositeExtendedType< typename
ReturnType
< internal::member_norm,
RealScalar >::Type >::Type > 
normalized () const
EIGEN_DEVICE_FUNC void normalize ()
EIGEN_DEVICE_FUNC void reverseInPlace ()
HomogeneousReturnType homogeneous () const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC const
CrossReturnType 
cross (const MatrixBase< OtherDerived > &other) const
const HNormalizedReturnType hnormalized () const

Protected Types

typedef internal::conditional
< isVertical, typename
ExpressionType::ColXpr,
typename
ExpressionType::RowXpr >::type 
SubVector

Protected Member Functions

EIGEN_DEVICE_FUNC SubVector subVector (Index i)
EIGEN_DEVICE_FUNC Index subVectors () const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExtendedType
< OtherDerived >::Type 
extendedTo (const DenseBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_DEVICE_FUNC
OppositeExtendedType
< OtherDerived >::Type 
extendedToOpposite (const DenseBase< OtherDerived > &other) const

Protected Attributes

ExpressionTypeNested m_matrix

Detailed Description

template<typename ExpressionType, int Direction>
class Eigen::VectorwiseOp< ExpressionType, Direction >

Pseudo expression providing partial reduction operations.

Template Parameters:
ExpressionTypethe type of the object on which to do partial reductions
Directionindicates 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:

Output:

See also:
DenseBase::colwise(), DenseBase::rowwise(), class PartialReduxExpr

Definition at line 156 of file VectorwiseOp.h.


Member Typedef Documentation

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_all>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::AllReturnType

Definition at line 283 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_any>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::AnyReturnType

Definition at line 284 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_blueNorm,RealScalar>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::BlueNormReturnType

Definition at line 278 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> Eigen::VectorwiseOp< ExpressionType, Direction >::CountReturnType

Definition at line 285 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ExpressionType::PlainObject Eigen::VectorwiseOp< ExpressionType, Direction >::CrossReturnType

Definition at line 621 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef internal::ref_selector<ExpressionType>::non_const_type Eigen::VectorwiseOp< ExpressionType, Direction >::ExpressionTypeNested

Definition at line 163 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef internal::remove_all<ExpressionTypeNested>::type Eigen::VectorwiseOp< ExpressionType, Direction >::ExpressionTypeNestedCleaned

Definition at line 164 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Block<const ExpressionType, Direction==Vertical ? int(HNormalized_SizeMinusOne) : int(internal::traits<ExpressionType>::RowsAtCompileTime), Direction==Horizontal ? int(HNormalized_SizeMinusOne) : int(internal::traits<ExpressionType>::ColsAtCompileTime)> Eigen::VectorwiseOp< ExpressionType, Direction >::HNormalized_Block

Definition at line 636 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Block<const ExpressionType, Direction==Vertical ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime), Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)> Eigen::VectorwiseOp< ExpressionType, Direction >::HNormalized_Factors

Definition at line 640 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
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> > Eigen::VectorwiseOp< ExpressionType, Direction >::HNormalizedReturnType

Definition at line 646 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Homogeneous<ExpressionType,Direction> Eigen::VectorwiseOp< ExpressionType, Direction >::HomogeneousReturnType

Definition at line 618 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_hypotNorm,RealScalar>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::HypotNormReturnType

Definition at line 280 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Eigen::Index Eigen::VectorwiseOp< ExpressionType, Direction >::Index
Deprecated:
since Eigen 3.3

Definition at line 162 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_maxCoeff>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::MaxCoeffReturnType

Definition at line 275 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_mean>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::MeanReturnType

Definition at line 282 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_minCoeff>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::MinCoeffReturnType

Definition at line 274 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_norm,RealScalar>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::NormReturnType

Definition at line 277 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_prod>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::ProdReturnType

Definition at line 286 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ExpressionType::RealScalar Eigen::VectorwiseOp< ExpressionType, Direction >::RealScalar

Definition at line 161 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Replicate<ExpressionType,(isVertical?Dynamic:1),(isHorizontal?Dynamic:1)> Eigen::VectorwiseOp< ExpressionType, Direction >::ReplicateReturnType

Definition at line 462 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef Reverse<ExpressionType, Direction> Eigen::VectorwiseOp< ExpressionType, Direction >::ReverseReturnType

Definition at line 287 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ExpressionType::Scalar Eigen::VectorwiseOp< ExpressionType, Direction >::Scalar

Definition at line 160 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_squaredNorm,RealScalar>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::SquaredNormReturnType

Definition at line 276 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_stableNorm,RealScalar>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::StableNormReturnType

Definition at line 279 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef internal::conditional<isVertical, typename ExpressionType::ColXpr, typename ExpressionType::RowXpr>::type Eigen::VectorwiseOp< ExpressionType, Direction >::SubVector [protected]

Definition at line 192 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
typedef ReturnType<internal::member_sum>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::SumReturnType

Definition at line 281 of file VectorwiseOp.h.


Member Enumeration Documentation

template<typename ExpressionType, int Direction>
anonymous enum
Enumerator:
isVertical 
isHorizontal 

Definition at line 183 of file VectorwiseOp.h.

         {
      isVertical   = (Direction==Vertical) ? 1 : 0,
      isHorizontal = (Direction==Horizontal) ? 1 : 0
    };
template<typename ExpressionType, int Direction>
anonymous enum
Enumerator:
HNormalized_Size 
HNormalized_SizeMinusOne 

Definition at line 626 of file VectorwiseOp.h.

         {
      HNormalized_Size = Direction==Vertical ? internal::traits<ExpressionType>::RowsAtCompileTime
                                             : internal::traits<ExpressionType>::ColsAtCompileTime,
      HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1
    };

Constructor & Destructor Documentation

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC Eigen::VectorwiseOp< ExpressionType, Direction >::VectorwiseOp ( ExpressionType &  matrix) [inline, explicit]

Definition at line 255 of file VectorwiseOp.h.

: m_matrix(matrix) {}

Member Function Documentation

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::_expression ( ) const [inline]

Definition at line 259 of file VectorwiseOp.h.

{ return m_matrix; }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const AllReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::all ( ) const [inline]
Returns:
a row (or column) vector expression representing whether all coefficients of each respective column (or row) are true. This expression can be assigned to a vector with entries of type bool.
See also:
DenseBase::all()

Definition at line 414 of file VectorwiseOp.h.

    { return AllReturnType(_expression()); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const AnyReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::any ( ) const [inline]
Returns:
a row (or column) vector expression representing whether at least one coefficient of each respective column (or row) is true. This expression can be assigned to a vector with entries of type bool.
See also:
DenseBase::any()

Definition at line 423 of file VectorwiseOp.h.

    { return AnyReturnType(_expression()); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const BlueNormReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::blueNorm ( ) const [inline]
Returns:
a row (or column) vector expression of the norm of each column (or row) of the referenced expression, using Blue's algorithm. This is a vector with real entries, even if the original matrix has complex entries.
See also:
DenseBase::blueNorm()

Definition at line 364 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const CountReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::count ( ) const [inline]
Returns:
a row (or column) vector expression representing the number of true coefficients of each respective column (or row). This expression can be assigned to a vector whose entries have the same type as is used to index entries of the original matrix; for dense matrices, this is std::ptrdiff_t .

Example:

Output:

See also:
DenseBase::count()

Definition at line 436 of file VectorwiseOp.h.

    { return CountReturnType(_expression()); }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExtendedType<OtherDerived>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::extendedTo ( const DenseBase< OtherDerived > &  other) const [inline, protected]

Replicates a vector to match the size of *this

Definition at line 218 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isVertical, OtherDerived::MaxColsAtCompileTime==1),
                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isHorizontal, OtherDerived::MaxRowsAtCompileTime==1),
                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
      return typename ExtendedType<OtherDerived>::Type
                      (other.derived(),
                       isVertical   ? 1 : m_matrix.rows(),
                       isHorizontal ? 1 : m_matrix.cols());
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC OppositeExtendedType<OtherDerived>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::extendedToOpposite ( const DenseBase< OtherDerived > &  other) const [inline, protected]

Replicates a vector in the opposite direction to match the size of *this

Definition at line 241 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isHorizontal, OtherDerived::MaxColsAtCompileTime==1),
                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isVertical, OtherDerived::MaxRowsAtCompileTime==1),
                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
      return typename OppositeExtendedType<OtherDerived>::Type
                      (other.derived(),
                       isHorizontal  ? 1 : m_matrix.rows(),
                       isVertical    ? 1 : m_matrix.cols());
    }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const HypotNormReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::hypotNorm ( ) const [inline]
Returns:
a row (or column) vector expression of the norm of each column (or row) of the referenced expression, avoiding underflow and overflow using a concatenation of hypot() calls. This is a vector with real entries, even if the original matrix has complex entries.
See also:
DenseBase::hypotNorm()

Definition at line 386 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
template<int p>
EIGEN_DEVICE_FUNC const LpNormReturnType<p>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::lpNorm ( ) const [inline]
Returns:
a row (or column) vector expression of the norm of each column (or row) of the referenced expression. This is a vector with real entries, even if the original matrix has complex entries.

Example:

Output:

See also:
DenseBase::norm()

Definition at line 353 of file VectorwiseOp.h.

    { return typename LpNormReturnType<p>::Type(_expression()); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const MaxCoeffReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::maxCoeff ( ) const [inline]
Returns:
a row (or column) vector expression of the largest coefficient of each column (or row) of the referenced expression.
Warning:
the result is undefined if *this contains NaN.

Example:

Output:

See also:
DenseBase::maxCoeff()

Definition at line 316 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const MeanReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::mean ( ) const [inline]
Returns:
a row (or column) vector expression of the mean of each column (or row) of the referenced expression.
See also:
DenseBase::mean()

Definition at line 405 of file VectorwiseOp.h.

    { return MeanReturnType(_expression()); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const MinCoeffReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::minCoeff ( ) const [inline]
Returns:
a row (or column) vector expression of the smallest coefficient of each column (or row) of the referenced expression.
Warning:
the result is undefined if *this contains NaN.

Example:

Output:

See also:
DenseBase::minCoeff()

Definition at line 303 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const NormReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::norm ( ) const [inline]
Returns:
a row (or column) vector expression of the norm of each column (or row) of the referenced expression. This is a vector with real entries, even if the original matrix has complex entries.

Example:

Output:

See also:
DenseBase::norm()

Definition at line 340 of file VectorwiseOp.h.

    { return NormReturnType(_expression()); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC void Eigen::VectorwiseOp< ExpressionType, Direction >::normalize ( ) [inline]

Normalize in-place each row or columns of the referenced matrix.

See also:
MatrixBase::normalize(), normalized()

Definition at line 610 of file VectorwiseOp.h.

                                       {
      m_matrix = this->normalized();
    }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const ExpressionTypeNestedCleaned, const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type> Eigen::VectorwiseOp< ExpressionType, Direction >::normalized ( ) const [inline]
Returns:
an expression where each column of row of the referenced matrix are normalized. The referenced matrix is not modified.
See also:
MatrixBase::normalized(), normalize()

Definition at line 604 of file VectorwiseOp.h.

{ return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC CwiseBinaryOp<internal::scalar_product_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> EIGEN_DEVICE_FUNC Eigen::VectorwiseOp< ExpressionType, Direction >::operator* ( const DenseBase< OtherDerived > &  other) const [inline]

Returns the expression where each subvector is the product of the vector other by the corresponding subvector of *this

Definition at line 573 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return m_matrix * extendedTo(other.derived());
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::operator*= ( const DenseBase< OtherDerived > &  other) [inline]

Multiples each subvector of *this by the vector other

Definition at line 520 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      m_matrix *= extendedTo(other.derived());
      return const_cast<ExpressionType&>(m_matrix);
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> Eigen::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 546 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return m_matrix + extendedTo(other.derived());
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::operator+= ( const DenseBase< OtherDerived > &  other) [inline]

Adds the vector other to each subvector of *this

Definition at line 500 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC CwiseBinaryOp<internal::scalar_difference_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> Eigen::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 559 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return m_matrix - extendedTo(other.derived());
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::operator-= ( const DenseBase< OtherDerived > &  other) [inline]

Substracts the vector other to each subvector of *this

Definition at line 510 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const ExpressionTypeNestedCleaned, const typename ExtendedType<OtherDerived>::Type> Eigen::VectorwiseOp< ExpressionType, Direction >::operator/ ( const DenseBase< OtherDerived > &  other) const [inline]

Returns the expression where each subvector is the quotient of the corresponding subvector of *this by the vector other

Definition at line 588 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      return m_matrix / extendedTo(other.derived());
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::operator/= ( const DenseBase< OtherDerived > &  other) [inline]

Divides each subvector of *this by the vector other

Definition at line 532 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      m_matrix /= extendedTo(other.derived());
      return const_cast<ExpressionType&>(m_matrix);
    }
template<typename ExpressionType, int Direction>
template<typename OtherDerived >
EIGEN_DEVICE_FUNC ExpressionType& Eigen::VectorwiseOp< ExpressionType, Direction >::operator= ( const DenseBase< OtherDerived > &  other) [inline]

Copies the vector other to each subvector of *this

Definition at line 489 of file VectorwiseOp.h.

    {
      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
      //eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
      return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
    }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const ProdReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::prod ( ) const [inline]
Returns:
a row (or column) vector expression of the product of each column (or row) of the referenced expression.

Example:

Output:

See also:
DenseBase::prod()

Definition at line 447 of file VectorwiseOp.h.

    { return ProdReturnType(_expression()); }
template<typename ExpressionType, int Direction>
template<typename BinaryOp >
EIGEN_DEVICE_FUNC const ReduxReturnType<BinaryOp>::Type Eigen::VectorwiseOp< ExpressionType, Direction >::redux ( const BinaryOp &  func = BinaryOp()) const [inline]
Returns:
a row or column vector expression of *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.

See also:
class VectorwiseOp, DenseBase::colwise(), DenseBase::rowwise()

Definition at line 271 of file VectorwiseOp.h.

    { return typename ReduxReturnType<BinaryOp>::Type(_expression(), internal::member_redux<BinaryOp,Scalar>(func)); }
template<typename ExpressionType , int Direction>
const VectorwiseOp< ExpressionType, Direction >::ReplicateReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::replicate ( Index  factor) const
Returns:
an expression of the replication of each column (or row) of *this

Example:

Output:

See also:
VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate

Definition at line 134 of file Replicate.h.

{
  return typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
}
template<typename ExpressionType, int Direction>
template<int Factor>
const Replicate<ExpressionType,isVertical*Factor+isHorizontal,isHorizontal*Factor+isVertical> EIGEN_DEVICE_FUNC Eigen::VectorwiseOp< ExpressionType, Direction >::replicate ( Index  factor = Factor) const [inline]
Returns:
an expression of the replication of each column (or row) of *this

Example:

Output:

See also:
VectorwiseOp::replicate(Index), DenseBase::replicate(), class Replicate

Definition at line 478 of file VectorwiseOp.h.

    {
      return Replicate<ExpressionType,(isVertical?Factor:1),(isHorizontal?Factor:1)>
          (_expression(),isVertical?factor:1,isHorizontal?factor:1);
    }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const ReverseReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::reverse ( ) const [inline]
Returns:
a matrix expression where each column (or row) are reversed.

Example:

Output:

See also:
DenseBase::reverse()

Definition at line 459 of file VectorwiseOp.h.

    { return ReverseReturnType( _expression() ); }
template<typename ExpressionType , int Direction>
void Eigen::VectorwiseOp< ExpressionType, Direction >::reverseInPlace ( ) [inline]

This is the "in place" version of VectorwiseOp::reverse: it reverses each column or row of *this.

In most cases it is probably better to simply use the reversed expression of a matrix. However, when reversing the matrix data itself is really needed, then this "in-place" version is probably the right choice because it provides the following additional benefits:

  • less error prone: doing the same operation with .reverse() requires special care:
     m = m.reverse().eval(); 
    
  • this API enables reverse operations without the need for a temporary
See also:
DenseBase::reverseInPlace(), reverse()

Definition at line 204 of file Reverse.h.

{
  internal::vectorwise_reverse_inplace_impl<Direction>::run(_expression().const_cast_derived());
}
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const SquaredNormReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::squaredNorm ( ) const [inline]
Returns:
a row (or column) vector expression of the squared norm of each column (or row) of the referenced expression. This is a vector with real entries, even if the original matrix has complex entries.

Example:

Output:

See also:
DenseBase::squaredNorm()

Definition at line 328 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const StableNormReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::stableNorm ( ) const [inline]
Returns:
a row (or column) vector expression of the norm of each column (or row) of the referenced expression, avoiding underflow and overflow. This is a vector with real entries, even if the original matrix has complex entries.
See also:
DenseBase::stableNorm()

Definition at line 375 of file VectorwiseOp.h.

template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC SubVector Eigen::VectorwiseOp< ExpressionType, Direction >::subVector ( Index  i) [inline, protected]
Returns:
the i-th subvector according to the Direction

Definition at line 196 of file VectorwiseOp.h.

    {
      return SubVector(m_matrix.derived(),i);
    }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC Index Eigen::VectorwiseOp< ExpressionType, Direction >::subVectors ( ) const [inline, protected]
Returns:
the number of subvectors in the direction Direction

Definition at line 204 of file VectorwiseOp.h.

    { return isVertical?m_matrix.cols():m_matrix.rows(); }
template<typename ExpressionType, int Direction>
EIGEN_DEVICE_FUNC const SumReturnType Eigen::VectorwiseOp< ExpressionType, Direction >::sum ( ) const [inline]
Returns:
a row (or column) vector expression of the sum of each column (or row) of the referenced expression.

Example:

Output:

See also:
DenseBase::sum()

Definition at line 397 of file VectorwiseOp.h.

    { return SumReturnType(_expression()); }

Member Data Documentation

template<typename ExpressionType, int Direction>
ExpressionTypeNested Eigen::VectorwiseOp< ExpressionType, Direction >::m_matrix [protected]

Definition at line 651 of file VectorwiseOp.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines