@@ -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 "> 96.5 % </ span >
26
+ < span class ="strong "> 96.9 % </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 470/487 </ span >
28
+ < span class ='fraction '> 469/484 </ span >
29
29
</ div >
30
30
31
31
32
32
< div class ='fl pad1y space-right2 '>
33
- < span class ="strong "> 89.74 % </ span >
33
+ < span class ="strong "> 89.18 % </ span >
34
34
< span class ="quiet "> Branches</ span >
35
- < span class ='fraction '> 35/39 </ span >
35
+ < span class ='fraction '> 33/37 </ 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 "> 96.5 % </ span >
47
+ < span class ="strong "> 96.9 % </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 470/487 </ span >
49
+ < span class ='fraction '> 469/484 </ span >
50
50
</ div >
51
51
52
52
@@ -547,10 +547,8 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
547
547
< a name ='L482 '> </ a > < a href ='#L482 '> 482</ a >
548
548
< a name ='L483 '> </ a > < a href ='#L483 '> 483</ a >
549
549
< a name ='L484 '> </ a > < a href ='#L484 '> 484</ a >
550
- < a name ='L485 '> </ a > < a href ='#L485 '> 485</ a >
551
- < a name ='L486 '> </ a > < a href ='#L486 '> 486</ a >
552
- < a name ='L487 '> </ a > < a href ='#L487 '> 487</ a >
553
- < a name ='L488 '> </ a > < a href ='#L488 '> 488</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
550
+ < a name ='L485 '> </ a > < a href ='#L485 '> 485</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
551
+ < span class ="cline-any cline-yes "> 3x</ span >
554
552
< span class ="cline-any cline-yes "> 3x</ span >
555
553
< span class ="cline-any cline-yes "> 3x</ span >
556
554
< span class ="cline-any cline-yes "> 3x</ span >
@@ -735,9 +733,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
735
733
< span class ="cline-any cline-yes "> 10x</ span >
736
734
< span class ="cline-any cline-yes "> 10x</ span >
737
735
< span class ="cline-any cline-yes "> 10x</ span >
738
- < span class ="cline-any cline-yes "> 40x</ span >
739
- < span class ="cline-any cline-yes "> 40x</ span >
740
- < span class ="cline-any cline-yes "> 40x</ span >
736
+ < span class ="cline-any cline-yes "> 10x</ span >
741
737
< span class ="cline-any cline-yes "> 10x</ span >
742
738
< span class ="cline-any cline-yes "> 10x</ span >
743
739
< span class ="cline-any cline-yes "> 10x</ span >
@@ -875,8 +871,10 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
875
871
< span class ="cline-any cline-yes "> 5x</ span >
876
872
< span class ="cline-any cline-yes "> 5x</ span >
877
873
< span class ="cline-any cline-yes "> 5x</ span >
878
- < span class ="cline-any cline-no "> </ span >
879
- < span class ="cline-any cline-no "> </ span >
874
+ < span class ="cline-any cline-yes "> 5x</ span >
875
+ < span class ="cline-any cline-yes "> 5x</ span >
876
+ < span class ="cline-any cline-yes "> 5x</ span >
877
+ < span class ="cline-any cline-yes "> 5x</ span >
880
878
< span class ="cline-any cline-no "> </ span >
881
879
< span class ="cline-any cline-no "> </ span >
882
880
< span class ="cline-any cline-no "> </ span >
@@ -993,16 +991,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
993
991
< span class ="cline-any cline-yes "> 3x</ span >
994
992
< span class ="cline-any cline-yes "> 3x</ span >
995
993
< span class ="cline-any cline-yes "> 3x</ span >
994
+ < span class ="cline-any cline-yes "> 3x</ span >
995
+ < span class ="cline-any cline-yes "> 3x</ span >
996
+ < span class ="cline-any cline-yes "> 3x</ span >
996
997
< span class ="cline-any cline-yes "> 59x</ span >
997
998
< span class ="cline-any cline-yes "> 59x</ span >
998
- < span class ="cline-any cline-yes "> 59x</ span >
999
- < span class ="cline-any cline-yes "> 59x</ span >
1000
- < span class ="cline-any cline-yes "> 59x</ span >
1001
- < span class ="cline-any cline-yes "> 12x</ span >
1002
999
< span class ="cline-any cline-yes "> 12x</ span >
1003
- < span class ="cline-any cline-yes "> 42x</ span >
1004
- < span class ="cline-any cline-yes "> 42x</ span >
1005
- < span class ="cline-any cline-yes "> 42x</ span >
1006
1000
< span class ="cline-any cline-yes "> 12x</ span >
1007
1001
< span class ="cline-any cline-yes "> 12x</ span >
1008
1002
< span class ="cline-any cline-yes "> 12x</ span >
@@ -1065,10 +1059,11 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1065
1059
var idamax = require( '@stdlib/blas/base/idamax' ).ndarray;
1066
1060
var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray;
1067
1061
var dasum = require( '@stdlib/blas/base/dasum' ).ndarray;
1068
- var nint = require( './nint.js' );
1062
+ var dfill = require( '@stdlib/blas/ext/base/dfill' ).ndarray;
1063
+ var nint = require( '@stdlib/math/base/special/round-nearest-even' );
1069
1064
1070
1065
1071
- // MAIN //
1066
+ // FUNCTIONS //
1072
1067
1073
1068
/**
1074
1069
* Applies a deterministic fallback vector for final evaluation.
@@ -1214,19 +1209,17 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1214
1209
* // KASE => <Int32Array>[ 1 ]
1215
1210
*/
1216
1211
function isaveIsTwo( N, X, strideX, offsetX, KASE, offsetKASE, ISAVE, strideISAVE, offsetISAVE ) {
1217
- var ix ;
1218
- var i ;
1212
+ var xmax ;
1213
+ var i1 ;
1219
1214
1220
- ISAVE[ offsetISAVE + strideISAVE ] = idamax( N, X, strideX, offsetX );
1221
- ISAVE[ offsetISAVE + ( 2 * strideISAVE ) ] = 2;
1215
+ i1 = offsetISAVE + strideISAVE;
1216
+ ISAVE[ i1 ] = idamax( N, X, strideX, offsetX ); // stores the index of the max element in X
1217
+ ISAVE[ i1 + strideISAVE ] = 2;
1218
+ xmax = offsetX + ( ISAVE[ i1 ] * strideX ); // pointer to the max element in X
1222
1219
1223
- ix = offsetX;
1224
- for ( i = 0; i < N; i++ ) {
1225
- X[ ix ] = 0.0;
1226
- ix += strideX;
1227
- }
1220
+ dfill( N, 0.0, X, strideX, offsetX );
1228
1221
1229
- X[ offsetX + ( ISAVE[ offsetISAVE + strideISAVE ] * strideX ) ] = 1.0;
1222
+ X[ xmax ] = 1.0;
1230
1223
KASE[ offsetKASE ] = 1;
1231
1224
ISAVE[ offsetISAVE ] = 3;
1232
1225
}
@@ -1354,21 +1347,23 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1354
1347
* // KASE => <Int32Array>[ 1 ]
1355
1348
*/
1356
1349
function isaveIsFour( N, X, strideX, offsetX, ISAVE, strideISAVE, offsetISAVE, KASE, offsetKASE ) {
1350
+ var prevxmax;
1357
1351
var jlast;
1358
- var ix ;
1359
- var i ;
1352
+ var xmax ;
1353
+ var i2 ;
1360
1354
1361
1355
jlast = ISAVE[ offsetISAVE + strideISAVE ];
1356
+ prevxmax = offsetX + ( jlast * strideX ); // points to X[ isave(1) ]
1362
1357
ISAVE[ offsetISAVE + strideISAVE ] = idamax( N, X, strideX, offsetX );
1358
+ xmax = offsetX + ( ISAVE[ offsetISAVE + strideISAVE ] * strideX ); // points to the largest value in X
1359
+ i2 = offsetISAVE + ( 2 * strideISAVE ); // points to isave(2), the number of refinement iterations
1363
1360
1364
- if ( X[ offsetX + ( jlast * strideX ) ] !== abs( X[ offsetX + ( ISAVE[ offsetISAVE + strideISAVE ] * strideX ) ] ) < span class ="branch-0 cbranch-no " title ="branch not covered " > && ISAVE[ offsetISAVE + ( 2 * strideISAVE ) ] < 5 </ span > ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
1365
- < span class ="cstat-no " title ="statement not covered " > ISAVE[ offsetISAVE + ( 2 * strideISAVE ) ] += 1;</ span >
1366
- < span class ="cstat-no " title ="statement not covered " > ix = offsetX;</ span >
1367
- < span class ="cstat-no " title ="statement not covered " > for ( i = 0; i < N; i++ ) {</ span >
1368
- < span class ="cstat-no " title ="statement not covered " > X[ ix ] = 0.0;</ span >
1369
- < span class ="cstat-no " title ="statement not covered " > ix += strideX;</ span >
1370
- < span class ="cstat-no " title ="statement not covered " > }</ span >
1371
- < span class ="cstat-no " title ="statement not covered " > X[ offsetX + ( ISAVE[ offsetISAVE + strideISAVE ] * strideX ) ] = 1.0;</ span >
1361
+ if ( X[ prevxmax ] !== abs( X[ xmax ] ) < span class ="branch-0 cbranch-no " title ="branch not covered " > && ISAVE[ i2 ] < 5 </ span > ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
1362
+ < span class ="cstat-no " title ="statement not covered " > ISAVE[ i2 ] += 1;</ span >
1363
+ < span class ="cstat-no " title ="statement not covered " > </ span >
1364
+ < span class ="cstat-no " title ="statement not covered " > dfill( N, 0.0, X, strideX, offsetX );</ span >
1365
+ < span class ="cstat-no " title ="statement not covered " > </ span >
1366
+ < span class ="cstat-no " title ="statement not covered " > X[ xmax ] = 1.0;</ span >
1372
1367
< span class ="cstat-no " title ="statement not covered " > KASE[ offsetKASE ] = 1;</ span >
1373
1368
< span class ="cstat-no " title ="statement not covered " > ISAVE[ offsetISAVE ] = 3;</ span >
1374
1369
< span class ="cstat-no " title ="statement not covered " > return;</ span >
@@ -1424,6 +1419,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1424
1419
KASE[ offsetKASE ] = 0;
1425
1420
}
1426
1421
1422
+
1423
+ // MAIN //
1424
+
1427
1425
/**
1428
1426
* Estimates the one-norm of a square matrix `A`, using reverse communication for evaluating matrix-vector products.
1429
1427
*
@@ -1481,15 +1479,8 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1481
1479
* // KASE => <Int32Array>[ 1 ]
1482
1480
*/
1483
1481
function dlacn2( N, V, strideV, offsetV, X, strideX, offsetX, ISGN, strideISGN, offsetISGN, EST, offsetEST, KASE, offsetKASE, ISAVE, strideISAVE, offsetISAVE ) {
1484
- var ix;
1485
- var i;
1486
-
1487
1482
if ( KASE[ offsetKASE ] === 0 ) {
1488
- ix = offsetX;
1489
- for ( i = 0; i < N; i++ ) {
1490
- X[ ix ] = 1 / N;
1491
- ix += strideX;
1492
- }
1483
+ dfill( N, 1 / N, X, strideX, offsetX );
1493
1484
KASE[ offsetKASE ] = 1;
1494
1485
ISAVE[ offsetISAVE ] = 1;
1495
1486
return;
@@ -1531,7 +1522,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
1531
1522
< div class ='footer quiet pad2 space-top1 center small '>
1532
1523
Code coverage generated by
1533
1524
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
1534
- at 2025-07-08T11:04:10.037Z
1525
+ at 2025-07-09T07:22:05.720Z
1535
1526
</ div >
1536
1527
< script src ="../../../../prettify.js "> </ script >
1537
1528
< script >
0 commit comments