CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
eigenSoA::ScalarSoA< T, S > Class Template Reference

#include <eigenSoA.h>

Public Types

using Scalar = T
 

Public Member Functions

__host__ __device__ constexpr Scalardata ()
 
__host__ __device__ constexpr Scalar const * data () const
 
__host__ __device__ constexpr Scalaroperator() (int32_t i)
 
__device__ constexpr const Scalar operator() (int32_t i) const
 
__host__ __device__ constexpr Scalaroperator[] (int32_t i)
 
__device__ constexpr const Scalar operator[] (int32_t i) const
 

Private Attributes

Scalar data_ [S]
 

Detailed Description

template<typename T, int S>
class eigenSoA::ScalarSoA< T, S >

Definition at line 17 of file eigenSoA.h.

Member Typedef Documentation

◆ Scalar

template<typename T, int S>
using eigenSoA::ScalarSoA< T, S >::Scalar = T

Definition at line 19 of file eigenSoA.h.

Member Function Documentation

◆ data() [1/2]

template<typename T, int S>
__host__ __device__ constexpr Scalar* eigenSoA::ScalarSoA< T, S >::data ( )
inline

Definition at line 26 of file eigenSoA.h.

Referenced by TrackSoAHeterogeneousT< S >::qualityData().

26 { return data_; }
Scalar data_[S]
Definition: eigenSoA.h:30

◆ data() [2/2]

template<typename T, int S>
__host__ __device__ constexpr Scalar const* eigenSoA::ScalarSoA< T, S >::data ( ) const
inline

Definition at line 27 of file eigenSoA.h.

27 { return data_; }
Scalar data_[S]
Definition: eigenSoA.h:30

◆ operator()() [1/2]

template<typename T, int S>
__host__ __device__ constexpr Scalar& eigenSoA::ScalarSoA< T, S >::operator() ( int32_t  i)
inline

Definition at line 21 of file eigenSoA.h.

21 { return data_[i]; }
Scalar data_[S]
Definition: eigenSoA.h:30

◆ operator()() [2/2]

template<typename T, int S>
__device__ constexpr const Scalar eigenSoA::ScalarSoA< T, S >::operator() ( int32_t  i) const
inline

Definition at line 22 of file eigenSoA.h.

22 { return __ldg(data_ + i); }
Scalar data_[S]
Definition: eigenSoA.h:30
T __ldg(T const *x)
Definition: cudaCompat.h:137

◆ operator[]() [1/2]

template<typename T, int S>
__host__ __device__ constexpr Scalar& eigenSoA::ScalarSoA< T, S >::operator[] ( int32_t  i)
inline

Definition at line 23 of file eigenSoA.h.

23 { return data_[i]; }
Scalar data_[S]
Definition: eigenSoA.h:30

◆ operator[]() [2/2]

template<typename T, int S>
__device__ constexpr const Scalar eigenSoA::ScalarSoA< T, S >::operator[] ( int32_t  i) const
inline

Definition at line 24 of file eigenSoA.h.

24 { return __ldg(data_ + i); }
Scalar data_[S]
Definition: eigenSoA.h:30
T __ldg(T const *x)
Definition: cudaCompat.h:137

Member Data Documentation

◆ data_

template<typename T, int S>
Scalar eigenSoA::ScalarSoA< T, S >::data_[S]
private