Skip to content

Commit 00b131a

Browse files
committed
refactor: base implementation
1 parent 45f9026 commit 00b131a

File tree

1 file changed

+12
-18
lines changed
  • lib/node_modules/@stdlib/lapack/base/iladlr/lib

1 file changed

+12
-18
lines changed

lib/node_modules/@stdlib/lapack/base/iladlr/lib/base.js

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,36 +49,30 @@ var max = require( '@stdlib/math/base/special/fast/max' );
4949
*/
5050
function iladlr( M, N, A, strideA1, strideA2, offsetA ) {
5151
var out;
52+
var sa0;
53+
var sa1;
5254
var i;
5355
var j;
5456

57+
if ( isRowMajor( [ strideA1, strideA2 ] ) ) {
58+
sa0 = strideA1;
59+
sa1 = strideA2;
60+
} else {
61+
sa0 = strideA2;
62+
sa1 = strideA1;
63+
}
64+
5565
if ( M === 0 ) {
5666
return 0;
5767
}
58-
if ( isRowMajor( [ strideA1, strideA2 ] ) ) {
59-
if ( A[ offsetA + ( ( M - 1 ) * strideA1 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * strideA1 ) + ( ( N - 1 ) * strideA2 ) ] ) {
60-
return M - 1;
61-
}
62-
// Scan up each column tracking the last zero row seen.
63-
out = -1;
64-
for ( j = 0; j < N; j++ ) {
65-
i = M - 1;
66-
while ( i >= 0 && A[ offsetA + ( i * strideA1 ) + ( j * strideA2 ) ] === 0.0 ) {
67-
i -= 1;
68-
}
69-
out = max( out, i );
70-
}
71-
return out;
72-
}
73-
// column-major
74-
if ( A[ offsetA + ( ( M - 1 ) * strideA2 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * strideA2 ) + ( ( N - 1 ) * strideA1 ) ] ) {
68+
if ( A[ offsetA + ( ( M - 1 ) * sa0 ) ] !== 0.0 || A[ offsetA + ( ( M - 1 ) * sa0 ) + ( ( N - 1 ) * sa1 ) ] ) {
7569
return M - 1;
7670
}
7771
// Scan up each column tracking the last zero row seen.
7872
out = -1;
7973
for ( j = 0; j < N; j++ ) {
8074
i = M - 1;
81-
while ( i >= 0 && A[ offsetA + ( i * strideA2 ) + ( j * strideA1 ) ] === 0.0 ) {
75+
while ( i >= 0 && A[ offsetA + ( i * sa0 ) + ( j * sa1 ) ] === 0.0 ) {
8276
i -= 1;
8377
}
8478
out = max( out, i );

0 commit comments

Comments
 (0)