apply the workaround to correct range
authorTomoaki Teshima <tomoaki.teshima@gmail.com>
Thu, 22 Mar 2018 09:28:47 +0000 (18:28 +0900)
committerTomoaki Teshima <tomoaki.teshima@gmail.com>
Thu, 22 Mar 2018 09:28:47 +0000 (18:28 +0900)
modules/calib3d/src/ap3p.cpp

index c22a2db..5a7fc60 100644 (file)
@@ -45,7 +45,8 @@ void solveQuartic(const double *factors, double *realRoots) {
     complex<double> sqrt_2m = sqrt(static_cast<complex<double> >(-2 * p4 / 3 + t));
     double B_4A = -a3 / (4 * a4);
     double complex1 = 4 * p4 / 3 + t;
-#if defined(__clang__) && defined(__arm__) && __clang_major__ == 3 && __clang_minor__ <= 7 && !defined(__ANDROID__)
+#if defined(__clang__) && defined(__arm__) && (__clang_major__ == 3 || __clang_minor__ == 4) && !defined(__ANDROID__)
+    // details: https://github.com/opencv/opencv/issues/11135
     // details: https://github.com/opencv/opencv/issues/11056
     complex<double> complex2 = 2 * q4;
     complex2 = complex<double>(complex2.real() / sqrt_2m.real(), 0);