ATLAS Offline Software
Namespaces | Functions
GSFFindIndexOfMinimum.h File Reference
#include "CxxUtils/features.h"
#include "CxxUtils/inline_hints.h"
#include "CxxUtils/restrict.h"
#include "CxxUtils/vec.h"
#include "GaudiKernel/Kernel.h"
#include "TrkGaussianSumFilterUtils/GsfConstants.h"
#include <algorithm>
#include <memory>
#include <numeric>
#include <climits>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 vAlgs
 

Functions

template<size_t ISA_WIDTH>
constexpr size_t vAlgs::alignmentForArray ()
 In the following ISA_WIDTH is the ISA width in bits e.g 128 for SSE 256 for AVX2 etc For the cases of interest/tested doing 4 simd vectors at a time seemed best. More...
 
template<size_t ISA_WIDTH, typename T >
constexpr size_t vAlgs::strideOfNumSIMDVec (size_t NumSIMDVec)
 returns the STRIDE in units of elements covered by NumSIMDVec simd vectors of type T for the specific ISA For example for a 256 bit, a SIMD vector is 8 floats So 4 simd vectors correspond to 32 elements. More...
 
template<size_t STRIDE>
constexpr int vAlgs::numPadded (const int n)
 Given a number n returns a new n >= n that is padded to the required STRIDE. More...
 
template<size_t ISA_WIDTH, typename T >
ATH_ALWAYS_INLINEvAlgs::vFindMinimum (const T *distancesIn, int n)
 Find the minimum element in the array of distances processing four simd vectors at a time. More...
 
template<size_t ISA_WIDTH, typename T >
ATH_ALWAYS_INLINE int vAlgs::vIdxOfValue (const T value, const T *distancesIn, int n)
 Find the index of an element in the array of distances processing four simd vectors at a time. More...
 
template<int ISA_WIDTH, typename T >
ATH_ALWAYS_INLINE int vAlgs::vIdxOfMin (const T *distancesIn, int n)
 Find the index of the minimum in the array of distances. More...