ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | Static Public Member Functions | List of all members
vcp::RealAccumVecSPDP Class Reference
Inheritance diagram for vcp::RealAccumVecSPDP:
vcp::RealVec< double >

Public Member Functions

vcp_inline RealAccumVecSPDP (const RealVec< double > &rcv)
 
- Public Member Functions inherited from vcp::RealVec< double >
vcp_inline operator real_vec () const
 
vcp_inline RealVec (const real_vec &d)
 
vcp_inline RealVec (const RealVec &rhs)
 
vcp_inline RealVecoperator= (const RealVec &rhs)
 
vcp_inline RealVec operator+ (const RealVec &rhs) const
 
vcp_inline RealVec operator- (const RealVec &rhs) const
 
vcp_inline RealVec operator* (const RealVec &rhs) const
 
vcp_inline RealVec operator/ (const RealVec &rhs) const
 
vcp_inline void aligned_store (double *location) const
 
vcp_inline MaskVec< double > operator< (const RealVec &rhs) const
 
vcp_inline MaskVec< double > operator!= (const RealVec &rhs) const
 
vcp_inline void aligned_load_add_store (double *location) const
 

Static Public Member Functions

static vcp_inline RealAccumVecSPDP convertCalcToAccum (const RealCalcVec &rcv)
 
static vcp_inline RealCalcVec convertAccumToCalc (const RealAccumVecSPDP &rav)
 
static vcp_inline RealAccumVecSPDP aligned_load_mask (const double *const a, MaskVec< float > m)
 
- Static Public Member Functions inherited from vcp::RealVec< double >
static vcp_inline RealVec convertCalcToAccum (const RealVec &rcv)
 
static vcp_inline RealVec convertAccumToCalc (const RealVec &rav)
 
static vcp_inline RealVec cast_MaskVec_to_RealCalcVec (const MaskVec< double > &m)
 
static vcp_inline MaskVec< double > cast_RealCalcVec_to_MaskVec (const RealVec &d)
 
static vcp_inline RealVec zero ()
 
static vcp_inline RealVec ones ()
 
static vcp_inline RealVec fmadd (const RealVec &a, const RealVec &b, const RealVec &c)
 
static vcp_inline RealVec fnmadd (const RealVec &a, const RealVec &b, const RealVec &c)
 
static vcp_inline RealVec fmsub (const RealVec &a, const RealVec &b, const RealVec &c)
 
static vcp_inline RealVec sqrt (const RealVec &rhs)
 
static vcp_inline RealVec scal_prod (const RealVec &a1, const RealVec &a2, const RealVec &a3, const RealVec &b1, const RealVec &b2, const RealVec &b3)
 
static vcp_inline RealVec set1 (const double &v)
 
static vcp_inline RealVec aligned_load (const double *const a)
 
static vcp_inline RealVec broadcast (const double *const a)
 
static vcp_inline RealVec unpack_lo (const RealVec &a, const RealVec &b)
 
static vcp_inline RealVec unpack_hi (const RealVec &a, const RealVec &b)
 
static vcp_inline RealVec apply_mask (const RealVec &d, const MaskVec< double > &m)
 
static vcp_inline RealVec aligned_load_mask (const double *const a, MaskVec< double > m)
 
static vcp_inline void horizontal_add_and_store (const RealVec &a, double *const mem_addr)
 
static vcp_inline RealVec fastReciprocal_mask (const RealVec &d, const MaskVec< double > &m)
 Calculates 1/d and applies mask m on the result \detail This could also be done by directly using operator / and method apply_mask(..), but this method is faster and more precise in some cases, because it calculates additional iterations of the Newton-Raphson method if beneficial. Furthermore, in DEBUG-mode it does an additional check for NaNs before returning the result.
 
static vcp_inline RealVec fastReciprocSqrt_mask (const RealVec &d, const MaskVec< double > &m)
 Calculates 1/sqrt(d) and applies mask m on the result \detail This could also be done by directly using operator / and methods apply_mask(..), sqrt() but this method is faster because it makes use of special intrinsics. Makes use of Newton-Raphson iterations if necessary to acquire the necessary precision Furthermore, in DEBUG-mode it does an additional check for NaNs before returning the result.
 

Additional Inherited Members

- Protected Attributes inherited from vcp::RealVec< double >
real_vec _d
 

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