CbmRoot
Loading...
Searching...
No Matches
KfUtils.h File Reference
#include "KfDefs.h"
#include "KfSimd.h"
#include <array>
#include <sstream>
Include dependency graph for KfUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

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

Namespaces

namespace  cbm
 
namespace  cbm::algo
 
namespace  cbm::algo::kf
 
namespace  cbm::algo::kf::utils
 
namespace  cbm::algo::kf::utils::simd
 
namespace  cbm::algo::kf::utils::math
 

Typedefs

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

Functions

fvec cbm::algo::kf::utils::iif (const fmask &m, const fvec &t, const fvec &f)
 
fvec cbm::algo::kf::utils::fabs (const fvec &v)
 
template<typename T >
cbm::algo::kf::utils::iif (bool b, T t, T f)
 
template<typename T >
cbm::algo::kf::utils::fabs (const T &v)
 
template<typename T >
bool cbm::algo::kf::utils::isFull (const T &m)
 
template<typename T >
cbm::algo::kf::utils::max (const T &a, const T &b)
 
bool cbm::algo::kf::utils::IsLikely (bool b)
 tell the CPU that the bool condition is likely to be true
 
bool cbm::algo::kf::utils::IsUnlikely (bool b)
 
template<typename T >
bool cbm::algo::kf::utils::IsUndefined (const T &val)
 Checks whether a variable of a particular type defined.
 
template<typename T >
bool cbm::algo::kf::utils::IsFinite (const T &val)
 Checks whether a variable of a particular type is finite.
 
template<typename DataT >
void cbm::algo::kf::utils::PrintSIMDmsg (std::stringstream &msg, DataT &v)
 Stingstream output operation for simd data.
 
template<typename DataT >
void cbm::algo::kf::utils::CheckSimdVectorEquality (DataT, const char *)
 Checks, if a SIMD vector horizontally equal.
 
template<>
void cbm::algo::kf::utils::CheckSimdVectorEquality (fvec v, const char *name)
 Checks, if a SIMD vector horizontally equal.
 
template<typename DataT , typename DataOut >
DataOut cbm::algo::kf::utils::simd::Cast (const DataT &val)
 Converts a value of type DataT to type DataOut.
 
template<>
float cbm::algo::kf::utils::simd::Cast (const fvec &val)
 Converts a value of type DataT to type DataOut.
 
template<>
double cbm::algo::kf::utils::simd::Cast (const fvec &val)
 Converts a value of type DataT to type DataOut.
 
template<typename DataT , typename DataOut >
DataOut cbm::algo::kf::utils::simd::Cast (const DataT &val, size_t)
 Converts a value of type DataT at a specific index to type DataOut.
 
template<typename DataT , typename DataOut , size_t N>
std::array< DataOut, N > cbm::algo::kf::utils::simd::Cast (const std::array< DataT, N > &arr, size_t i)
 
template<typename DataT , typename DataOut , size_t N>
std::array< DataOut, N > cbm::algo::kf::utils::simd::Cast (const std::array< DataT, N > &arr)
 
template<>
float cbm::algo::kf::utils::simd::Cast (const fvec &val, size_t i)
 Converts a value of type DataT at a specific index to type DataOut.
 
template<>
double cbm::algo::kf::utils::simd::Cast (const fvec &val, size_t i)
 Converts a value of type DataT at a specific index to type DataOut.
 
template<typename DataT >
size_t cbm::algo::kf::utils::simd::Size ()
 Returns the number of elements available for a given data type.
 
template<>
size_t cbm::algo::kf::utils::simd::Size< fvec > ()
 Returns the number of elements available for a given data type.
 
template<typename DataT >
DataT cbm::algo::kf::utils::simd::One ()
 Returns a value of the data type set to one.
 
template<>
fvec cbm::algo::kf::utils::simd::One< fvec > ()
 Returns a value of the data type set to one.
 
template<typename DataT , typename DataIn >
void cbm::algo::kf::utils::simd::SetEntry (DataT &out, DataIn in, size_t)
 Sets a value at a specific index in the output data.
 
template<typename DataIn >
void cbm::algo::kf::utils::simd::SetEntry (fvec &out, DataIn in, size_t i)
 Sets a value at a specific index in the output data.
 
void cbm::algo::kf::utils::math::CholeskyFactorization (const double a[], const int n, int nn, double u[], int *nullty, int *ifault)
 
void cbm::algo::kf::utils::math::SymInv (const double a[], const int n, double c[], double w[], int *nullty, int *ifault)