fixed a bug which caused incorrect work of function eigen()
This commit is contained in:
parent
3c645ae20c
commit
951a3d6c7a
@ -278,7 +278,7 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( iters = 0; iters < maxIters; iters++ )
|
if( n > 1 ) for( iters = 0; iters < maxIters; iters++ )
|
||||||
{
|
{
|
||||||
// find index (k,l) of pivot p
|
// find index (k,l) of pivot p
|
||||||
for( k = 0, mv = maxSR[0], i = 1; i < n-1; i++ )
|
for( k = 0, mv = maxSR[0], i = 1; i < n-1; i++ )
|
||||||
|
@ -97,20 +97,28 @@ Core_EigenTest_Scalar_32::~Core_EigenTest_Scalar_32() {}
|
|||||||
Core_EigenTest_Scalar_64::~Core_EigenTest_Scalar_64() {}
|
Core_EigenTest_Scalar_64::~Core_EigenTest_Scalar_64() {}
|
||||||
|
|
||||||
void Core_EigenTest_Scalar_32::run(int)
|
void Core_EigenTest_Scalar_32::run(int)
|
||||||
|
{
|
||||||
|
const size_t MATRIX_COUNT = 500;
|
||||||
|
for (size_t i = 0; i < MATRIX_COUNT; ++i)
|
||||||
{
|
{
|
||||||
float value = cv::randu<float>();
|
float value = cv::randu<float>();
|
||||||
cv::Mat src(1, 1, CV_32FC1, Scalar::all((float)value));
|
cv::Mat src(1, 1, CV_32FC1, Scalar::all((float)value));
|
||||||
test_values(src);
|
test_values(src);
|
||||||
src.~Mat();
|
src.~Mat();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Core_EigenTest_Scalar_64::run(int)
|
void Core_EigenTest_Scalar_64::run(int)
|
||||||
|
{
|
||||||
|
const size_t MATRIX_COUNT = 500;
|
||||||
|
for (size_t i = 0; i < MATRIX_COUNT; ++i)
|
||||||
{
|
{
|
||||||
float value = cv::randu<float>();
|
float value = cv::randu<float>();
|
||||||
cv::Mat src(1, 1, CV_64FC1, Scalar::all((double)value));
|
cv::Mat src(1, 1, CV_64FC1, Scalar::all((double)value));
|
||||||
test_values(src);
|
test_values(src);
|
||||||
src.~Mat();
|
src.~Mat();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Core_EigenTest_32::run(int) { check_full(CV_32FC1); }
|
void Core_EigenTest_32::run(int) { check_full(CV_32FC1); }
|
||||||
void Core_EigenTest_64::run(int) { check_full(CV_64FC1); }
|
void Core_EigenTest_64::run(int) { check_full(CV_64FC1); }
|
||||||
@ -358,7 +366,7 @@ bool Core_EigenTest::check_full(int type)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TEST(Core_Eigen_Scalar_32, accuracy) {Core_EigenTest_Scalar_32 test; test.safe_run(); }
|
TEST(Core_Eigen, scalar_32) {Core_EigenTest_Scalar_32 test; test.safe_run(); }
|
||||||
// TEST(Core_Eigen_Scalar_64, accuracy) {Core_EigenTest_Scalar_64 test; test.safe_run(); }
|
TEST(Core_Eigen, scalar_64) {Core_EigenTest_Scalar_64 test; test.safe_run(); }
|
||||||
TEST(Core_Eigen_32, accuracy) { Core_EigenTest_32 test; test.safe_run(); }
|
TEST(Core_Eigen, vector_32) { Core_EigenTest_32 test; test.safe_run(); }
|
||||||
TEST(Core_Eigen_64, accuracy) { Core_EigenTest_64 test; test.safe_run(); }
|
TEST(Core_Eigen, vector_64) { Core_EigenTest_64 test; test.safe_run(); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user