CMS 3D CMS Logo

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 ()
 
int size () const
 

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

◆ MatriplexPackerSlurpIn()

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

Member Function Documentation

◆ addInput()

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

◆ addInputAt()

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

Definition at line 40 of file MatriplexPackers.h.

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

40  {
41  while (m_pos < pos) {
42  // We might not care about initialization / reset to 0.
43  // Or we could be building an additional mask (on top of N_proc).
44  m_idx[m_pos++] = 0;
45  }
46 
47  addInput(item);
48  }
void addInput(const D &item)

◆ addNullInput()

template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::addNullInput ( )
inline

◆ pack()

template<typename D >
template<typename TM >
void mkfit::MatriplexPackerSlurpIn< D >::pack ( TM &  mplex,
int  base_offset 
)
inline

Definition at line 51 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().

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

◆ reset()

template<typename D >
void mkfit::MatriplexPackerSlurpIn< D >::reset ( void  )
inline

◆ size()

template<typename D >
int mkfit::MatriplexPackerSlurpIn< D >::size ( void  ) const
inline

Member Data Documentation

◆ m_base

template<typename D >
const D* mkfit::MatriplexPackerSlurpIn< D >::m_base
protected

◆ m_idx

template<typename D >
int mkfit::MatriplexPackerSlurpIn< D >::m_idx[NN]
protected

◆ m_pos

template<typename D >
int mkfit::MatriplexPackerSlurpIn< D >::m_pos
protected