VecCore 0.8.1
C++ Library for Portable SIMD Vectorization
Loading...
Searching...
No Matches
vecCore::math Namespace Reference

Functions

template<typename T , uint32_t N>
VECCORE_FORCE_INLINE void SinCos (const UME::SIMD::SIMDVec_f< T, N > &x, UME::SIMD::SIMDVec_f< T, N > *s, UME::SIMD::SIMDVec_f< T, N > *c)
 
template<typename T , uint32_t N>
VECCORE_FORCE_INLINE UME::SIMD::SIMDVecMask< N > IsInf (const UME::SIMD::SIMDVec_f< T, N > &x)
 
template<typename T >
VECCORE_FORCE_INLINE Vc::Scalar::Mask< T > IsInf (const Vc::Scalar::Vector< T > &x)
 
template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdArray< T, N > CopySign (const Vc::SimdArray< T, N > &x, const Vc::SimdArray< T, N > &y)
 
template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdArray< T, N > Tan (const Vc::SimdArray< T, N > &x)
 
template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdMaskArray< T, N > IsInf (const Vc::SimdArray< T, N > &x)
 
template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Vector< T, Abi > CopySign (const Vc::Vector< T, Abi > &x, const Vc::Vector< T, Abi > &y)
 
template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Vector< T, Abi > Tan (const Vc::Vector< T, Abi > &x)
 
template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Mask< T, Abi > IsInf (const Vc::Vector< T, Abi > &x)
 
template<class T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEMin (const T &a, const T &b)
 
template<class T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEMax (const T &a, const T &b)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEMin (const T &a, const T &b, const T &c)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEMax (const T &a, const T &b, const T &c)
 
template<typename T , template< typename > class Wrapper>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Wrapper< T > Min (const Wrapper< T > &a, const Wrapper< T > &b)
 
template<typename T , template< typename > class Wrapper>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Wrapper< T > Max (const Wrapper< T > &a, const Wrapper< T > &b)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICESign (const T &x)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void SinCos (const T &x, T *s, T *c)
 
template<>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void SinCos (const float &x, float *s, float *c)
 
template<>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void SinCos (const double &x, double *s, double *c)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEFrexp (const T &x, int *exp)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICELdexp (const T &x, int exp)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEModf (const T &x, T *intpart)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICERsqrt (const T &x)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEScalbn (const T &x, int n)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICEScalbln (const T &x, long int n)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Mask< T > IsInf (const T &x)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Mask< T > IsNegative (const T &x)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr T Deg (const T &x)
 
template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr T Rad (const T &x)
 

Function Documentation

◆ CopySign() [1/2]

template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdArray< T, N > vecCore::math::CopySign ( const Vc::SimdArray< T, N > &  x,
const Vc::SimdArray< T, N > &  y 
)

Definition at line 117 of file VcSimdArray.h.

◆ CopySign() [2/2]

template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Vector< T, Abi > vecCore::math::CopySign ( const Vc::Vector< T, Abi > &  x,
const Vc::Vector< T, Abi > &  y 
)

Definition at line 118 of file VcVector.h.

◆ Deg()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr T vecCore::math::Deg ( const T &  x)
constexpr

Definition at line 291 of file VecMath.h.

◆ Frexp()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Frexp ( const T &  x,
int *  exp 
)

Definition at line 189 of file VecMath.h.

◆ IsInf() [1/5]

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Mask< T > vecCore::math::IsInf ( const T &  x)

Definition at line 272 of file VecMath.h.

◆ IsInf() [2/5]

template<typename T , uint32_t N>
VECCORE_FORCE_INLINE UME::SIMD::SIMDVecMask< N > vecCore::math::IsInf ( const UME::SIMD::SIMDVec_f< T, N > &  x)

Definition at line 204 of file UMESimdCommon.h.

◆ IsInf() [3/5]

template<typename T >
VECCORE_FORCE_INLINE Vc::Scalar::Mask< T > vecCore::math::IsInf ( const Vc::Scalar::Vector< T > &  x)

Definition at line 85 of file VcScalar.h.

◆ IsInf() [4/5]

template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdMaskArray< T, N > vecCore::math::IsInf ( const Vc::SimdArray< T, N > &  x)

Definition at line 157 of file VcSimdArray.h.

◆ IsInf() [5/5]

template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Mask< T, Abi > vecCore::math::IsInf ( const Vc::Vector< T, Abi > &  x)

Definition at line 159 of file VcVector.h.

◆ IsNegative()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Mask< T > vecCore::math::IsNegative ( const T &  x)

Definition at line 283 of file VecMath.h.

◆ Ldexp()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Ldexp ( const T &  x,
int  exp 
)

Definition at line 200 of file VecMath.h.

◆ Max() [1/3]

template<class T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Max ( const T &  a,
const T &  b 
)

Definition at line 79 of file VecMath.h.

◆ Max() [2/3]

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Max ( const T &  a,
const T &  b,
const T &  c 
)

Definition at line 95 of file VecMath.h.

◆ Max() [3/3]

template<typename T , template< typename > class Wrapper>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Wrapper< T > vecCore::math::Max ( const Wrapper< T > &  a,
const Wrapper< T > &  b 
)

Definition at line 111 of file VecMath.h.

◆ Min() [1/3]

template<class T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Min ( const T &  a,
const T &  b 
)

Definition at line 71 of file VecMath.h.

◆ Min() [2/3]

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Min ( const T &  a,
const T &  b,
const T &  c 
)

Definition at line 87 of file VecMath.h.

◆ Min() [3/3]

template<typename T , template< typename > class Wrapper>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE Wrapper< T > vecCore::math::Min ( const Wrapper< T > &  a,
const Wrapper< T > &  b 
)

Definition at line 103 of file VecMath.h.

◆ Modf()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Modf ( const T &  x,
T *  intpart 
)

Definition at line 211 of file VecMath.h.

◆ Rad()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE constexpr T vecCore::math::Rad ( const T &  x)
constexpr

Definition at line 299 of file VecMath.h.

◆ Rsqrt()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Rsqrt ( const T &  x)

Definition at line 222 of file VecMath.h.

◆ Scalbln()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Scalbln ( const T &  x,
long int  n 
)

Definition at line 244 of file VecMath.h.

◆ Scalbn()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Scalbn ( const T &  x,
int  n 
)

Definition at line 233 of file VecMath.h.

◆ Sign()

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE T vecCore::math::Sign ( const T &  x)

Definition at line 121 of file VecMath.h.

◆ SinCos() [1/4]

template<>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void vecCore::math::SinCos ( const double &  x,
double *  s,
double *  c 
)

Definition at line 156 of file VecMath.h.

◆ SinCos() [2/4]

template<>
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void vecCore::math::SinCos ( const float &  x,
float *  s,
float *  c 
)

Definition at line 148 of file VecMath.h.

◆ SinCos() [3/4]

template<typename T >
VECCORE_FORCE_INLINE VECCORE_ATT_HOST_DEVICE void vecCore::math::SinCos ( const T &  x,
T *  s,
T *  c 
)

Definition at line 140 of file VecMath.h.

◆ SinCos() [4/4]

template<typename T , uint32_t N>
VECCORE_FORCE_INLINE void vecCore::math::SinCos ( const UME::SIMD::SIMDVec_f< T, N > &  x,
UME::SIMD::SIMDVec_f< T, N > *  s,
UME::SIMD::SIMDVec_f< T, N > *  c 
)

Definition at line 171 of file UMESimdCommon.h.

◆ Tan() [1/2]

template<typename T , size_t N>
VECCORE_FORCE_INLINE Vc::SimdArray< T, N > vecCore::math::Tan ( const Vc::SimdArray< T, N > &  x)

Definition at line 148 of file VcSimdArray.h.

◆ Tan() [2/2]

template<typename T , class Abi >
VECCORE_FORCE_INLINE Vc::Vector< T, Abi > vecCore::math::Tan ( const Vc::Vector< T, Abi > &  x)

Definition at line 150 of file VcVector.h.