@@ -23,16 +23,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
23
23
< div class ='clearfix '>
24
24
25
25
< div class ='fl pad1y space-right2 '>
26
- < span class ="strong "> 97.95 % </ span >
26
+ < span class ="strong "> 100 % </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 96/98 </ span >
28
+ < span class ='fraction '> 59/59 </ span >
29
29
</ div >
30
30
31
31
32
32
< div class ='fl pad1y space-right2 '>
33
- < span class ="strong "> 94.44 % </ span >
33
+ < span class ="strong "> 100 % </ span >
34
34
< span class ="quiet "> Branches</ span >
35
- < span class ='fraction '> 17/18 </ span >
35
+ < span class ='fraction '> 2/2 </ span >
36
36
</ div >
37
37
38
38
@@ -44,9 +44,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
44
44
45
45
46
46
< div class ='fl pad1y space-right2 '>
47
- < span class ="strong "> 97.95 % </ span >
47
+ < span class ="strong "> 100 % </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 96/98 </ span >
49
+ < span class ='fraction '> 59/59 </ span >
50
50
</ div >
51
51
52
52
@@ -122,46 +122,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
122
122
< a name ='L57 '> </ a > < a href ='#L57 '> 57</ a >
123
123
< a name ='L58 '> </ a > < a href ='#L58 '> 58</ a >
124
124
< a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125
- < a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126
- < a name ='L61 '> </ a > < a href ='#L61 '> 61</ a >
127
- < a name ='L62 '> </ a > < a href ='#L62 '> 62</ a >
128
- < a name ='L63 '> </ a > < a href ='#L63 '> 63</ a >
129
- < a name ='L64 '> </ a > < a href ='#L64 '> 64</ a >
130
- < a name ='L65 '> </ a > < a href ='#L65 '> 65</ a >
131
- < a name ='L66 '> </ a > < a href ='#L66 '> 66</ a >
132
- < a name ='L67 '> </ a > < a href ='#L67 '> 67</ a >
133
- < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a >
134
- < a name ='L69 '> </ a > < a href ='#L69 '> 69</ a >
135
- < a name ='L70 '> </ a > < a href ='#L70 '> 70</ a >
136
- < a name ='L71 '> </ a > < a href ='#L71 '> 71</ a >
137
- < a name ='L72 '> </ a > < a href ='#L72 '> 72</ a >
138
- < a name ='L73 '> </ a > < a href ='#L73 '> 73</ a >
139
- < a name ='L74 '> </ a > < a href ='#L74 '> 74</ a >
140
- < a name ='L75 '> </ a > < a href ='#L75 '> 75</ a >
141
- < a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142
- < a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143
- < a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144
- < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145
- < a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146
- < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147
- < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148
- < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149
- < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150
- < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151
- < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152
- < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a >
153
- < a name ='L88 '> </ a > < a href ='#L88 '> 88</ a >
154
- < a name ='L89 '> </ a > < a href ='#L89 '> 89</ a >
155
- < a name ='L90 '> </ a > < a href ='#L90 '> 90</ a >
156
- < a name ='L91 '> </ a > < a href ='#L91 '> 91</ a >
157
- < a name ='L92 '> </ a > < a href ='#L92 '> 92</ a >
158
- < a name ='L93 '> </ a > < a href ='#L93 '> 93</ a >
159
- < a name ='L94 '> </ a > < a href ='#L94 '> 94</ a >
160
- < a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161
- < a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162
- < a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163
- < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164
- < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
125
+ < a name ='L60 '> </ a > < a href ='#L60 '> 60</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
126
+ < span class ="cline-any cline-yes "> 3x</ span >
127
+ < span class ="cline-any cline-yes "> 3x</ span >
128
+ < span class ="cline-any cline-yes "> 3x</ span >
129
+ < span class ="cline-any cline-yes "> 3x</ span >
165
130
< span class ="cline-any cline-yes "> 3x</ span >
166
131
< span class ="cline-any cline-yes "> 3x</ span >
167
132
< span class ="cline-any cline-yes "> 3x</ span >
@@ -211,49 +176,6 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
211
176
< span class ="cline-any cline-yes "> 26x</ span >
212
177
< span class ="cline-any cline-yes "> 26x</ span >
213
178
< span class ="cline-any cline-yes "> 26x</ span >
214
- < span class ="cline-any cline-yes "> 26x</ span >
215
- < span class ="cline-any cline-yes "> 26x</ span >
216
- < span class ="cline-any cline-yes "> 26x</ span >
217
- < span class ="cline-any cline-yes "> 26x</ span >
218
- < span class ="cline-any cline-yes "> 2x</ span >
219
- < span class ="cline-any cline-yes "> 2x</ span >
220
- < span class ="cline-any cline-yes "> 24x</ span >
221
- < span class ="cline-any cline-yes "> 24x</ span >
222
- < span class ="cline-any cline-yes "> 24x</ span >
223
- < span class ="cline-any cline-yes "> 24x</ span >
224
- < span class ="cline-any cline-yes "> 24x</ span >
225
- < span class ="cline-any cline-yes "> 26x</ span >
226
- < span class ="cline-any cline-no "> </ span >
227
- < span class ="cline-any cline-no "> </ span >
228
- < span class ="cline-any cline-yes "> 24x</ span >
229
- < span class ="cline-any cline-yes "> 26x</ span >
230
- < span class ="cline-any cline-yes "> 12x</ span >
231
- < span class ="cline-any cline-yes "> 12x</ span >
232
- < span class ="cline-any cline-yes "> 18x</ span >
233
- < span class ="cline-any cline-yes "> 18x</ span >
234
- < span class ="cline-any cline-yes "> 48x</ span >
235
- < span class ="cline-any cline-yes "> 6x</ span >
236
- < span class ="cline-any cline-yes "> 6x</ span >
237
- < span class ="cline-any cline-yes "> 42x</ span >
238
- < span class ="cline-any cline-yes "> 42x</ span >
239
- < span class ="cline-any cline-yes "> 12x</ span >
240
- < span class ="cline-any cline-yes "> 12x</ span >
241
- < span class ="cline-any cline-yes "> 12x</ span >
242
- < span class ="cline-any cline-yes "> 12x</ span >
243
- < span class ="cline-any cline-yes "> 12x</ span >
244
- < span class ="cline-any cline-yes "> 30x</ span >
245
- < span class ="cline-any cline-yes "> 30x</ span >
246
- < span class ="cline-any cline-yes "> 54x</ span >
247
- < span class ="cline-any cline-yes "> 6x</ span >
248
- < span class ="cline-any cline-yes "> 6x</ span >
249
- < span class ="cline-any cline-yes "> 48x</ span >
250
- < span class ="cline-any cline-yes "> 48x</ span >
251
- < span class ="cline-any cline-yes "> 24x</ span >
252
- < span class ="cline-any cline-yes "> 24x</ span >
253
- < span class ="cline-any cline-yes "> 12x</ span >
254
- < span class ="cline-any cline-yes "> 12x</ span >
255
- < span class ="cline-any cline-yes "> 12x</ span >
256
- < span class ="cline-any cline-yes "> 26x</ span >
257
179
< span class ="cline-any cline-yes "> 3x</ span >
258
180
< span class ="cline-any cline-yes "> 3x</ span >
259
181
< span class ="cline-any cline-yes "> 3x</ span >
@@ -281,13 +203,17 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
281
203
282
204
// MODULES //
283
205
284
- var isRowMajor = require( '@stdlib/ndarray /base/assert/is-row-major ' );
206
+ var iladlr = require( '@stdlib/lapack /base/iladlr ' ).ndarray ;
285
207
286
208
287
209
// MAIN //
288
210
289
211
/**
290
- * Finds the index of the last non zero column in a matrix `A`.
212
+ * Returns the index of the last non-zero column in a matrix `A`.
213
+ *
214
+ * ## Notes
215
+ *
216
+ * - If provided an empty matrix or a matrix containing only zeros, the function returns `-1` (i.e., an invalid index).
291
217
*
292
218
* @private
293
219
* @param {PositiveInteger} M - number of rows in `A`
@@ -296,7 +222,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
296
222
* @param {integer} strideA1 - stride of the first dimension of `A`
297
223
* @param {integer} strideA2 - stride of the second dimension of `A`
298
224
* @param {NonNegativeInteger} offsetA - index offset for `A`
299
- * @returns {integer} index of the last non zero column
225
+ * @returns {integer} index of the last non- zero column
300
226
*
301
227
* @example
302
228
* var Float64array = require( '@stdlib/array/float64' );
@@ -307,50 +233,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
307
233
* // returns 1
308
234
*/
309
235
function iladlc( M, N, A, strideA1, strideA2, offsetA ) {
310
- var ia1;
311
- var ia2;
312
- var i;
313
- var j;
314
-
315
- if ( M === 0 || N === 0 ) {
316
- return -1; // Invalid index
317
- }
318
-
319
- ia1 = offsetA + ( (N-1) * strideA2 ); // A( 1, N )
320
- ia2 = ia1 + ( (M-1) * strideA1 ); // A( M, N )
321
-
322
- // Quick test for common case where corners are non-zero:
323
- if ( A[ ia1 ] !== 0.0 || A[ ia2 ] !== 0.0 ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
324
- < span class ="cstat-no " title ="statement not covered " > return N - 1;</ span >
325
- < span class ="cstat-no " title ="statement not covered " > }</ span >
326
-
327
- if ( isRowMajor( [ strideA1, strideA2 ] ) ) {
328
- ia1 = offsetA;
329
- for ( i = 0; i < M; i++ ) {
330
- ia2 = ( N - 1 ) * strideA2;
331
- for ( j = N-1; j >= 0; j-- ) {
332
- if ( A[ ia1 + ia2 ] !== 0.0 ) {
333
- return j;
334
- }
335
- ia2 -= strideA2;
336
- }
337
- ia1 += strideA1;
338
- }
339
- } else {
340
- ia1 = offsetA + ( (N-1) * strideA2 );
341
- for ( i = N-1; i >= 0; i-- ) {
342
- ia2 = 0;
343
- for ( j = 0; j < M; j++ ) {
344
- if ( A[ ia1 + ia2 ] !== 0.0 ) {
345
- return i;
346
- }
347
- ia2 += strideA1;
348
- }
349
- ia1 -= strideA2;
350
- }
351
- }
352
-
353
- return -1;
236
+ return iladlr( N, M, A, strideA2, strideA1, offsetA );
354
237
}
355
238
356
239
@@ -364,7 +247,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
364
247
< div class ='footer quiet pad2 space-top1 center small '>
365
248
Code coverage generated by
366
249
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
367
- at 2025-06-05T09:03:05.018Z
250
+ at 2025-06-06T09:32:37.538Z
368
251
</ div >
369
252
< script src ="../../../../prettify.js "> </ script >
370
253
< script >
0 commit comments