diff --git a/modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp b/modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp index 8a47b5d437..3f96feb287 100644 --- a/modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp +++ b/modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp @@ -606,9 +606,9 @@ void vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(const vpHomogeneousM cv::v_float64x2 vx, vy, vz; cv::v_load_deinterleave(ptr_point_cloud, vx, vy, vz); - cv::v_float64x2 va1 = vnz*vy - vny*vz; - cv::v_float64x2 va2 = vnx*vz - vnz*vx; - cv::v_float64x2 va3 = vny*vx - vnx*vy; + cv::v_float64x2 va1 = cv::v_sub(cv::v_mul(vnz, vy), cv::v_mul(vny, vz)); // vnz*vy - vny*vz + cv::v_float64x2 va2 = cv::v_sub(cv::v_mul(vnx, vz), cv::v_mul(vnz, vx)); // vnx*vz - vnz*vx + cv::v_float64x2 va3 = cv::v_sub(cv::v_mul(vny, vx), cv::v_mul(vnx, vy)); // vny*vx - vnx*vy cv::v_float64x2 vnxy = cv::v_combine_low(vnx, vny); cv::v_store(ptr_L, vnxy); @@ -630,7 +630,7 @@ void vpMbtFaceDepthDense::computeInteractionMatrixAndResidu(const vpHomogeneousM cv::v_store(ptr_L, vnxy); ptr_L += 2; - cv::v_float64x2 verr = vd + cv::v_muladd(vnx, vx, cv::v_muladd(vny, vy, vnz*vz)); + cv::v_float64x2 verr = cv::v_add(vd, cv::v_muladd(vnx, vx, cv::v_muladd(vny, vy, cv::v_mul(vnz, vz)))); cv::v_store(ptr_error, verr); ptr_error += 2; #elif USE_SSE