From feee8b202d6687a32df5486012857ab992f69833 Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Fri, 13 Feb 2026 13:40:38 +0100 Subject: [PATCH] Help compiler vectorize loops in meanSplit Otherwise, it does not know dataset_, mean_ and var_ do not overlap. --- .../include/opencv2/flann/kdtree_index.h | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/flann/include/opencv2/flann/kdtree_index.h b/modules/flann/include/opencv2/flann/kdtree_index.h index 8245f7db79..ed17cecb7c 100644 --- a/modules/flann/include/opencv2/flann/kdtree_index.h +++ b/modules/flann/include/opencv2/flann/kdtree_index.h @@ -46,6 +46,11 @@ #include "random.h" #include "saving.h" +#if defined(__clang__) || defined(__GNUC__) +#define CV_RESTRICT __restrict__ +#else +#define CV_RESTRICT +#endif namespace cvflann { @@ -320,9 +325,7 @@ private: int cnt = std::min((int)SAMPLE_MEAN+1, count); for (int j = 0; j < cnt; ++j) { ElementType* v = dataset_[ind[j]]; - for (size_t k=0; k