diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt index 6de15ba6d1..9793e7181c 100644 --- a/modules/core/CMakeLists.txt +++ b/modules/core/CMakeLists.txt @@ -1,6 +1,7 @@ set(the_description "The Core Functionality") ocv_add_dispatched_file(mathfuncs_core SSE2 AVX AVX2) +ocv_add_dispatched_file(stat SSE4_2 AVX AVX2) ocv_add_module(core "${OPENCV_HAL_LINKER_LIBS}" diff --git a/modules/core/src/stat.cpp b/modules/core/src/stat.cpp index fd6e0a2f2c..b802d0a637 100644 --- a/modules/core/src/stat.cpp +++ b/modules/core/src/stat.cpp @@ -4233,7 +4233,7 @@ cvNorm( const void* imgA, const void* imgB, int normType, const void* maskarr ) namespace cv { namespace hal { -static const uchar popCountTable[] = +extern const uchar popCountTable[256] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, diff --git a/modules/core/src/stat.simd.hpp b/modules/core/src/stat.simd.hpp index 206817c5e3..43867731e3 100644 --- a/modules/core/src/stat.simd.hpp +++ b/modules/core/src/stat.simd.hpp @@ -5,6 +5,9 @@ #include "opencv2/core/hal/intrin.hpp" namespace cv { namespace hal { + +extern const uchar popCountTable[256]; + CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN // forward declarations