Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType > Class Template Reference

Expression of a coefficient wise version of the C++ ternary operator ?: More...

#include <Select.h>

+ Inheritance diagram for Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >:

Public Types

typedef internal::dense_xpr_base< Select >::type Base
 

Public Member Functions

EIGEN_DEVICE_FUNC Select (const ConditionMatrixType &a_conditionMatrix, const ThenMatrixType &a_thenMatrix, const ElseMatrixType &a_elseMatrix)
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC const Scalar coeff (Index i, Index j) const
 
EIGEN_DEVICE_FUNC const Scalar coeff (Index i) const
 
EIGEN_DEVICE_FUNC const ConditionMatrixType & conditionMatrix () const
 
EIGEN_DEVICE_FUNC const ThenMatrixType & thenMatrix () const
 
EIGEN_DEVICE_FUNC const ElseMatrixType & elseMatrix () const
 

Protected Attributes

ConditionMatrixType::Nested m_condition
 
ThenMatrixType::Nested m_then
 
ElseMatrixType::Nested m_else
 

Detailed Description

template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
class Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >

Expression of a coefficient wise version of the C++ ternary operator ?:

Template Parameters
ConditionMatrixTypethe type of the condition expression which must be a boolean matrix
ThenMatrixTypethe type of the then expression
ElseMatrixTypethe type of the else expression

This class represents an expression of a coefficient wise version of the C++ ternary operator ?:. It is the return type of DenseBase::select() and most of the time this is the only way it is used.

See also
DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const

Member Typedef Documentation

◆ Base

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
typedef internal::dense_xpr_base<Select>::type Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::Base

Constructor & Destructor Documentation

◆ Select()

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::Select ( const ConditionMatrixType &  a_conditionMatrix,
const ThenMatrixType &  a_thenMatrix,
const ElseMatrixType &  a_elseMatrix 
)
inline
61  : m_condition(a_conditionMatrix), m_then(a_thenMatrix), m_else(a_elseMatrix) {
62  eigen_assert(m_condition.rows() == m_then.rows() && m_condition.rows() == m_else.rows());
63  eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
64  }
#define eigen_assert(x)
Definition: Macros.h:910
ElseMatrixType::Nested m_else
Definition: Select.h:92
ConditionMatrixType::Nested m_condition
Definition: Select.h:90
ThenMatrixType::Nested m_then
Definition: Select.h:91

References eigen_assert, Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_condition, Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_else, and Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_then.

Member Function Documentation

◆ coeff() [1/2]

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC const Scalar Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::coeff ( Index  i) const
inline

◆ coeff() [2/2]

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC const Scalar Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::coeff ( Index  i,
Index  j 
) const
inline
69  {
70  if (m_condition.coeff(i, j))
71  return m_then.coeff(i, j);
72  else
73  return m_else.coeff(i, j);
74  }
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References i, j, Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_condition, Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_else, and Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_then.

◆ cols()

◆ conditionMatrix()

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC const ConditionMatrixType& Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::conditionMatrix ( ) const
inline

◆ elseMatrix()

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC const ElseMatrixType& Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::elseMatrix ( ) const
inline

◆ rows()

◆ thenMatrix()

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
EIGEN_DEVICE_FUNC const ThenMatrixType& Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::thenMatrix ( ) const
inline

Member Data Documentation

◆ m_condition

◆ m_else

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
ElseMatrixType::Nested Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_else
protected

◆ m_then

template<typename ConditionMatrixType , typename ThenMatrixType , typename ElseMatrixType >
ThenMatrixType::Nested Eigen::Select< ConditionMatrixType, ThenMatrixType, ElseMatrixType >::m_then
protected

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