diff --git a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp index 968000b889..95c75292e0 100644 --- a/modules/core/src/lapack.cpp +++ b/modules/core/src/lapack.cpp @@ -245,9 +245,7 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b int iters, maxIters = n*n*30; - _Tp* maxSR = (_Tp*)alignPtr(buf, sizeof(_Tp)); - _Tp* maxSC = maxSR + n; - int* indR = (int*)(maxSC + n); + int* indR = (int*)alignPtr(buf, sizeof(int)); int* indC = indR + n; _Tp mv = (_Tp)0; @@ -262,7 +260,6 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b if( mv < val ) mv = val, m = i; } - maxSR[k] = mv; indR[k] = m; } if( k > 0 ) @@ -273,7 +270,6 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b if( mv < val ) mv = val, m = i; } - maxSC[k] = mv; indC[k] = m; } } @@ -281,16 +277,16 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b if( n > 1 ) for( iters = 0; iters < maxIters; iters++ ) { // find index (k,l) of pivot p - for( k = 0, mv = maxSR[0], i = 1; i < n-1; i++ ) + for( k = 0, mv = std::abs(A[indR[0]]), i = 1; i < n-1; i++ ) { - _Tp val = maxSR[i]; + _Tp val = std::abs(A[astep*i + indR[i]]); if( mv < val ) mv = val, k = i; } int l = indR[k]; for( i = 1; i < n; i++ ) { - _Tp val = maxSC[i]; + _Tp val = std::abs(A[astep*indC[i] + i]); if( mv < val ) mv = val, k = indC[i], l = i; } @@ -341,7 +337,6 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b if( mv < val ) mv = val, m = i; } - maxSR[idx] = mv; indR[idx] = m; } if( idx > 0 ) @@ -352,7 +347,6 @@ JacobiImpl_( _Tp* A, size_t astep, _Tp* W, _Tp* V, size_t vstep, int n, uchar* b if( mv < val ) mv = val, m = i; } - maxSC[idx] = mv; indC[idx] = m; } }