@@ -25,14 +25,14 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 148/148 </ span >
28+ < span class ='fraction '> 150/150 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
3333 < span class ="strong "> 100% </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 17/17 </ span >
35+ < span class ='fraction '> 18/18 </ span >
3636 </ div >
3737
3838
@@ -46,7 +46,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 148/148 </ span >
49+ < span class ='fraction '> 150/150 </ span >
5050 </ div >
5151
5252
@@ -211,7 +211,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
211211< a name ='L146 '> </ a > < a href ='#L146 '> 146</ a >
212212< a name ='L147 '> </ a > < a href ='#L147 '> 147</ a >
213213< a name ='L148 '> </ a > < a href ='#L148 '> 148</ a >
214- < a name ='L149 '> </ a > < a href ='#L149 '> 149</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
214+ < a name ='L149 '> </ a > < a href ='#L149 '> 149</ a >
215+ < a name ='L150 '> </ a > < a href ='#L150 '> 150</ a >
216+ < a name ='L151 '> </ a > < a href ='#L151 '> 151</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
215217< span class ="cline-any cline-yes "> 3x</ span >
216218< span class ="cline-any cline-yes "> 3x</ span >
217219< span class ="cline-any cline-yes "> 3x</ span >
@@ -288,71 +290,73 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
288290< span class ="cline-any cline-yes "> 58x</ span >
289291< span class ="cline-any cline-yes "> 58x</ span >
290292< span class ="cline-any cline-yes "> 58x</ span >
291- < span class ="cline-any cline-yes "> 25x</ span >
292- < span class ="cline-any cline-yes "> 25x</ span >
293- < span class ="cline-any cline-yes "> 25x</ span >
294- < span class ="cline-any cline-yes "> 58x</ span >
295- < span class ="cline-any cline-yes "> 33x</ span >
296- < span class ="cline-any cline-yes "> 33x</ span >
297- < span class ="cline-any cline-yes "> 33x</ span >
298- < span class ="cline-any cline-yes "> 33x</ span >
299- < span class ="cline-any cline-yes "> 58x</ span >
300- < span class ="cline-any cline-yes "> 58x</ span >
301293< span class ="cline-any cline-yes "> 32x</ span >
302- < span class ="cline-any cline-yes "> 13x </ span >
294+ < span class ="cline-any cline-yes "> 14x </ span >
303295< span class ="cline-any cline-yes "> 32x</ span >
304- < span class ="cline-any cline-yes "> 19x </ span >
305- < span class ="cline-any cline-yes "> 19x </ span >
296+ < span class ="cline-any cline-yes "> 18x </ span >
297+ < span class ="cline-any cline-yes "> 18x </ span >
306298< span class ="cline-any cline-yes "> 32x</ span >
307299< span class ="cline-any cline-yes "> 58x</ span >
308300< span class ="cline-any cline-yes "> 16x</ span >
309301< span class ="cline-any cline-yes "> 16x</ span >
310302< span class ="cline-any cline-yes "> 42x</ span >
303+ < span class ="cline-any cline-yes "> 58x</ span >
304+ < span class ="cline-any cline-yes "> 16x</ span >
305+ < span class ="cline-any cline-yes "> 16x</ span >
306+ < span class ="cline-any cline-yes "> 16x</ span >
307+ < span class ="cline-any cline-yes "> 58x</ span >
308+ < span class ="cline-any cline-yes "> 26x</ span >
309+ < span class ="cline-any cline-yes "> 26x</ span >
310+ < span class ="cline-any cline-yes "> 26x</ span >
311+ < span class ="cline-any cline-yes "> 26x</ span >
312+ < span class ="cline-any cline-yes "> 42x</ span >
311313< span class ="cline-any cline-yes "> 42x</ span >
312314< span class ="cline-any cline-yes "> 58x</ span >
313315< span class ="cline-any cline-yes "> 33x</ span >
314316< span class ="cline-any cline-yes "> 58x</ span >
315- < span class ="cline-any cline-yes "> 23x</ span >
316- < span class ="cline-any cline-yes "> 23x</ span >
317- < span class ="cline-any cline-yes "> 23x</ span >
318- < span class ="cline-any cline-yes "> 69x</ span >
319- < span class ="cline-any cline-yes "> 69x</ span >
320- < span class ="cline-any cline-yes "> 69x</ span >
321- < span class ="cline-any cline-yes "> 69x</ span >
322- < span class ="cline-any cline-yes "> 69x</ span >
323- < span class ="cline-any cline-yes "> 69x</ span >
324- < span class ="cline-any cline-yes "> 69x</ span >
325- < span class ="cline-any cline-yes "> 69x</ span >
326- < span class ="cline-any cline-yes "> 69x</ span >
327- < span class ="cline-any cline-yes "> 69x</ span >
328- < span class ="cline-any cline-yes "> 69x</ span >
329- < span class ="cline-any cline-yes "> 69x</ span >
330- < span class ="cline-any cline-yes "> 69x</ span >
331- < span class ="cline-any cline-yes "> 69x</ span >
332- < span class ="cline-any cline-yes "> 69x</ span >
333- < span class ="cline-any cline-yes "> 23x</ span >
334- < span class ="cline-any cline-yes "> 23x</ span >
335- < span class ="cline-any cline-yes "> 19x</ span >
336- < span class ="cline-any cline-yes "> 19x</ span >
337- < span class ="cline-any cline-yes "> 19x</ span >
317+ < span class ="cline-any cline-yes "> 22x</ span >
318+ < span class ="cline-any cline-yes "> 22x</ span >
319+ < span class ="cline-any cline-yes "> 22x</ span >
320+ < span class ="cline-any cline-yes "> 66x</ span >
321+ < span class ="cline-any cline-yes "> 66x</ span >
322+ < span class ="cline-any cline-yes "> 66x</ span >
323+ < span class ="cline-any cline-yes "> 66x</ span >
324+ < span class ="cline-any cline-yes "> 66x</ span >
325+ < span class ="cline-any cline-yes "> 66x</ span >
326+ < span class ="cline-any cline-yes "> 66x</ span >
327+ < span class ="cline-any cline-yes "> 66x</ span >
328+ < span class ="cline-any cline-yes "> 66x</ span >
329+ < span class ="cline-any cline-yes "> 66x</ span >
330+ < span class ="cline-any cline-yes "> 66x</ span >
331+ < span class ="cline-any cline-yes "> 66x</ span >
332+ < span class ="cline-any cline-yes "> 66x</ span >
333+ < span class ="cline-any cline-yes "> 66x</ span >
334+ < span class ="cline-any cline-yes "> 66x</ span >
335+ < span class ="cline-any cline-yes "> 66x</ span >
336+ < span class ="cline-any cline-yes "> 22x</ span >
337+ < span class ="cline-any cline-yes "> 22x</ span >
338+ < span class ="cline-any cline-yes "> 20x</ span >
339+ < span class ="cline-any cline-yes "> 20x</ span >
340+ < span class ="cline-any cline-yes "> 20x</ span >
338341< span class ="cline-any cline-yes "> 58x</ span >
339- < span class ="cline-any cline-yes "> 57x</ span >
340- < span class ="cline-any cline-yes "> 57x</ span >
341- < span class ="cline-any cline-yes "> 57x</ span >
342- < span class ="cline-any cline-yes "> 57x</ span >
343- < span class ="cline-any cline-yes "> 57x</ span >
344- < span class ="cline-any cline-yes "> 57x</ span >
345- < span class ="cline-any cline-yes "> 57x</ span >
346- < span class ="cline-any cline-yes "> 57x</ span >
347- < span class ="cline-any cline-yes "> 57x</ span >
348- < span class ="cline-any cline-yes "> 57x</ span >
349- < span class ="cline-any cline-yes "> 57x</ span >
350- < span class ="cline-any cline-yes "> 57x</ span >
351- < span class ="cline-any cline-yes "> 57x</ span >
352- < span class ="cline-any cline-yes "> 57x</ span >
353- < span class ="cline-any cline-yes "> 57x</ span >
354- < span class ="cline-any cline-yes "> 57x</ span >
355- < span class ="cline-any cline-yes "> 19x</ span >
342+ < span class ="cline-any cline-yes "> 60x</ span >
343+ < span class ="cline-any cline-yes "> 60x</ span >
344+ < span class ="cline-any cline-yes "> 60x</ span >
345+ < span class ="cline-any cline-yes "> 60x</ span >
346+ < span class ="cline-any cline-yes "> 60x</ span >
347+ < span class ="cline-any cline-yes "> 60x</ span >
348+ < span class ="cline-any cline-yes "> 60x</ span >
349+ < span class ="cline-any cline-yes "> 60x</ span >
350+ < span class ="cline-any cline-yes "> 60x</ span >
351+ < span class ="cline-any cline-yes "> 60x</ span >
352+ < span class ="cline-any cline-yes "> 60x</ span >
353+ < span class ="cline-any cline-yes "> 60x</ span >
354+ < span class ="cline-any cline-yes "> 60x</ span >
355+ < span class ="cline-any cline-yes "> 60x</ span >
356+ < span class ="cline-any cline-yes "> 60x</ span >
357+ < span class ="cline-any cline-yes "> 60x</ span >
358+ < span class ="cline-any cline-yes "> 60x</ span >
359+ < span class ="cline-any cline-yes "> 20x</ span >
356360< span class ="cline-any cline-yes "> 58x</ span >
357361< span class ="cline-any cline-yes "> 3x</ span >
358362< span class ="cline-any cline-yes "> 3x</ span >
@@ -430,20 +434,10 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
430434 var sa1;
431435 var i1;
432436 var i0;
433- var oa ;
437+ var ia ;
434438
435439 // Note on variable naming convention: sa#, ix#, i# where # corresponds to the loop number, with `0` being the innermost loop...
436440
437- isrm = isRowMajor( [ strideA1, strideA2 ] );
438- if ( isrm ) {
439- // For row-major matrices, the last dimension has the fastest changing index...
440- sa0 = strideA2; // stride for innermost loop
441- sa1 = strideA1; // stride for outermost loop
442- } else { // isColMajor
443- // For column-major matrices, the first dimension has the fastest changing index...
444- sa0 = strideA1; // stride for innermost loop
445- sa1 = strideA2; // stride for outermost loop
446- }
447441 // y = beta*y
448442 if ( beta !== 1.0 ) {
449443 if ( beta === 0.0 ) {
@@ -455,6 +449,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
455449 if ( alpha === 0.0 ) {
456450 return y;
457451 }
452+ isrm = isRowMajor( [ strideA1, strideA2 ] );
453+ if ( isrm ) {
454+ // For row-major matrices, the last dimension has the fastest changing index...
455+ sa0 = strideA2; // stride for innermost loop
456+ sa1 = strideA1; // stride for outermost loop
457+ } else { // isColMajor
458+ // For column-major matrices, the first dimension has the fastest changing index...
459+ sa0 = strideA1; // stride for innermost loop
460+ sa1 = strideA2; // stride for outermost loop
461+ }
458462 // Form: y = α*A*x + y
459463 if (
460464 ( !isrm && uplo === 'upper' ) ||
@@ -464,17 +468,18 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
464468 iy1 = offsetY;
465469 for ( i1 = 0; i1 < N; i1++ ) {
466470 tmp1 = f32( alpha * x[ ix1 ] );
467- tmp2 = 0.0;
471+ tmp2 = f32( 0.0 ) ;
468472 ix0 = offsetX;
469473 iy0 = offsetY;
470- oa = offsetA + ( sa1 * i1 );
474+ ia = offsetA + ( sa1* i1 );
471475 for ( i0 = 0; i0 < i1; i0++ ) {
472- y[ iy0 ] += f32( tmp1 * A[ oa + ( sa0 *i0 ) ] );
473- tmp2 = f32( tmp2 + f32( A[ oa + ( sa0 * i0 ) ] * x[ ix0 ] ) );
476+ y[ iy0 ] += f32( tmp1 * A[ ia ] );
477+ tmp2 = f32( tmp2 + f32( A[ ia ] * x[ ix0 ] ) );
474478 ix0 += strideX;
475479 iy0 += strideY;
480+ ia += sa0;
476481 }
477- y[ iy1 ] += f32( f32( tmp1 * A[ oa+( sa0 * i1 ) ] ) + f32( alpha * tmp2 ) ); // eslint-disable-line max-len
482+ y[ iy1 ] += f32( f32( tmp1* A[ ia ] ) + f32( alpha* tmp2 ) );
478483 ix1 += strideX;
479484 iy1 += strideY;
480485 }
@@ -485,18 +490,19 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
485490 iy1 = offsetY;
486491 for ( i1 = 0; i1 < N; i1++ ) {
487492 tmp1 = f32( alpha * x[ ix1 ] );
488- tmp2 = 0.0;
489- oa = offsetA + ( sa1 * i1 );
490- y[ iy1 ] += f32( tmp1 * A[ oa + ( sa0 * i1 ) ] );
493+ tmp2 = f32( 0.0 ) ;
494+ ia = offsetA + ( sa1*i1 ) + ( sa0* i1 );
495+ y[ iy1 ] += f32( tmp1 * A[ ia ] );
491496 ix0 = ix1;
492497 iy0 = iy1;
493498 for ( i0 = i1+1; i0 < N; i0++ ) {
494499 ix0 += strideX;
495500 iy0 += strideY;
496- y[ iy0 ] += f32( tmp1 * A[ oa + ( sa0 * i0 ) ] );
497- tmp2 = f32( tmp2 + f32( A[ oa + ( sa0 * i0 ) ] * x[ ix0 ] ) );
501+ ia += sa0;
502+ y[ iy0 ] += f32( tmp1 * A[ ia ] );
503+ tmp2 = f32( tmp2 + f32( A[ ia ] * x[ ix0 ] ) );
498504 }
499- y[ iy1 ] += f32( alpha * tmp2 );
505+ y[ iy1 ] += f32( alpha* tmp2 );
500506 ix1 += strideX;
501507 iy1 += strideY;
502508 }
@@ -514,7 +520,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
514520 < div class ='footer quiet pad2 space-top1 center small '>
515521 Code coverage generated by
516522 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
517- at 2025-08-28T01:18:22.565Z
523+ at 2025-08-30T10:29:36.397Z
518524 </ div >
519525 < script src ="../../../../prettify.js "> </ script >
520526 < script >
0 commit comments