@@ -23,16 +23,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 96.5 % </ span >
26+ < span class ="strong "> 96.9 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 470/487 </ span >
28+ < span class ='fraction '> 469/484 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 89.74 % </ span >
33+ < span class ="strong "> 89.18 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 35/39 </ span >
35+ < span class ='fraction '> 33/37 </ span >
3636 </ div >
3737
3838
@@ -44,9 +44,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 96.5 % </ span >
47+ < span class ="strong "> 96.9 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 470/487 </ span >
49+ < span class ='fraction '> 469/484 </ span >
5050 </ div >
5151
5252
@@ -547,10 +547,8 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
547547< a name ='L482 '> </ a > < a href ='#L482 '> 482</ a >
548548< a name ='L483 '> </ a > < a href ='#L483 '> 483</ a >
549549< 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 >
554552< span class ="cline-any cline-yes "> 3x</ span >
555553< span class ="cline-any cline-yes "> 3x</ span >
556554< 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
735733< span class ="cline-any cline-yes "> 10x</ span >
736734< span class ="cline-any cline-yes "> 10x</ span >
737735< 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 >
741737< span class ="cline-any cline-yes "> 10x</ span >
742738< span class ="cline-any cline-yes "> 10x</ span >
743739< 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
875871< span class ="cline-any cline-yes "> 5x</ span >
876872< span class ="cline-any cline-yes "> 5x</ span >
877873< 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 >
880878< span class ="cline-any cline-no "> </ span >
881879< span class ="cline-any cline-no "> </ span >
882880< span class ="cline-any cline-no "> </ span >
@@ -993,16 +991,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
993991< span class ="cline-any cline-yes "> 3x</ span >
994992< span class ="cline-any cline-yes "> 3x</ span >
995993< 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 >
996997< span class ="cline-any cline-yes "> 59x</ span >
997998< 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 >
1002999< 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 >
10061000< span class ="cline-any cline-yes "> 12x</ span >
10071001< span class ="cline-any cline-yes "> 12x</ span >
10081002< 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
10651059var idamax = require( '@stdlib/blas/base/idamax' ).ndarray;
10661060var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray;
10671061var 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' );
10691064
10701065
1071- // MAIN //
1066+ // FUNCTIONS //
10721067
10731068/**
10741069* 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
12141209* // KASE => <Int32Array>[ 1 ]
12151210*/
12161211function isaveIsTwo( N, X, strideX, offsetX, KASE, offsetKASE, ISAVE, strideISAVE, offsetISAVE ) {
1217- var ix ;
1218- var i ;
1212+ var xmax ;
1213+ var i1 ;
12191214
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
12221219
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 );
12281221
1229- X[ offsetX + ( ISAVE[ offsetISAVE + strideISAVE ] * strideX ) ] = 1.0;
1222+ X[ xmax ] = 1.0;
12301223 KASE[ offsetKASE ] = 1;
12311224 ISAVE[ offsetISAVE ] = 3;
12321225}
@@ -1354,21 +1347,23 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
13541347* // KASE => <Int32Array>[ 1 ]
13551348*/
13561349function isaveIsFour( N, X, strideX, offsetX, ISAVE, strideISAVE, offsetISAVE, KASE, offsetKASE ) {
1350+ var prevxmax;
13571351 var jlast;
1358- var ix ;
1359- var i ;
1352+ var xmax ;
1353+ var i2 ;
13601354
13611355 jlast = ISAVE[ offsetISAVE + strideISAVE ];
1356+ prevxmax = offsetX + ( jlast * strideX ); // points to X[ isave(1) ]
13621357 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
13631360
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 >
13721367< span class ="cstat-no " title ="statement not covered " > KASE[ offsetKASE ] = 1;</ span >
13731368< span class ="cstat-no " title ="statement not covered " > ISAVE[ offsetISAVE ] = 3;</ span >
13741369< 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
14241419 KASE[ offsetKASE ] = 0;
14251420}
14261421
1422+
1423+ // MAIN //
1424+
14271425/**
14281426* Estimates the one-norm of a square matrix `A`, using reverse communication for evaluating matrix-vector products.
14291427*
@@ -1481,15 +1479,8 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
14811479* // KASE => <Int32Array>[ 1 ]
14821480*/
14831481function 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-
14871482 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 );
14931484 KASE[ offsetKASE ] = 1;
14941485 ISAVE[ offsetISAVE ] = 1;
14951486 return;
@@ -1531,7 +1522,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">lapack
15311522 < div class ='footer quiet pad2 space-top1 center small '>
15321523 Code coverage generated by
15331524 < 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
15351526 </ div >
15361527 < script src ="../../../../prettify.js "> </ script >
15371528 < script >
0 commit comments