Eigen::internal::assignment_from_dense_op_sparse< DstXprType, Func1, Func2 > Struct Template Reference

#include <SparseAssign.h>

Static Public Member Functions

template<typename SrcXprType , typename InitialFunc >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void run (DstXprType &dst, const SrcXprType &src, const InitialFunc &)
 
template<typename Lhs , typename Rhs , typename Scalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::enable_if_t< internal::is_same< typename internal::evaluator_traits< Rhs >::Shape, DenseShape >::valuerun (DstXprType &dst, const CwiseBinaryOp< internal::scalar_sum_op< Scalar, Scalar >, const Lhs, const Rhs > &src, const internal::assign_op< typename DstXprType::Scalar, Scalar > &)
 
template<typename Lhs , typename Rhs , typename Scalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::enable_if_t< internal::is_same< typename internal::evaluator_traits< Rhs >::Shape, DenseShape >::valuerun (DstXprType &dst, const CwiseBinaryOp< internal::scalar_difference_op< Scalar, Scalar >, const Lhs, const Rhs > &src, const internal::assign_op< typename DstXprType::Scalar, Scalar > &)
 

Member Function Documentation

◆ run() [1/3]

template<typename DstXprType , typename Func1 , typename Func2 >
template<typename Lhs , typename Rhs , typename Scalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::enable_if_t<internal::is_same<typename internal::evaluator_traits<Rhs>::Shape, DenseShape>::value> Eigen::internal::assignment_from_dense_op_sparse< DstXprType, Func1, Func2 >::run ( DstXprType &  dst,
const CwiseBinaryOp< internal::scalar_difference_op< Scalar, Scalar >, const Lhs, const Rhs > &  src,
const internal::assign_op< typename DstXprType::Scalar, Scalar > &   
)
inlinestatic
196  {
197 #ifdef EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_SUB_DENSE_PLUGIN
199 #endif
200 
201  // Apply the dense matrix first, then the sparse one.
202  call_assignment_no_alias(dst, -src.rhs(), Func1());
203  call_assignment_no_alias(dst, src.lhs(), add_assign_op<typename DstXprType::Scalar, typename Lhs::Scalar>());
204  }
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR void call_assignment_no_alias(Dst &dst, const Src &src, const Func &func)
Definition: AssignEvaluator.h:812
#define EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_SUB_DENSE_PLUGIN
Definition: sparse_basic.cpp:19

References Eigen::internal::call_assignment_no_alias(), and EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_SUB_DENSE_PLUGIN.

◆ run() [2/3]

template<typename DstXprType , typename Func1 , typename Func2 >
template<typename Lhs , typename Rhs , typename Scalar >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::enable_if_t<internal::is_same<typename internal::evaluator_traits<Rhs>::Shape, DenseShape>::value> Eigen::internal::assignment_from_dense_op_sparse< DstXprType, Func1, Func2 >::run ( DstXprType &  dst,
const CwiseBinaryOp< internal::scalar_sum_op< Scalar, Scalar >, const Lhs, const Rhs > &  src,
const internal::assign_op< typename DstXprType::Scalar, Scalar > &   
)
inlinestatic
180  {
181 #ifdef EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_ADD_DENSE_PLUGIN
183 #endif
184 
185  // Apply the dense matrix first, then the sparse one.
186  call_assignment_no_alias(dst, src.rhs(), Func1());
187  call_assignment_no_alias(dst, src.lhs(), Func2());
188  }
#define EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_ADD_DENSE_PLUGIN
Definition: sparse_basic.cpp:18

References Eigen::internal::call_assignment_no_alias(), and EIGEN_SPARSE_ASSIGNMENT_FROM_SPARSE_ADD_DENSE_PLUGIN.

◆ run() [3/3]

template<typename DstXprType , typename Func1 , typename Func2 >
template<typename SrcXprType , typename InitialFunc >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::internal::assignment_from_dense_op_sparse< DstXprType, Func1, Func2 >::run ( DstXprType &  dst,
const SrcXprType &  src,
const InitialFunc &   
)
inlinestatic
166  {
167 #ifdef EIGEN_SPARSE_ASSIGNMENT_FROM_DENSE_OP_SPARSE_PLUGIN
169 #endif
170 
171  call_assignment_no_alias(dst, src.lhs(), Func1());
172  call_assignment_no_alias(dst, src.rhs(), Func2());
173  }
#define EIGEN_SPARSE_ASSIGNMENT_FROM_DENSE_OP_SPARSE_PLUGIN
Definition: sparse_basic.cpp:17

References Eigen::internal::call_assignment_no_alias(), and EIGEN_SPARSE_ASSIGNMENT_FROM_DENSE_OP_SPARSE_PLUGIN.


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