From 39ab325f0af12308990cbf1b8324423839d38eea Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 8 Feb 2024 10:10:41 -0500 Subject: [PATCH] avoid bogus indicies --- .../six.sicd/source/NearestNeighbors_unseq.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/six/modules/c++/six.sicd/source/NearestNeighbors_unseq.cpp b/six/modules/c++/six.sicd/source/NearestNeighbors_unseq.cpp index 61b73c1cf..59601444b 100644 --- a/six/modules/c++/six.sicd/source/NearestNeighbors_unseq.cpp +++ b/six/modules/c++/six.sicd/source/NearestNeighbors_unseq.cpp @@ -125,19 +125,22 @@ inline bool all_of(sisd_intv m) #pragma warning(disable: 4723) // potential divide by 0 #endif #include "six/sicd/vectorclass/version2/vectorclass.h" -#include "six/sicd/vectorclass/version2/vector.h" #include "six/sicd/vectorclass/version2/vectormath_trig.h" #include "six/sicd/vectorclass/complex/complexvec1.h" +#include "six/sicd/vectorclass/simd/simd.h" #if _MSC_VER #pragma warning(pop) #endif constexpr auto vcl_elements_per_iteration = 8; -using vcl_intv = vcl::Vec; -using vcl_floatv = vcl::Vec; +using vcl_intv = vcl::Vec8i; +using vcl_floatv = vcl::Vec8f; -template -inline ptrdiff_t ssize(const vcl::Vec& v) noexcept +inline ptrdiff_t ssize(const vcl_intv& v) noexcept +{ + return v.size(); +} +inline ptrdiff_t ssize(const vcl_floatv& v) noexcept { return v.size(); } @@ -556,8 +559,8 @@ static auto nearest(std::span magnitudes, const FloatV& value) */ const auto it = ::lower_bound(magnitudes, value); - static const IntV begin = 0; - static const auto& zero = begin; + const IntV begin = 0; + const auto& zero = begin; if (all_of(it == begin)) { return zero;