STK++ 0.9.13
STK::VisitorByCol< Derived, Visitor > Class Template Reference

class allowing to apply a visitor on each columns of an expression. More...

#include <STK_SlicingVisitors.h>

Inheritance diagram for STK::VisitorByCol< Derived, Visitor >:
Inheritance graph

Public Types

enum  {
  structure_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::structure_ , orient_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::orient_ , sizeRows_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::sizeRows_ , sizeCols_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::sizeCols_ ,
  storage_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::storage_
}
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::VisitorType VisitorType
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::Type Type
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::TypeConst TypeConst
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::Allocator Allocator
 
typedef VisitorByCol Result
 
typedef TRange< sizeRows_RowRange
 Type of the Range for the rows.
 
typedef TRange< sizeCols_ColRange
 Type of the Range for the columns.
 
- Public Types inherited from STK::ExprBase< VisitorByCol< Derived, Visitor > >
enum  
 
typedef ITContainer< VisitorByCol< Derived, Visitor >, structure_ > Base
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::Type Type
 
typedef hidden::Traits< VisitorByCol< Derived, Visitor > >::TypeConst TypeConst
 

Public Member Functions

 VisitorByCol (Derived const &lhs)
 constructor
 
RowRange constrowsImpl () const
 
ColRange constcolsImpl () const
 
Derived constlhs () const
 
Allocator constresult () const
 
Type constelt2Impl (int i, int j) const
 access to the element (i,j)
 
Type constelt1Impl (int i) const
 access to the element i
 
Type constelt0Impl () const
 access to the element
 
- Public Member Functions inherited from STK::ExprBase< VisitorByCol< Derived, Visitor > >
Visitor::TypeConst visit (Visitor &visitor) const
 Visit the container using a constant visitor.
 
int count () const
 compute the value of non-zero element in an expression.
 
bool const any () const
 check if there is any non-zero element in an expression.
 
bool const all () const
 check if all the elements in an expression are not zero.
 
int nbAvailableValues () const
 
Type const minElt (int &row, int &col) const
 
Type const minElt (int &pos) const
 
Type const minElt () const
 
Type const minEltSafe (int &row, int &col) const
 
Type const minEltSafe (int &pos) const
 
Type const minEltSafe () const
 
Type const maxElt (int &row, int &col) const
 
Type const maxElt (int &pos) const
 
Type const maxElt () const
 
Type const maxEltSafe (int &row, int &col) const
 
Type const maxEltSafe (int &pos) const
 
Type const maxEltSafe () const
 
Type const sum () const
 
Type const sumSafe () const
 
Type const norm () const
 
Type const normSafe () const
 
Type const norm2 () const
 
Type const norm2Safe () const
 
Type const normInf () const
 
Type const mean () const
 
Type const meanSafe () const
 
Type const variance () const
 
Type const variance (Type const &mean) const
 
Type const varianceSafe () const
 
Type const varianceSafe (Type const &mean) const
 
Type const wsum (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wsum (ExprBase< Rhs > const &weights) const
 
Type const wsumSafe (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wsumSafe (ExprBase< Rhs > const &weights) const
 
Type const wnorm (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wnorm (ExprBase< Rhs > const &weights) const
 
Type const wnormSafe (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wnormSafe (ExprBase< Rhs > const &weights) const
 
Type const wnorm2 (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wnorm2 (ExprBase< Rhs > const &weights) const
 
Type const wnorm2Safe (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wnorm2Safe (ExprBase< Rhs > const &weights) const
 
Type const wmean (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wmean (ExprBase< Rhs > const &weights) const
 
Type const wmeanSafe (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wmeanSafe (ExprBase< Rhs > const &weights) const
 
Type const wvariance (ExprBase< Rhs > const &weights) const
 
Type const wvariance (Type const &mean, ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wvariance (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wvariance (Type const &mean, ExprBase< Rhs > const &weights) const
 
Type const wvarianceSafe (ExprBase< Rhs > const &weights) const
 
Type const wvarianceSafe (Type const &mean, ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wvarianceSafe (ExprBase< Rhs > const &weights) const
 
hidden::Traits< VisitorByCol< Derived, Visitor > >::Type const wvarianceSafe (Type const &mean, ExprBase< Rhs > const &weights) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::equalOp_ >::Result const operator== (ExprBase< Rhs > const &other) const
 
UnaryOperator< EqualWithOp< Type >, VisitorByCol< Derived, Visitor > > operator== (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::notEqualOp_ >::Result const operator!= (ExprBase< Rhs > const &other) const
 
UnaryOperator< NotEqualWithOp< Type >, VisitorByCol< Derived, Visitor > > operator!= (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::greaterThanOp_ >::Result const operator> (ExprBase< Rhs > const &other) const
 
UnaryOperator< GreaterThanOp< Type >, VisitorByCol< Derived, Visitor > > operator> (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::lessThanOp_ >::Result const operator< (ExprBase< Rhs > const &other) const
 
UnaryOperator< LessThanOp< Type >, VisitorByCol< Derived, Visitor > > operator< (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::greaterThanOrEqualOp_ >::Result const operator>= (ExprBase< Rhs > const &other) const
 
UnaryOperator< GeqThanOp< Type >, VisitorByCol< Derived, Visitor > > operator>= (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::lessThanOrEqualOp_ >::Result const operator<= (ExprBase< Rhs > const &other) const
 
UnaryOperator< LeqThanOp< Type >, VisitorByCol< Derived, Visitor > > operator<= (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::sumOp_ >::Result const operator+ (ExprBase< Rhs > const &other) const
 
UnaryOperator< SumWithOp< Type >, VisitorByCol< Derived, Visitor > > operator+ (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::differenceOp_ >::Result const operator- (ExprBase< Rhs > const &other) const
 
UnaryOperator< OppositeOp< Type >, VisitorByCol< Derived, Visitor > > operator- () const
 
UnaryOperator< DifferenceWithOp< Type >, VisitorByCol< Derived, Visitor > > operator- (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::productOp_ >::Result const prod (ExprBase< Rhs > const &other) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::divisionOp_ >::Result const operator/ (ExprBase< Rhs > const &other) const
 
UnaryOperator< DivisionWithOp< Type >, VisitorByCol< Derived, Visitor > > operator/ (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::moduloOp_ >::Result const operator% (ExprBase< Rhs > const &other) const
 
UnaryOperator< ModuloWithOp< Type >, VisitorByCol< Derived, Visitor > > operator% (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::minOp_ >::Result const min (ExprBase< Rhs > const &other) const
 
UnaryOperator< MinWithOp< Type >, VisitorByCol< Derived, Visitor > > min (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::maxOp_ >::Result const max (ExprBase< Rhs > const &other) const
 
UnaryOperator< MaxWithOp< Type >, VisitorByCol< Derived, Visitor > > max (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::logicalAndOp_ >::Result const operator&& (ExprBase< Rhs > const &other) const
 
UnaryOperator< LogicalAndWithOp< Type >, VisitorByCol< Derived, Visitor > > operator&& (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::logicalOrOp_ >::Result const operator|| (ExprBase< Rhs > const &other) const
 
UnaryOperator< LogicalOrWithOp< Type >, VisitorByCol< Derived, Visitor > > operator|| (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::bitwiseAndOp_ >::Result const operator& (ExprBase< Rhs > const &other) const
 
UnaryOperator< BitwiseAndWithOp< Type >, VisitorByCol< Derived, Visitor > > operator& (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::bitwiseOrOp_ >::Result const operator| (ExprBase< Rhs > const &other) const
 
UnaryOperator< BitwiseOrWithOp< Type >, VisitorByCol< Derived, Visitor > > operator| (Type const &value) const
 
hidden::OperatorSelector< VisitorByCol< Derived, Visitor >, Rhs, Arrays::bitwiseXorOp_ >::Result const operator^ (ExprBase< Rhs > const &other) const
 
UnaryOperator< BitwiseXorWithOp< Type >, VisitorByCol< Derived, Visitor > > operator^ (Type const &value) const
 
UnaryOperator< IsNaOp< Type >, VisitorByCol< Derived, Visitor > > isNA () const
 
UnaryOperator< NegOp< Type >, VisitorByCol< Derived, Visitor > > neg () const
 
UnaryOperator< IsFiniteOp< Type >, VisitorByCol< Derived, Visitor > > isFinite () const
 
UnaryOperator< IsInfiniteOp< Type >, VisitorByCol< Derived, Visitor > > isInfinite () const
 
UnaryOperator< AbsOp< Type >, VisitorByCol< Derived, Visitor > > abs () const
 
UnaryOperator< ExpOp< Type >, VisitorByCol< Derived, Visitor > > exp () const
 
UnaryOperator< LogOp< Type >, VisitorByCol< Derived, Visitor > > log () const
 
UnaryOperator< SqrtOp< Type >, VisitorByCol< Derived, Visitor > > sqrt () const
 
UnaryOperator< CosOp< Type >, VisitorByCol< Derived, Visitor > > cos () const
 
UnaryOperator< SinOp< Type >, VisitorByCol< Derived, Visitor > > sin () const
 
UnaryOperator< AcosOp< Type >, VisitorByCol< Derived, Visitor > > acos () const
 
UnaryOperator< AsinOp< Type >, VisitorByCol< Derived, Visitor > > asin () const
 
UnaryOperator< TanOp< Type >, VisitorByCol< Derived, Visitor > > tan () const
 
UnaryOperator< InverseOp< Type >, VisitorByCol< Derived, Visitor > > inverse () const
 
UnaryOperator< SquareOp< Type >, VisitorByCol< Derived, Visitor > > square () const
 
UnaryOperator< CubeOp< Type >, VisitorByCol< Derived, Visitor > > cube () const
 
UnaryOperator< ProductWithOp< Type >, VisitorByCol< Derived, Visitor > > operator* (Type const &value) const
 
hidden::ProductSelector< VisitorByCol< Derived, Visitor >, Rhs, hidden::Traits< VisitorByCol< Derived, Visitor > >::structure_, hidden::Traits< Rhs >::structure_ >::ProductType const operator* (ExprBase< Rhs > const &other) const
 
UnaryOperator< PowOp< Type >, VisitorByCol< Derived, Visitor > > pow (Type const &value) const
 
UnaryOperator< SafeInverseOp< Type >, VisitorByCol< Derived, Visitor > > safeInverse (Type const &value) const
 
UnaryOperator< SafeOp< Type >, VisitorByCol< Derived, Visitor > > const safe (Type const value=Type()) const
 
UnaryOperator< CastOp< Type, OtherType >, VisitorByCol< Derived, Visitor > > const cast () const
 
UnaryOperator< Law::PdfOp< Type >, VisitorByCol< Derived, Visitor > > pdf (Law::IUnivLaw< Type > const &law) const
 compute pdf values to this using distribution law given by user
 
UnaryOperator< Law::LogPdfOp< Type >, VisitorByCol< Derived, Visitor > > lpdf (Law::IUnivLaw< Type > const &law) const
 compute log-pdf values to this using distribution law given by user
 
UnaryOperator< Law::CdfOp< Type >, VisitorByCol< Derived, Visitor > > cdf (Law::IUnivLaw< Type > const &law) const
 compute cumulative distribution function of this using distribution law given by user
 
UnaryOperator< Law::LogCdfOp< Type >, VisitorByCol< Derived, Visitor > > lcdf (Law::IUnivLaw< Type > const &law) const
 compute log-cumulative distribution function of this using distribution law given by user
 
UnaryOperator< Law::CdfcOp< Type >, VisitorByCol< Derived, Visitor > > cdfc (Law::IUnivLaw< Type > const &law) const
 compute complementary cumulative distribution function of this using distribution law given by user
 
UnaryOperator< Law::LogCdfcOp< Type >, VisitorByCol< Derived, Visitor > > lcdfc (Law::IUnivLaw< Type > const &law) const
 compute complementary cumulative distribution function of this using distribution law given by user
 
UnaryOperator< Law::IcdfOp< Type >, VisitorByCol< Derived, Visitor > > icdf (Law::IUnivLaw< Type > const &law) const
 compute inverse cumulative distribution function using distribution law given by user
 
UnaryOperator< OtherOperator< Type >, VisitorByCol< Derived, Visitor > > const funct0 () const
 
UnaryOperator< OtherOperator< Type >, VisitorByCol< Derived, Visitor > > const funct1 (Type const value) const
 
TransposeOperator< VisitorByCol< Derived, Visitor > > const transpose () const
 
DiagonalizeOperator< VisitorByCol< Derived, Visitor > > const diagonalize () const
 
DiagonalGetterOperator< VisitorByCol< Derived, Visitor > > const getDiagonal () const
 
UpperTriangularizeOperator< VisitorByCol< Derived, Visitor > > const upperTriangularize () const
 
LowerTriangularizeOperator< VisitorByCol< Derived, Visitor > > const lowerTriangularize () const
 
SymmetrizeOperator< VisitorByCol< Derived, Visitor > > const symmetrize () const
 
UpperSymmetrizeOperator< VisitorByCol< Derived, Visitor > > const upperSymmetrize () const
 
LowerSymmetrizeOperator< VisitorByCol< Derived, Visitor > > const lowerSymmetrize () const
 
SubVectorOperator< VisitorByCol< Derived, Visitor >, Size_ > const sub (TRange< Size_ > const &I) const
 
SubOperator< VisitorByCol< Derived, Visitor >, SizeRows_, SizeCols_ > const sub (TRange< SizeRows_ > const &I, TRange< SizeCols_ > const &J) const
 
ColOperator< VisitorByCol< Derived, Visitor > > const col (int j) const
 
SubOperator< VisitorByCol< Derived, Visitor >, sizeRows_, Size_ > const col (TRange< Size_ > const &J) const
 
RowOperator< VisitorByCol< Derived, Visitor > > const row (int i) const
 
SubOperator< VisitorByCol< Derived, Visitor >, Size_, sizeCols_ > const row (TRange< Size_ > const &I) const
 
hidden::Promote< Type, typenameRhs::Type >::result_type const dot (ExprBase< Rhs > const &other) const
 
hidden::Promote< Type, typenameRhs::Type >::result_type const dotSafe (ExprBase< Rhs > const &other) const
 

Protected Attributes

Derived constlhs_
 

Private Attributes

Allocator result_
 

Additional Inherited Members

- Static Public Member Functions inherited from STK::TRef< 1 >
static bool isRef ()
 
- Protected Member Functions inherited from STK::ExprBase< VisitorByCol< Derived, Visitor > >
 ExprBase ()
 Default constructor.
 
 ~ExprBase ()
 destructor
 

Detailed Description

template<typename Derived, template< class > class Visitor>
class STK::VisitorByCol< Derived, Visitor >

class allowing to apply a visitor on each columns of an expression.

Definition at line 111 of file STK_SlicingVisitors.h.

Member Typedef Documentation

◆ Allocator

template<typename Derived , template< class > class Visitor>
typedef hidden::Traits<VisitorByCol<Derived,Visitor>>::Allocator STK::VisitorByCol< Derived, Visitor >::Allocator

Definition at line 117 of file STK_SlicingVisitors.h.

◆ ColRange

template<typename Derived , template< class > class Visitor>
typedef TRange<sizeCols_> STK::VisitorByCol< Derived, Visitor >::ColRange

Type of the Range for the columns.

Definition at line 130 of file STK_SlicingVisitors.h.

◆ Result

template<typename Derived , template< class > class Visitor>
typedef VisitorByCol STK::VisitorByCol< Derived, Visitor >::Result

Definition at line 118 of file STK_SlicingVisitors.h.

◆ RowRange

template<typename Derived , template< class > class Visitor>
typedef TRange<sizeRows_> STK::VisitorByCol< Derived, Visitor >::RowRange

Type of the Range for the rows.

Definition at line 128 of file STK_SlicingVisitors.h.

◆ Type

template<typename Derived , template< class > class Visitor>
typedef hidden::Traits<VisitorByCol<Derived,Visitor>>::Type STK::VisitorByCol< Derived, Visitor >::Type

Definition at line 115 of file STK_SlicingVisitors.h.

◆ TypeConst

template<typename Derived , template< class > class Visitor>
typedef hidden::Traits<VisitorByCol<Derived,Visitor>>::TypeConst STK::VisitorByCol< Derived, Visitor >::TypeConst

Definition at line 116 of file STK_SlicingVisitors.h.

◆ VisitorType

template<typename Derived , template< class > class Visitor>
typedef hidden::Traits<VisitorByCol<Derived,Visitor>>::VisitorType STK::VisitorByCol< Derived, Visitor >::VisitorType

Definition at line 114 of file STK_SlicingVisitors.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived , template< class > class Visitor>
anonymous enum
Enumerator
structure_ 
orient_ 
sizeRows_ 
sizeCols_ 
storage_ 

Definition at line 119 of file STK_SlicingVisitors.h.

120 {
121 structure_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::structure_,
122 orient_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::orient_,
123 sizeRows_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::sizeRows_,
124 sizeCols_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::sizeCols_,
125 storage_ = hidden::Traits< VisitorByCol<Derived, Visitor> >::storage_
126 };

Constructor & Destructor Documentation

◆ VisitorByCol()

template<typename Derived , template< class > class Visitor>
STK::VisitorByCol< Derived, Visitor >::VisitorByCol ( Derived const lhs)
inline

constructor

Definition at line 133 of file STK_SlicingVisitors.h.

133 : lhs_(lhs), result_(1,lhs_.sizeCols())
134 {
135 result_.shift(lhs_.beginCols());
136 for (int j= lhs_.beginCols(); j < lhs_.endCols(); ++j)
137 {
139 result_.elt(j) = lhs_.col(j).visit(visit);
140 }
141 }
Visitor::TypeConst visit(Visitor &visitor) const
Visit the container using a constant visitor.
hidden::Traits< VisitorByCol< Derived, Visitor > >::VisitorType VisitorType
Derived const & lhs() const

References STK::VisitorByCol< Derived, Visitor >::lhs_, STK::VisitorByCol< Derived, Visitor >::result_, and STK::ExprBase< VisitorByCol< Derived, Visitor > >::visit().

Member Function Documentation

◆ colsImpl()

template<typename Derived , template< class > class Visitor>
ColRange const & STK::VisitorByCol< Derived, Visitor >::colsImpl ( ) const
inline
Returns
the columns range

Definition at line 145 of file STK_SlicingVisitors.h.

145{ return result_.cols();}

References STK::VisitorByCol< Derived, Visitor >::result_.

◆ elt0Impl()

template<typename Derived , template< class > class Visitor>
Type const & STK::VisitorByCol< Derived, Visitor >::elt0Impl ( ) const
inline

access to the element

Definition at line 157 of file STK_SlicingVisitors.h.

157{ return result_.elt();}

References STK::VisitorByCol< Derived, Visitor >::result_.

◆ elt1Impl()

template<typename Derived , template< class > class Visitor>
Type const & STK::VisitorByCol< Derived, Visitor >::elt1Impl ( int  i) const
inline

access to the element i

Definition at line 155 of file STK_SlicingVisitors.h.

155{ return result_.elt(i);}

References STK::VisitorByCol< Derived, Visitor >::result_.

◆ elt2Impl()

template<typename Derived , template< class > class Visitor>
Type const & STK::VisitorByCol< Derived, Visitor >::elt2Impl ( int  i,
int  j 
) const
inline

access to the element (i,j)

Definition at line 153 of file STK_SlicingVisitors.h.

153{ return result_.elt(i,j);}

References STK::VisitorByCol< Derived, Visitor >::result_.

◆ lhs()

template<typename Derived , template< class > class Visitor>
Derived const & STK::VisitorByCol< Derived, Visitor >::lhs ( ) const
inline
Returns
the left hand side expression

Definition at line 148 of file STK_SlicingVisitors.h.

148{ return lhs_; }

References STK::VisitorByCol< Derived, Visitor >::lhs_.

◆ result()

template<typename Derived , template< class > class Visitor>
Allocator const & STK::VisitorByCol< Derived, Visitor >::result ( ) const
inline
Returns
the result

Definition at line 150 of file STK_SlicingVisitors.h.

150{ return result_; }

References STK::VisitorByCol< Derived, Visitor >::result_.

◆ rowsImpl()

template<typename Derived , template< class > class Visitor>
RowRange const & STK::VisitorByCol< Derived, Visitor >::rowsImpl ( ) const
inline
Returns
the range of the rows

Definition at line 143 of file STK_SlicingVisitors.h.

143{ return result_.rows();}

References STK::VisitorByCol< Derived, Visitor >::result_.

Member Data Documentation

◆ lhs_

template<typename Derived , template< class > class Visitor>
Derived const& STK::VisitorByCol< Derived, Visitor >::lhs_
protected

◆ result_


The documentation for this class was generated from the following file: