CbmRoot
Loading...
Searching...
No Matches
cbm::algo::kf::utils Namespace Reference

Namespaces

namespace  math
 
namespace  simd
 

Classes

struct  EnumClassHash
 Hash for unordered_map with enum class keys. More...
 
class  VecCopy
 Copies all/one SIMD entries from one class to the other class. More...
 
class  VecCopySpec
 
class  VecCopySpec< TdataA, TdataB, false, false >
 
class  VecCopySpec< TdataA, TdataB, false, true >
 
class  VecCopySpec< TdataA, TdataB, true, false >
 
class  VecCopySpec< TdataA, TdataB, true, true >
 

Typedefs

template<typename T >
using scaltype = typename std::conditional<std::is_same<T, fvec>::value, fscal, T>::type
 
template<typename T >
using masktype = typename std::conditional<std::is_same<T, fvec>::value, fmask, bool>::type
 

Functions

template<typename DataT >
void PrintSIMDmsg (std::stringstream &msg, DataT &v)
 Stingstream output operation for simd data.
 
template<>
void CheckSimdVectorEquality (fvec v, const char *name)
 Checks, if a SIMD vector horizontally equal TODO: Find this method in the VC!
 
fvec iif (const fmask &m, const fvec &t, const fvec &f)
 
fvec fabs (const fvec &v)
 
template<typename T >
iif (bool b, T t, T f)
 
template<typename T >
fabs (const T &v)
 
template<typename T >
bool isFull (const T &m)
 
template<typename T >
max (const T &a, const T &b)
 
bool IsLikely (bool b)
 tell the CPU that the bool condition is likely to be true
 
bool IsUnlikely (bool b)
 
template<typename T >
bool IsUndefined (const T &val)
 Checks whether a variable of a particular type defined.
 
template<typename T >
bool IsFinite (const T &val)
 Checks whether a variable of a particular type is finite.
 
template<typename DataT >
void CheckSimdVectorEquality (DataT, const char *)
 Checks, if a SIMD vector horizontally equal.
 
template<>
void CheckSimdVectorEquality (fvec v, const char *name)
 Checks, if a SIMD vector horizontally equal.
 

Detailed Description

Namespace contains compile-time constants definition for the CA tracking algorithm

Typedef Documentation

◆ masktype

template<typename T >
using cbm::algo::kf::utils::masktype = typename std::conditional<std::is_same<T, fvec>::value, fmask, bool>::type

Definition at line 27 of file KfUtils.h.

◆ scaltype

template<typename T >
using cbm::algo::kf::utils::scaltype = typename std::conditional<std::is_same<T, fvec>::value, fscal, T>::type

Definition at line 24 of file KfUtils.h.

Function Documentation

◆ CheckSimdVectorEquality() [1/3]

template<typename DataT >
void cbm::algo::kf::utils::CheckSimdVectorEquality ( DataT ,
const char *  )
inline

Checks, if a SIMD vector horizontally equal.

Definition at line 125 of file KfUtils.h.

◆ CheckSimdVectorEquality() [2/3]

template<>
void cbm::algo::kf::utils::CheckSimdVectorEquality ( fvec v,
const char * name )

Checks, if a SIMD vector horizontally equal TODO: Find this method in the VC!

Checks, if a SIMD vector horizontally equal.

Definition at line 29 of file KfUtils.cxx.

References PrintSIMDmsg(), and v.

Referenced by cbm::algo::ca::Station< DataT >::CheckConsistency(), cbm::algo::kf::FieldSlice< T >::CheckConsistency(), and cbm::algo::kf::FieldValue< T >::CheckConsistency().

◆ CheckSimdVectorEquality() [3/3]

template<>
void cbm::algo::kf::utils::CheckSimdVectorEquality ( fvec v,
const char * name )

Checks, if a SIMD vector horizontally equal.

Note
Throws std::logic_error, if check fails TODO: Find this method in the VC!

Checks, if a SIMD vector horizontally equal.

Definition at line 29 of file KfUtils.cxx.

References PrintSIMDmsg(), and v.

Referenced by cbm::algo::ca::Station< DataT >::CheckConsistency(), cbm::algo::kf::FieldSlice< T >::CheckConsistency(), and cbm::algo::kf::FieldValue< T >::CheckConsistency().

◆ fabs() [1/2]

◆ fabs() [2/2]

template<typename T >
T cbm::algo::kf::utils::fabs ( const T & v)
inline

Definition at line 39 of file KfUtils.h.

References v.

◆ iif() [1/2]

template<typename T >
T cbm::algo::kf::utils::iif ( bool b,
T t,
T f )
inline

Definition at line 33 of file KfUtils.h.

◆ iif() [2/2]

◆ IsFinite()

template<typename T >
bool cbm::algo::kf::utils::IsFinite ( const T & val)
inline

Checks whether a variable of a particular type is finite.

Parameters
valValue to check

Definition at line 100 of file KfUtils.h.

References cbm::algo::kf::defs::Undef.

Referenced by cbm::algo::kf::TrackParamBase< T >::IsFinite().

◆ isFull()

template<typename T >
bool cbm::algo::kf::utils::isFull ( const T & m)
inline

Definition at line 45 of file KfUtils.h.

Referenced by cbm::algo::kf::TrackKalmanFilter< DataT >::Extrapolate().

◆ IsLikely()

bool cbm::algo::kf::utils::IsLikely ( bool b)
inline

tell the CPU that the bool condition is likely to be true

Definition at line 71 of file KfUtils.h.

◆ IsUndefined()

template<typename T >
bool cbm::algo::kf::utils::IsUndefined ( const T & val)
inline

Checks whether a variable of a particular type defined.

Parameters
valValue to be checked

Definition at line 78 of file KfUtils.h.

References isnan(), and cbm::algo::kf::defs::Undef.

◆ IsUnlikely()

bool cbm::algo::kf::utils::IsUnlikely ( bool b)
inline

Definition at line 72 of file KfUtils.h.

Referenced by cbm::algo::ca::GridArea::GetNextGridEntry().

◆ max()

template<typename T >
T cbm::algo::kf::utils::max ( const T & a,
const T & b )
inline

◆ PrintSIMDmsg()

template<typename DataT >
void cbm::algo::kf::utils::PrintSIMDmsg ( std::stringstream & msg,
DataT & v )

Stingstream output operation for simd data.

Definition at line 13 of file KfUtils.cxx.

References v.

Referenced by CheckSimdVectorEquality().