diff --git a/lib/node_modules/@stdlib/lapack/base/iladlr/lib/base.js b/lib/node_modules/@stdlib/lapack/base/iladlr/lib/base.js index 6a723d63dc2..13320164fc0 100644 --- a/lib/node_modules/@stdlib/lapack/base/iladlr/lib/base.js +++ b/lib/node_modules/@stdlib/lapack/base/iladlr/lib/base.js @@ -49,36 +49,30 @@ var max = require( '@stdlib/math/base/special/fast/max' ); */ function iladlr( M, N, A, strideA1, strideA2, offsetA ) { var out; + var sa0; + var sa1; var i; var j; + if ( isRowMajor( [ strideA1, strideA2 ] ) ) { + sa0 = strideA1; + sa1 = strideA2; + } else { + sa0 = strideA2; + sa1 = strideA1; + } + if ( M === 0 ) { return 0; } - if ( isRowMajor( [ strideA1, strideA2 ] ) ) { - if ( A[ offsetA + ( ( M - 1 ) * strideA1 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * strideA1 ) + ( ( N - 1 ) * strideA2 ) ] ) { - return M - 1; - } - // Scan up each column tracking the last zero row seen. - out = -1; - for ( j = 0; j < N; j++ ) { - i = M - 1; - while ( i >= 0 && A[ offsetA + ( i * strideA1 ) + ( j * strideA2 ) ] === 0.0 ) { - i -= 1; - } - out = max( out, i ); - } - return out; - } - // column-major - if ( A[ offsetA + ( ( M - 1 ) * strideA2 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * strideA2 ) + ( ( N - 1 ) * strideA1 ) ] ) { + if ( A[ offsetA + ( ( M - 1 ) * sa0 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * sa0 ) + ( ( N - 1 ) * sa1 ) ] ) { return M - 1; } // Scan up each column tracking the last zero row seen. out = -1; for ( j = 0; j < N; j++ ) { i = M - 1; - while ( i >= 0 && A[ offsetA + ( i * strideA2 ) + ( j * strideA1 ) ] === 0.0 ) { + while ( i >= 0 && A[ offsetA + ( i * sa0 ) + ( j * sa1 ) ] === 0.0 ) { i -= 1; } out = max( out, i );