CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Static Public Attributes
calo::multifit::MapSymM< T, Stride, Order > Struct Template Reference

#include <MultifitComputations.h>

Public Types

using base_type = typename std::remove_const< type >::type
 
using type = T
 

Public Member Functions

EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC MapSymM (T *data)
 
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC T const & operator() (int const row, int const col) const
 
template<typename U = T>
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC std::enable_if< std::is_same< base_type, U >::value, base_type >::typeoperator() (int const row, int const col)
 

Public Attributes

Tdata
 

Static Public Attributes

static constexpr int stride = Stride
 
static constexpr int total = Stride * (Stride + 1) / 2
 

Detailed Description

template<typename T, int Stride, int Order = Eigen::ColMajor>
struct calo::multifit::MapSymM< T, Stride, Order >

Definition at line 29 of file MultifitComputations.h.

Member Typedef Documentation

◆ base_type

template<typename T, int Stride, int Order = Eigen::ColMajor>
using calo::multifit::MapSymM< T, Stride, Order >::base_type = typename std::remove_const<type>::type

Definition at line 31 of file MultifitComputations.h.

◆ type

template<typename T, int Stride, int Order = Eigen::ColMajor>
using calo::multifit::MapSymM< T, Stride, Order >::type = T

Definition at line 30 of file MultifitComputations.h.

Constructor & Destructor Documentation

◆ MapSymM()

template<typename T, int Stride, int Order = Eigen::ColMajor>
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC calo::multifit::MapSymM< T, Stride, Order >::MapSymM ( T data)
inline

Member Function Documentation

◆ operator()() [1/2]

template<typename T, int Stride, int Order = Eigen::ColMajor>
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC T const& calo::multifit::MapSymM< T, Stride, Order >::operator() ( int const  row,
int const  col 
) const
inline

Definition at line 39 of file MultifitComputations.h.

References cuy::col, calo::multifit::MapSymM< T, Stride, Order >::data, createJobs::tmp, and calo::multifit::MapSymM< T, Stride, Order >::total.

39  {
40  auto const tmp = (Stride - col) * (Stride - col + 1) / 2;
41  auto const index = total - tmp + row - col;
42  return data[index];
43  }
static constexpr int total
col
Definition: cuy.py:1009
tmp
align.sh
Definition: createJobs.py:716

◆ operator()() [2/2]

template<typename T, int Stride, int Order = Eigen::ColMajor>
template<typename U = T>
EIGEN_ALWAYS_INLINE EIGEN_DEVICE_FUNC std::enable_if<std::is_same<base_type, U>::value, base_type>::type& calo::multifit::MapSymM< T, Stride, Order >::operator() ( int const  row,
int const  col 
)
inline

Definition at line 47 of file MultifitComputations.h.

References cuy::col, calo::multifit::MapSymM< T, Stride, Order >::data, createJobs::tmp, and calo::multifit::MapSymM< T, Stride, Order >::total.

47  {
48  auto const tmp = (Stride - col) * (Stride - col + 1) / 2;
49  auto const index = total - tmp + row - col;
50  return data[index];
51  }
static constexpr int total
col
Definition: cuy.py:1009
tmp
align.sh
Definition: createJobs.py:716

Member Data Documentation

◆ data

template<typename T, int Stride, int Order = Eigen::ColMajor>
T* calo::multifit::MapSymM< T, Stride, Order >::data

◆ stride

template<typename T, int Stride, int Order = Eigen::ColMajor>
constexpr int calo::multifit::MapSymM< T, Stride, Order >::stride = Stride
static

Definition at line 34 of file MultifitComputations.h.

◆ total

template<typename T, int Stride, int Order = Eigen::ColMajor>
constexpr int calo::multifit::MapSymM< T, Stride, Order >::total = Stride * (Stride + 1) / 2
static