Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type > Class Template Reference

Generic expression where a coefficient-wise ternary operator is applied to two expressions. More...

#include <src/eigen/Eigen/src/Core/CwiseTernaryOp.h>

+ Inheritance diagram for Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >:
+ Collaboration diagram for Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >:

Public Types

typedef internal::remove_all< Arg1Type >::type Arg1
 
typedef internal::remove_all< Arg2Type >::type Arg2
 
typedef internal::remove_all< Arg3Type >::type Arg3
 
typedef CwiseTernaryOpImpl< TernaryOp, Arg1Type, Arg2Type, Arg3Type, typenameinternal::traits< Arg1Type >::StorageKind >::Base Base
 
typedef internal::ref_selector< Arg1Type >::type Arg1Nested
 
typedef internal::ref_selector< Arg2Type >::type Arg2Nested
 
typedef internal::ref_selector< Arg3Type >::type Arg3Nested
 
typedef internal::remove_reference< Arg1Nested >::type _Arg1Nested
 
typedef internal::remove_reference< Arg2Nested >::type _Arg2Nested
 
typedef internal::remove_reference< Arg3Nested >::type _Arg3Nested
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CwiseTernaryOp (const Arg1 &a1, const Arg2 &a2, const Arg3 &a3, const TernaryOp &func=TernaryOp())
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols () const
 
EIGEN_DEVICE_FUNC const _Arg1Nestedarg1 () const
 
EIGEN_DEVICE_FUNC const _Arg2Nestedarg2 () const
 
EIGEN_DEVICE_FUNC const _Arg3Nestedarg3 () const
 
EIGEN_DEVICE_FUNC const TernaryOp & functor () const
 

Protected Attributes

Arg1Nested m_arg1
 
Arg2Nested m_arg2
 
Arg3Nested m_arg3
 
const TernaryOp m_functor
 

Detailed Description

template<typename TernaryOp, typename Arg1Type, typename Arg2Type, typename Arg3Type>
class Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >

Generic expression where a coefficient-wise ternary operator is applied to two expressions.

Template Parameters
TernaryOptemplate functor implementing the operator
Arg1Typethe type of the first argument
Arg2Typethe type of the second argument
Arg3Typethe type of the third argument

This class represents an expression where a coefficient-wise ternary operator is applied to three expressions. It is the return type of ternary operators, by which we mean only those ternary operators where all three arguments are Eigen expressions. For example, the return type of betainc(matrix1, matrix2, matrix3) is a CwiseTernaryOp.

Most of the time, this is the only way that it is used, so you typically don't have to name CwiseTernaryOp types explicitly.

See also
MatrixBase::ternaryExpr(const MatrixBase<Argument2> &, const MatrixBase<Argument3> &, const CustomTernaryOp &) const, class CwiseBinaryOp, class CwiseUnaryOp, class CwiseNullaryOp

Member Typedef Documentation

◆ _Arg1Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_reference<Arg1Nested>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::_Arg1Nested

◆ _Arg2Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_reference<Arg2Nested>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::_Arg2Nested

◆ _Arg3Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_reference<Arg3Nested>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::_Arg3Nested

◆ Arg1

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_all<Arg1Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg1

◆ Arg1Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::ref_selector<Arg1Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg1Nested

◆ Arg2

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_all<Arg2Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg2

◆ Arg2Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::ref_selector<Arg2Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg2Nested

◆ Arg3

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::remove_all<Arg3Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg3

◆ Arg3Nested

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef internal::ref_selector<Arg3Type>::type Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Arg3Nested

◆ Base

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
typedef CwiseTernaryOpImpl<TernaryOp,Arg1Type,Arg2Type,Arg3Type,typenameinternal::traits<Arg1Type>::StorageKind>::Base Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::Base

Constructor & Destructor Documentation

◆ CwiseTernaryOp()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::CwiseTernaryOp ( const Arg1 a1,
const Arg2 a2,
const Arg3 a3,
const TernaryOp &  func = TernaryOp() 
)
inline
110 : m_arg1(a1), m_arg2(a2), m_arg3(a3), m_functor(func) {
111 // require the sizes to match
114
115 // The index types should match
116 EIGEN_STATIC_ASSERT((internal::is_same<
117 typename internal::traits<Arg1Type>::StorageKind,
118 typename internal::traits<Arg2Type>::StorageKind>::value),
119 STORAGE_KIND_MUST_MATCH)
120 EIGEN_STATIC_ASSERT((internal::is_same<
121 typename internal::traits<Arg1Type>::StorageKind,
122 typename internal::traits<Arg3Type>::StorageKind>::value),
123 STORAGE_KIND_MUST_MATCH)
124
125 eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() &&
126 a1.rows() == a3.rows() && a1.cols() == a3.cols());
127 }
#define eigen_assert(x)
Definition Macros.h:579
#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0, TYPE1)
Definition StaticAssert.h:189
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition StaticAssert.h:124
internal::remove_all< Arg3Type >::type Arg3
Definition CwiseTernaryOp.h:92
Arg1Nested m_arg1
Definition CwiseTernaryOp.h:178
Arg2Nested m_arg2
Definition CwiseTernaryOp.h:179
Arg3Nested m_arg3
Definition CwiseTernaryOp.h:180
internal::remove_all< Arg2Type >::type Arg2
Definition CwiseTernaryOp.h:91
internal::remove_all< Arg1Type >::type Arg1
Definition CwiseTernaryOp.h:90
const TernaryOp m_functor
Definition CwiseTernaryOp.h:181

References eigen_assert, EIGEN_STATIC_ASSERT, and EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE.

Member Function Documentation

◆ arg1()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC const _Arg1Nested & Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::arg1 ( ) const
inline
Returns
the first argument nested expression
166{ return m_arg1; }

References Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg1.

◆ arg2()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC const _Arg2Nested & Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::arg2 ( ) const
inline
Returns
the first argument nested expression
169{ return m_arg2; }

References Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg2.

◆ arg3()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC const _Arg3Nested & Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::arg3 ( ) const
inline
Returns
the third argument nested expression
172{ return m_arg3; }

References Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg3.

◆ cols()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::cols ( ) const
inline
147 {
148 // return the fixed size type if available to enable compile time
149 // optimizations
150 if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
151 ColsAtCompileTime == Dynamic &&
152 internal::traits<typename internal::remove_all<Arg2Nested>::type>::
153 ColsAtCompileTime == Dynamic)
154 return m_arg3.cols();
155 else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
156 ColsAtCompileTime == Dynamic &&
157 internal::traits<typename internal::remove_all<Arg3Nested>::type>::
158 ColsAtCompileTime == Dynamic)
159 return m_arg2.cols();
160 else
161 return m_arg1.cols();
162 }
internal::ref_selector< Arg3Type >::type Arg3Nested
Definition CwiseTernaryOp.h:101
internal::ref_selector< Arg2Type >::type Arg2Nested
Definition CwiseTernaryOp.h:100
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const
Definition CwiseTernaryOp.h:147
T type
Definition Meta.h:78
const int Dynamic
Definition Constants.h:21
Definition Eigen_Colamd.h:50

References Eigen::Dynamic, Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg1, Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg2, and Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg3.

◆ functor()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC const TernaryOp & Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::functor ( ) const
inline
Returns
the functor representing the ternary operation
175{ return m_functor; }

References Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_functor.

◆ rows()

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::rows ( ) const
inline
130 {
131 // return the fixed size type if available to enable compile time
132 // optimizations
133 if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
134 RowsAtCompileTime == Dynamic &&
135 internal::traits<typename internal::remove_all<Arg2Nested>::type>::
136 RowsAtCompileTime == Dynamic)
137 return m_arg3.rows();
138 else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
139 RowsAtCompileTime == Dynamic &&
140 internal::traits<typename internal::remove_all<Arg3Nested>::type>::
141 RowsAtCompileTime == Dynamic)
142 return m_arg2.rows();
143 else
144 return m_arg1.rows();
145 }
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
Definition CwiseTernaryOp.h:130

References Eigen::Dynamic, Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg1, Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg2, and Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg3.

Member Data Documentation

◆ m_arg1

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
Arg1Nested Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg1
protected

◆ m_arg2

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
Arg2Nested Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg2
protected

◆ m_arg3

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
Arg3Nested Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_arg3
protected

◆ m_functor

template<typename TernaryOp , typename Arg1Type , typename Arg2Type , typename Arg3Type >
const TernaryOp Eigen::CwiseTernaryOp< TernaryOp, Arg1Type, Arg2Type, Arg3Type >::m_functor
protected

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