#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>
Go to the source code of this file.
|
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_INLINE T | vAlgs::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...
|
|