When multiplying small matrices, I get different results when using a 2x3 fixed sized matrix than a dynamic Mat_<float>.
cv::Mat_<float> B = (cv::Mat_<float>(2, 3) << 658.95428, -21.682049,
10.625885, 21.246431, 660.61816, 22.65921);
cv::Mat_<float> H = B.t() * B;
cv::Matx23f Bx (B);
cv::Matx33f Hx = Bx.t() * Bx;
std::cout << cv::norm(H, cv::Mat_<float>(Hx, false)) << "\n";
//0.000410005
Is this really expected?
I'm using 3.2, compiling with Clang++ and -O3, but GCC 5.4 returns the same error.