nareshmlx/opencv-pr huggingface dataset:
**File:** modules/core/src/persistence.cpp
**Change Type:** modified
**Context:** PR #23865: Added new data types to cv::Mat & UMat

**Code Changes:**
```diff
@@ -56,6 +56,28 @@ char* itoa( int _val, char* buffer, int /*radix*/ )
     return ptr;
 }
 
+char* itoa( int64_t _val, char* buffer, int /*radix*/, bool _signed)
+{
+    const int radix = 10;
+    char* ptr=buffer + 23 /* enough even for 64-bit integers */;
+    int sign = _signed && _val < 0 ? -1 : 1;
+    uint64_t val = !_signed ? (uint64_t)_val : abs(_val);
```

Review comment:
right, that was a bug; fixed
**File:** modules/videoio/src/backend_plugin.cpp
**Change Type:** modified
**Context:** PR #23865: Added new data types to cv::Mat & UMat
**Review Line:** 542

**Code Changes:**
```diff
             return CV_ERROR_FAIL;
+        int depth = CV_MAT_DEPTH(type);
+        // [TODO] Remove this condition after rebuilding plugins or add a new
+        // version of plugins. Convert type from the old one to the new one (5 bits)
+        if (depth > 7) {
+            type = CV_MAKETYPE((type & 7), (type >> 3) + 1);
+        }
         cv::Mat(cv::Size(width, height), type, (void*)data, step).copyTo(*dst);
         return CV_ERROR_OK;
     }
```

Review comment:
I guess, it's a subject or a separate PR; feel free to submit it later
**File:** modules/calib/test/test_cameracalibration.cpp
**Change Type:** modified
**Context:** PR #23865: Added new data types to cv::Mat & UMat
**Review Line:** 2095

**Code Changes:**
```diff
         img_pts2.copyTo(image_points_all[1][i]);
     }
     std::vector<Size> image_sizes (2, imageSize);
-    Mat visibility_mat = Mat_<bool>::ones(2, numImgs);
-    std::vector<bool> is_fisheye(2, false);
+    Mat visibility_mat = Mat_<uchar>::ones(2, numImgs);
+    std::vector<uchar> is_fisheye(2, false);
     std::vector<int> all_flags(2, flags);
     double rms = calibrateMultiview(objectPoints, image_points_all, image_sizes, visibility_mat,
                                     Rs, Ts, Ks, distortions, rvecs, tvecs, is_fisheye, errors_mat, noArray(), false, all_flags);
```

Review comment:
yes, it's a subject or separate PR
**File:** doc/tutorials/dnn/dnn_yolo/dnn_yolo.markdown
**Change Type:** modified
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -9,46 +9,224 @@ YOLO DNNs  {#tutorial_dnn_yolo}
 |    |    |
 | -: | :- |
 | Original author | Alessandro de Oliveira Faria |
-| Compatibility | OpenCV >= 3.3.1 |
+| Extended by     | Abduragim Shtanchaev |
+| Compatibility   | OpenCV >= 4.9.0 |
+
+
+Running pre-trained YOLO model in OpenCV
```

Review comment:
Please do not use links to dl.opencv.org, but use reference to the original repo. Also I propose to duplicate export/conversion code in tutorial.
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -0,0 +1,370 @@
+/**
+ * @file yolo_detector.cpp
+ * @brief Yolo Object Detection Sample
+ * @author OpenCV team
+ */
+
+//![includes]
+#include <opencv2/dnn.hpp>
+#include <opencv2/imgproc.hpp>
```

Review comment:
it's a sample. Please use full names.
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 103

**Code Changes:**
```diff
+    rectangle(frame, Point(left, top - labelSize.height),
+              Point(left + labelSize.width, top + baseLine), Scalar::all(255), FILLED);
+    putText(frame, label, Point(left, top), FONT_HERSHEY_SIMPLEX, 0.5, Scalar());
+}
+
+void yoloPostProcessing(
+    std::vector<Mat>& outs,
+    std::vector<int>& keep_classIds,
+    std::vector<float>& keep_confidences,
+    std::vector<Rect2d>& keep_boxes,
+    float conf_threshold,
```

Review comment:
We should not make user to define a post-procesing function as there is already integrated version of it in dnn. Why not just call it? https://github.com/opencv/opencv/pull/24691
**File:** doc/tutorials/dnn/dnn_yolo/dnn_yolo.markdown
**Change Type:** modified
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -9,46 +9,224 @@ YOLO DNNs  {#tutorial_dnn_yolo}
 |    |    |
 | -: | :- |
 | Original author | Alessandro de Oliveira Faria |
-| Compatibility | OpenCV >= 3.3.1 |
+| Extended by     | Abduragim Shtanchaev |
+| Compatibility   | OpenCV >= 4.9.0 |
+
+
+Running pre-trained YOLO model in OpenCV
```

Review comment:
it makes sense to point to repo root, but not only license file.
**File:** doc/tutorials/dnn/dnn_yolo/dnn_yolo.markdown
**Change Type:** modified
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -9,46 +9,224 @@ YOLO DNNs  {#tutorial_dnn_yolo}
 |    |    |
 | -: | :- |
 | Original author | Alessandro de Oliveira Faria |
-| Compatibility | OpenCV >= 3.3.1 |
+| Extended by     | Abduragim Shtanchaev |
+| Compatibility   | OpenCV >= 4.9.0 |
+
+
+Running pre-trained YOLO model in OpenCV
```

Review comment:
let's add some description of Yolo output: general logic, output shape, semantic. Some notes on exceptions like Yolo v8.
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 103

**Code Changes:**
```diff
+    rectangle(frame, Point(left, top - labelSize.height),
+              Point(left + labelSize.width, top + baseLine), Scalar::all(255), FILLED);
+    putText(frame, label, Point(left, top), FONT_HERSHEY_SIMPLEX, 0.5, Scalar());
+}
+
+void yoloPostProcessing(
+    std::vector<Mat>& outs,
+    std::vector<int>& keep_classIds,
+    std::vector<float>& keep_confidences,
+    std::vector<Rect2d>& keep_boxes,
+    float conf_threshold,
```

Review comment:
The related API patch is not ready and requires significant rework. I propose to merge sample with own post-processing and update it later.
**File:** doc/tutorials/dnn/dnn_yolo/dnn_yolo.markdown
**Change Type:** modified
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -9,46 +9,224 @@ YOLO DNNs  {#tutorial_dnn_yolo}
 |    |    |
 | -: | :- |
 | Original author | Alessandro de Oliveira Faria |
-| Compatibility | OpenCV >= 3.3.1 |
+| Extended by     | Abduragim Shtanchaev |
+| Compatibility   | OpenCV >= 4.9.0 |
+
+
+Running pre-trained YOLO model in OpenCV
```

Review comment:
Sorry, fixed.
**File:** doc/tutorials/dnn/dnn_yolo/dnn_yolo.markdown
**Change Type:** modified
**Context:** PR #24898: Documentation for Yolo usage in Opencv

**Code Changes:**
```diff
@@ -9,46 +9,224 @@ YOLO DNNs  {#tutorial_dnn_yolo}
 |    |    |
 | -: | :- |
 | Original author | Alessandro de Oliveira Faria |
-| Compatibility | OpenCV >= 3.3.1 |
+| Extended by     | Abduragim Shtanchaev |
+| Compatibility   | OpenCV >= 4.9.0 |
+
+
+Running pre-trained YOLO model in OpenCV
```

Review comment:
There is information about output is added in the section #preprocessing and output
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 54

**Code Changes:**
```diff
+    "{ rgb         | 1 | Indicate that model works with RGB input images instead BGR ones. }"
+    "{ padvalue    | 114.0 | padding value. }"
+    "{ paddingmode | 2 | Choose one of computation backends: "
+                         "0: resize to required input size without extra processing, "
+                         "1: Image will be cropped after resize, "
+                         "2: Resize image to the desired size while preserving the aspect ratio of original image }"
+    "{ backend     |  0 | Choose one of computation backends: "
+                         "0: automatically (by default), "
+                         "1: Halide language (http://halide-lang.org/), "
+                         "2: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), "
+                         "3: OpenCV implementation, "
```

Review comment:
I think that depends on the yolo version there is only one valid padding mode as well as other pre-processing values. Can sample choose default values for them? Inside this file or using `zoo` feature (probably harder).
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 54

**Code Changes:**
```diff
+    "{ rgb         | 1 | Indicate that model works with RGB input images instead BGR ones. }"
+    "{ padvalue    | 114.0 | padding value. }"
+    "{ paddingmode | 2 | Choose one of computation backends: "
+                         "0: resize to required input size without extra processing, "
+                         "1: Image will be cropped after resize, "
+                         "2: Resize image to the desired size while preserving the aspect ratio of original image }"
+    "{ backend     |  0 | Choose one of computation backends: "
+                         "0: automatically (by default), "
+                         "1: Halide language (http://halide-lang.org/), "
+                         "2: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), "
+                         "3: OpenCV implementation, "
```

Review comment:
Could you elaborate please, did not get your point
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 54

**Code Changes:**
```diff
+    "{ rgb         | 1 | Indicate that model works with RGB input images instead BGR ones. }"
+    "{ padvalue    | 114.0 | padding value. }"
+    "{ paddingmode | 2 | Choose one of computation backends: "
+                         "0: resize to required input size without extra processing, "
+                         "1: Image will be cropped after resize, "
+                         "2: Resize image to the desired size while preserving the aspect ratio of original image }"
+    "{ backend     |  0 | Choose one of computation backends: "
+                         "0: automatically (by default), "
+                         "1: Halide language (http://halide-lang.org/), "
+                         "2: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), "
+                         "3: OpenCV implementation, "
```

Review comment:
Can you show an example of command line for YOLOv8 and YOLOv4 using this sample? I think it might be not obvious for user to collect right pre-processing flags for them.
**File:** samples/dnn/yolo_detector.cpp
**Change Type:** added
**Context:** PR #24898: Documentation for Yolo usage in Opencv
**Review Line:** 54

**Code Changes:**
```diff
+    "{ rgb         | 1 | Indicate that model works with RGB input images instead BGR ones. }"
+    "{ padvalue    | 114.0 | padding value. }"
+    "{ paddingmode | 2 | Choose one of computation backends: "
+                         "0: resize to required input size without extra processing, "
+                         "1: Image will be cropped after resize, "
+                         "2: Resize image to the desired size while preserving the aspect ratio of original image }"
+    "{ backend     |  0 | Choose one of computation backends: "
+                         "0: automatically (by default), "
+                         "1: Halide language (http://halide-lang.org/), "
+                         "2: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), "
+                         "3: OpenCV implementation, "
```

Review comment:
Default value should be 2 instead of 2.0.
**File:** platforms/android/build_static_aar.py
**Change Type:** modified
**Context:** PR #24922: Fix AAR build with static OpenCV libraries for Android.
**Review Line:** 193

**Code Changes:**
```diff
         shutil.copy(path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", "") + ".hpp"),
                     path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "") + ".hpp"))
-        shutil.copytree(path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", "")),
-                        path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "")))
+        module_include_folder = path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", ""))
+        if os.path.exists(module_include_folder):
+            shutil.copytree(module_include_folder,
+                            path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "")))
 
         # Adding dependencies list
         module_json_text = {
```

Review comment:
How will it work without headers?
**File:** platforms/android/build_static_aar.py
**Change Type:** modified
**Context:** PR #24922: Fix AAR build with static OpenCV libraries for Android.
**Review Line:** 193

**Code Changes:**
```diff
         shutil.copy(path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", "") + ".hpp"),
                     path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "") + ".hpp"))
-        shutil.copytree(path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", "")),
-                        path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "")))
+        module_include_folder = path.join(sdk_dir, "sdk/native/jni/include/opencv2/" + lib.replace("opencv_", ""))
+        if os.path.exists(module_include_folder):
+            shutil.copytree(module_include_folder,
+                            path.join(AAR_UNZIPPED_DIR, "prefab/modules/" + lib + "/include/opencv2/" + lib.replace("opencv_", "")))
 
         # Adding dependencies list
         module_json_text = {
```

Review comment:
In particular stereo module in 5.x has onmy main header `stereo.hpp`, but there is no folder with "detailed" includes like for many others.
**File:** modules/java/test/android_test/settings.gradle
**Change Type:** added
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -0,0 +1,6 @@
+rootProject.name = 'android_test'
+
+include ':opencv'
+project(':opencv').projectDir = new File('../opencv_android/opencv')
+
+include ':tests_module'
```

Review comment:
I believe it should be cmake template. Reference to build/opencv-abdroid/sdk should be placed here.
**File:** modules/java/test/android_test/src/org/opencv/test/OpenCVTestRunner.java
**Change Type:** modified
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -4,52 +4,29 @@
 import java.io.IOException;
 import junit.framework.Assert;
 
-import org.opencv.android.BaseLoaderCallback;
-import org.opencv.android.LoaderCallbackInterface;
 import org.opencv.android.OpenCVLoader;
 import org.opencv.android.Utils;
 import org.opencv.core.Mat;
 
```

Review comment:
please remove
**File:** modules/java/test/android_test/CMakeLists.txt
**Change Type:** modified
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -1,77 +1,24 @@
-if(NOT ANT_EXECUTABLE OR NOT ANDROID_EXECUTABLE OR NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
-  return()
-endif()
+project(opencv_test_android)
 
-project(opencv_test_java)
+set(OPENCV_ANDROID_TEST_DIR "${OpenCV_BINARY_DIR}/android_test" CACHE INTERNAL "")
+file(REMOVE_RECURSE "${OPENCV_ANDROID_TEST_DIR}")
 
```

Review comment:
There is no need to list modules and iterate over them. All pre-module tests are collected by java bindings generator in build folder in `opencv-build/modules/java_bindings_generator/gen/test/org/opencv/test`. Just add it to to the test project.
**File:** modules/java/test/android_test/CMakeLists.txt
**Change Type:** modified
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -1,77 +1,24 @@
-if(NOT ANT_EXECUTABLE OR NOT ANDROID_EXECUTABLE OR NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
-  return()
-endif()
+project(opencv_test_android)
 
-project(opencv_test_java)
+set(OPENCV_ANDROID_TEST_DIR "${OpenCV_BINARY_DIR}/android_test" CACHE INTERNAL "")
+file(REMOVE_RECURSE "${OPENCV_ANDROID_TEST_DIR}")
 
```

Review comment:
Skips should be implemented in the test code.
**File:** modules/java/test/android_test/CMakeLists.txt
**Change Type:** modified
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -1,77 +1,24 @@
-if(NOT ANT_EXECUTABLE OR NOT ANDROID_EXECUTABLE OR NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
-  return()
-endif()
+project(opencv_test_android)
 
-project(opencv_test_java)
+set(OPENCV_ANDROID_TEST_DIR "${OpenCV_BINARY_DIR}/android_test" CACHE INTERNAL "")
+file(REMOVE_RECURSE "${OPENCV_ANDROID_TEST_DIR}")
 
```

Review comment:
This folder exists only when building without DANDROID
**File:** CMakeLists.txt
**Change Type:** modified
**Context:** PR #24910: Modified Java tests to run on Android

**Code Changes:**
```diff
@@ -1884,7 +1884,7 @@ if(BUILD_JAVA)
     status("    JNI:"         JNI_INCLUDE_DIRS    THEN "${JNI_INCLUDE_DIRS}"                                       ELSE NO)
   endif()
   status("    Java wrappers:" HAVE_opencv_java                                                            THEN "YES (${OPENCV_JAVA_SDK_BUILD_TYPE})" ELSE NO)
-  status("    Java tests:"    BUILD_TESTS AND opencv_test_java_BINARY_DIR                                 THEN YES ELSE NO)
+  status("    Java tests:"    BUILD_TESTS AND (opencv_test_java_BINARY_DIR OR opencv_test_android_BINARY_DIR) THEN YES ELSE NO)
 endif()
 
 # ========================== Objective-C =======================
```

Review comment:
It is possible to build Android native code only. Without any Java code or Java tests. Check should be fixed.
**File:** modules/java/test/android_test/tests_module/build.gradle.in
**Change Type:** added
**Context:** PR #24910: Modified Java tests to run on Android
**Review Line:** 11

**Code Changes:**
```diff
+    defaultConfig {
+        applicationId "org.opencv.tests"
+        minSdkVersion @ANDROID_MIN_SDK_VERSION@
+        targetSdkVersion @ANDROID_TARGET_SDK_VERSION@
+        versionCode 301
+        versionName "3.01"
+
+        testInstrumentationRunner "org.opencv.test.OpenCVTestRunner"
+    }
+    buildTypes {
+        release {
```

Review comment:
> version is it correct?
**File:** modules/java/test/android_test/tests_module/build.gradle.in
**Change Type:** added
**Context:** PR #24910: Modified Java tests to run on Android
**Review Line:** 11

**Code Changes:**
```diff
+    defaultConfig {
+        applicationId "org.opencv.tests"
+        minSdkVersion @ANDROID_MIN_SDK_VERSION@
+        targetSdkVersion @ANDROID_TARGET_SDK_VERSION@
+        versionCode 301
+        versionName "3.01"
+
+        testInstrumentationRunner "org.opencv.test.OpenCVTestRunner"
+    }
+    buildTypes {
+        release {
```

Review comment:
Not sure, but it's the same everywhere. Looks like we need to substitute OpenCV version here and in samples.
**File:** modules/java/test/android_test/tests_module/build.gradle.in
**Change Type:** added
**Context:** PR #24910: Modified Java tests to run on Android
**Review Line:** 11

**Code Changes:**
```diff
+    defaultConfig {
+        applicationId "org.opencv.tests"
+        minSdkVersion @ANDROID_MIN_SDK_VERSION@
+        targetSdkVersion @ANDROID_TARGET_SDK_VERSION@
+        versionCode 301
+        versionName "3.01"
+
+        testInstrumentationRunner "org.opencv.test.OpenCVTestRunner"
+    }
+    buildTypes {
+        release {
```

Review comment:
Let's do it in a separate PR.
**File:** modules/core/include/opencv2/core/opencl/opencl_info.hpp
**Change Type:** modified
**Context:** PR #24918: core(OpenCL): optimize convertTo() with CV_16F (convertFp16() replacement) - relates #24909 relates #24917 relates #24892 Performance chang...
**Review Line:** 144

**Code Changes:**
```diff
@@ -141,13 +141,13 @@ static void dumpOpenCLInformation()
         DUMP_MESSAGE_STDOUT("    Max memory allocation size = " << maxMemAllocSizeStr);
         DUMP_CONFIG_PROPERTY("cv_ocl_current_maxMemAllocSize", device.maxMemAllocSize());
 
-        const char* doubleSupportStr = device.doubleFPConfig() > 0 ? "Yes" : "No";
+        const char* doubleSupportStr = device.hasFP64() ? "Yes" : "No";
         DUMP_MESSAGE_STDOUT("    Double support = " << doubleSupportStr);
-        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.doubleFPConfig() > 0);
+        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.hasFP64());
 
-        const char* halfSupportStr = device.halfFPConfig() > 0 ? "Yes" : "No";
```

Review comment:
So what is going to happen with `doubleFPConfig` and `halfFPConfig`. Are they deprecating as well?
**File:** modules/core/include/opencv2/core/opencl/opencl_info.hpp
**Change Type:** modified
**Context:** PR #24918: core(OpenCL): optimize convertTo() with CV_16F (convertFp16() replacement) - relates #24909 relates #24917 relates #24892 Performance chang...
**Review Line:** 144

**Code Changes:**
```diff
@@ -141,13 +141,13 @@ static void dumpOpenCLInformation()
         DUMP_MESSAGE_STDOUT("    Max memory allocation size = " << maxMemAllocSizeStr);
         DUMP_CONFIG_PROPERTY("cv_ocl_current_maxMemAllocSize", device.maxMemAllocSize());
 
-        const char* doubleSupportStr = device.doubleFPConfig() > 0 ? "Yes" : "No";
+        const char* doubleSupportStr = device.hasFP64() ? "Yes" : "No";
         DUMP_MESSAGE_STDOUT("    Double support = " << doubleSupportStr);
-        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.doubleFPConfig() > 0);
+        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.hasFP64());
 
-        const char* halfSupportStr = device.halfFPConfig() > 0 ? "Yes" : "No";
```

Review comment:
No, they are still needed if we want to compute with proper inf/nans support.
**File:** modules/core/include/opencv2/core/opencl/opencl_info.hpp
**Change Type:** modified
**Context:** PR #24918: core(OpenCL): optimize convertTo() with CV_16F (convertFp16() replacement) - relates #24909 relates #24917 relates #24892 Performance chang...
**Review Line:** 144

**Code Changes:**
```diff
@@ -141,13 +141,13 @@ static void dumpOpenCLInformation()
         DUMP_MESSAGE_STDOUT("    Max memory allocation size = " << maxMemAllocSizeStr);
         DUMP_CONFIG_PROPERTY("cv_ocl_current_maxMemAllocSize", device.maxMemAllocSize());
 
-        const char* doubleSupportStr = device.doubleFPConfig() > 0 ? "Yes" : "No";
+        const char* doubleSupportStr = device.hasFP64() ? "Yes" : "No";
         DUMP_MESSAGE_STDOUT("    Double support = " << doubleSupportStr);
-        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.doubleFPConfig() > 0);
+        DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.hasFP64());
 
-        const char* halfSupportStr = device.halfFPConfig() > 0 ? "Yes" : "No";
```

Review comment:
I checked `doubleFPConfig` in the whole opencv project and it is basically used like this, ```cpp bool doubleSupport = ocl::Device::getDefault().doubleFPConfig() > 0 ``` --- > they are still needed if we want to compute with proper inf/nans support Did I miss anything here? Or it is in the user code instead?