CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Attributes
mkfit::MatriplexPackerSlurpIn< D > Class Template Reference

#include <MatriplexPackers.h>

Inheritance diagram for mkfit::MatriplexPackerSlurpIn< D >:
mkfit::MatriplexErrParPackerSlurpIn< T, D >

Public Member Functions

void addInput (const D &item)
 
void addInputAt (int pos, const D &item)
 
void addNullInput ()
 
 MatriplexPackerSlurpIn (const D *base)
 
template<typename TM >
void pack (TM &mplex, int base_offset)
 
void reset ()
 

Protected Attributes

const D * m_base
 
int m_idx [NN]
 
int m_pos
 

Detailed Description

template<typename D>
class mkfit::MatriplexPackerSlurpIn< D >

Definition at line 16 of file MatriplexPackers.h.

Constructor & Destructor Documentation

template<typename D >
mkfit::MatriplexPackerSlurpIn< D >::MatriplexPackerSlurpIn ( const D *  base)
inline

Definition at line 24 of file MatriplexPackers.h.

Member Function Documentation

template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::addInput ( const D &  item)
inline
template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::addInputAt ( int  pos,
const D &  item 
)
inline

Definition at line 38 of file MatriplexPackers.h.

References mkfit::MatriplexPackerSlurpIn< D >::addInput(), mkfit::MatriplexPackerSlurpIn< D >::m_idx, and mkfit::MatriplexPackerSlurpIn< D >::m_pos.

38  {
39  while (m_pos < pos) {
40  // We might not care about initialization / reset to 0.
41  // Or we could be building an additional mask (on top of N_proc).
42  m_idx[m_pos++] = 0;
43  }
44 
45  addInput(item);
46  }
void addInput(const D &item)
template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::addNullInput ( )
inline
template<typename D >
template<typename TM >
void mkfit::MatriplexPackerSlurpIn< D >::pack ( TM &  mplex,
int  base_offset 
)
inline

Definition at line 49 of file MatriplexPackers.h.

References cms::cuda::assert(), mkfit::MatriplexPackerSlurpIn< D >::m_base, mkfit::MatriplexPackerSlurpIn< D >::m_idx, mkfit::MatriplexPackerSlurpIn< D >::m_pos, and mkfit::NN.

Referenced by mkfit::MkFitter::inputTracksForFit().

49  {
50  assert(m_pos > 0 && m_pos <= NN);
51 
52 #if defined(GATHER_INTRINSICS)
53  GATHER_IDX_LOAD(vi, m_idx);
54  mplex.slurpIn(m_base + base_offset, vi, D(), m_pos);
55 #else
56  mplex.slurpIn(m_base + base_offset, m_idx, m_pos);
57 #endif
58  }
assert(be >=bs)
constexpr Matriplex::idx_t NN
Definition: Matrix.h:43
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::reset ( void  )
inline

Member Data Documentation

template<typename D >
const D* mkfit::MatriplexPackerSlurpIn< D >::m_base
protected
template<typename D >
int mkfit::MatriplexPackerSlurpIn< D >::m_idx[NN]
protected
template<typename D >
int mkfit::MatriplexPackerSlurpIn< D >::m_pos
protected