@@ -23,16 +23,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
23
23
< div class ='clearfix '>
24
24
25
25
< div class ='fl pad1y space-right2 '>
26
- < span class ="strong "> 98.74 % </ span >
26
+ < span class ="strong "> 100 % </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 157/159 </ span >
28
+ < span class ='fraction '> 168/168 </ span >
29
29
</ div >
30
30
31
31
32
32
< div class ='fl pad1y space-right2 '>
33
- < span class ="strong "> 95 % </ span >
33
+ < span class ="strong "> 100 % </ span >
34
34
< span class ="quiet "> Branches</ span >
35
- < span class ='fraction '> 19/20 </ span >
35
+ < span class ='fraction '> 21/21 </ span >
36
36
</ div >
37
37
38
38
@@ -44,9 +44,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
44
44
45
45
46
46
< div class ='fl pad1y space-right2 '>
47
- < span class ="strong "> 98.74 % </ span >
47
+ < span class ="strong "> 100 % </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 157/159 </ span >
49
+ < span class ='fraction '> 168/168 </ span >
50
50
</ div >
51
51
52
52
@@ -222,7 +222,16 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
222
222
< a name ='L157 '> </ a > < a href ='#L157 '> 157</ a >
223
223
< a name ='L158 '> </ a > < a href ='#L158 '> 158</ a >
224
224
< a name ='L159 '> </ a > < a href ='#L159 '> 159</ a >
225
- < a name ='L160 '> </ a > < a href ='#L160 '> 160</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
225
+ < a name ='L160 '> </ a > < a href ='#L160 '> 160</ a >
226
+ < a name ='L161 '> </ a > < a href ='#L161 '> 161</ a >
227
+ < a name ='L162 '> </ a > < a href ='#L162 '> 162</ a >
228
+ < a name ='L163 '> </ a > < a href ='#L163 '> 163</ a >
229
+ < a name ='L164 '> </ a > < a href ='#L164 '> 164</ a >
230
+ < a name ='L165 '> </ a > < a href ='#L165 '> 165</ a >
231
+ < a name ='L166 '> </ a > < a href ='#L166 '> 166</ a >
232
+ < a name ='L167 '> </ a > < a href ='#L167 '> 167</ a >
233
+ < a name ='L168 '> </ a > < a href ='#L168 '> 168</ a >
234
+ < a name ='L169 '> </ a > < a href ='#L169 '> 169</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
226
235
< span class ="cline-any cline-yes "> 3x</ span >
227
236
< span class ="cline-any cline-yes "> 3x</ span >
228
237
< span class ="cline-any cline-yes "> 3x</ span >
@@ -301,6 +310,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
301
310
< span class ="cline-any cline-yes "> 50x</ span >
302
311
< span class ="cline-any cline-yes "> 50x</ span >
303
312
< span class ="cline-any cline-yes "> 50x</ span >
313
+ < span class ="cline-any cline-yes "> 50x</ span >
314
+ < span class ="cline-any cline-yes "> 50x</ span >
315
+ < span class ="cline-any cline-yes "> 50x</ span >
304
316
< span class ="cline-any cline-yes "> 26x</ span >
305
317
< span class ="cline-any cline-yes "> 26x</ span >
306
318
< span class ="cline-any cline-yes "> 50x</ span >
@@ -309,12 +321,12 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
309
321
< span class ="cline-any cline-yes "> 24x</ span >
310
322
< span class ="cline-any cline-yes "> 50x</ span >
311
323
< span class ="cline-any cline-yes "> 50x</ span >
324
+ < span class ="cline-any cline-yes "> 11x</ span >
312
325
< span class ="cline-any cline-yes "> 8x</ span >
313
- < span class ="cline-any cline-yes "> 8x</ span >
314
- < span class ="cline-any cline-yes "> 8x</ span >
315
- < span class ="cline-any cline-no "> </ span >
316
- < span class ="cline-any cline-no "> </ span >
317
- < span class ="cline-any cline-yes "> 8x</ span >
326
+ < span class ="cline-any cline-yes "> 11x</ span >
327
+ < span class ="cline-any cline-yes "> 3x</ span >
328
+ < span class ="cline-any cline-yes "> 3x</ span >
329
+ < span class ="cline-any cline-yes "> 11x</ span >
318
330
< span class ="cline-any cline-yes "> 50x</ span >
319
331
< span class ="cline-any cline-yes "> 10x</ span >
320
332
< span class ="cline-any cline-yes "> 10x</ span >
@@ -335,12 +347,15 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
335
347
< span class ="cline-any cline-yes "> 54x</ span >
336
348
< span class ="cline-any cline-yes "> 54x</ span >
337
349
< span class ="cline-any cline-yes "> 54x</ span >
350
+ < span class ="cline-any cline-yes "> 54x</ span >
338
351
< span class ="cline-any cline-yes "> 36x</ span >
339
352
< span class ="cline-any cline-yes "> 36x</ span >
340
353
< span class ="cline-any cline-yes "> 36x</ span >
341
354
< span class ="cline-any cline-yes "> 36x</ span >
342
355
< span class ="cline-any cline-yes "> 36x</ span >
343
356
< span class ="cline-any cline-yes "> 36x</ span >
357
+ < span class ="cline-any cline-yes "> 36x</ span >
358
+ < span class ="cline-any cline-yes "> 54x</ span >
344
359
< span class ="cline-any cline-yes "> 54x</ span >
345
360
< span class ="cline-any cline-yes "> 54x</ span >
346
361
< span class ="cline-any cline-yes "> 54x</ span >
@@ -368,6 +383,9 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
368
383
< span class ="cline-any cline-yes "> 40x</ span >
369
384
< span class ="cline-any cline-yes "> 40x</ span >
370
385
< span class ="cline-any cline-yes "> 40x</ span >
386
+ < span class ="cline-any cline-yes "> 40x</ span >
387
+ < span class ="cline-any cline-yes "> 60x</ span >
388
+ < span class ="cline-any cline-yes "> 60x</ span >
371
389
< span class ="cline-any cline-yes "> 60x</ span >
372
390
< span class ="cline-any cline-yes "> 60x</ span >
373
391
< span class ="cline-any cline-yes "> 60x</ span >
@@ -412,7 +430,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
412
430
// MAIN //
413
431
414
432
/**
415
- * Performs the matrix-vector operation `y = alpha *A*x + beta *y` where `alpha ` and `beta ` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric band matrix, with `K` super-diagonals.
433
+ * Performs the matrix-vector operation `y = α *A*x + β *y` where `α ` and `β ` are scalars, `x` and `y` are `N` element vectors, and `A` is an `N` by `N` symmetric band matrix, with `K` super-diagonals.
416
434
*
417
435
* @param {string} uplo - specifies whether the upper or lower triangular part of the symmetric matrix `A` should be referenced
418
436
* @param {NonNegativeInteger} N - number of elements along each dimension of `A`
@@ -442,12 +460,15 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
442
460
* // y => <Float64Array>[ 10.0, 25.0, 10.0 ]
443
461
*/
444
462
function dsbmv( uplo, N, K, alpha, A, strideA1, strideA2, offsetA, x, strideX, offsetX, beta, y, strideY, offsetY ) { // eslint-disable-line max-params, max-len
445
- var temp1 ;
446
- var temp2 ;
463
+ var tmp1 ;
464
+ var tmp2 ;
447
465
var isrm;
448
466
var jmin;
449
467
var sa0;
450
468
var sa1;
469
+ var oa2;
470
+ var tmp;
471
+ var ia;
451
472
var ix;
452
473
var iy;
453
474
var jx;
@@ -466,41 +487,44 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
466
487
sa0 = strideA1;
467
488
sa1 = strideA2;
468
489
}
469
- // Form: y = beta *y
490
+ // Form: y = β *y
470
491
if ( beta !== 1.0 ) {
471
492
if ( beta === 0.0 ) {
472
493
dfill( N, 0.0, y, strideY, offsetY );
473
- }< span class =" branch-0 cbranch-no " title =" branch not covered " > else {</ span >
474
- < span class =" cstat-no " title =" statement not covered " > dscal( N, beta, y, strideY, offsetY );</ span >
475
- < span class =" cstat-no " title =" statement not covered " > }</ span >
494
+ } else {
495
+ dscal( N, beta, y, strideY, offsetY );
496
+ }
476
497
}
477
498
if ( alpha === 0.0 ) {
478
499
return y;
479
500
}
480
501
ox = offsetX;
481
502
oy = offsetY;
482
503
483
- // Form: y = alpha *A*x + y
504
+ // Form: y = α *A*x + y
484
505
if (
485
506
( isrm && uplo === 'upper' ) ||
486
507
( !isrm && uplo === 'lower' )
487
508
) {
488
509
ix = ox;
489
510
iy = oy;
490
511
for ( i = 0; i < N; i++ ) {
491
- temp1 = alpha * x[ ix ];
492
- temp2 = 0.0;
512
+ tmp1 = alpha * x[ ix ];
513
+ tmp2 = 0.0;
493
514
jmin = max( 0, i - K );
494
515
jx = ox + ( jmin * strideX );
495
516
jy = oy + ( jmin * strideY );
517
+ ia = offsetA + (i * sa1);
496
518
for ( j = jmin; j < i; j++ ) {
497
519
oa = offsetA + ((i - j) * sa0);
498
- y[ jy ] += temp1 * A[ oa + (j * sa1) ];
499
- temp2 += x[ jx ] * A[ oa + (j * sa1) ];
520
+ oa2 = oa + (j * sa1);
521
+ y[ jy ] += tmp1 * A[ oa2 ];
522
+ tmp2 += x[ jx ] * A[ oa2 ];
500
523
jx += strideX;
501
524
jy += strideY;
502
525
}
503
- y[ iy ] += ( temp1 * A[ offsetA + (i * sa1) ] ) + ( alpha * temp2 );
526
+ tmp = alpha * tmp2;
527
+ y[ iy ] += ( tmp1 * A[ ia ] ) + tmp;
504
528
ix += strideX;
505
529
iy += strideY;
506
530
}
@@ -515,20 +539,23 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
515
539
ix = ox;
516
540
iy = oy;
517
541
for ( i = 0; i < N; i++ ) {
518
- temp1 = alpha * x[ ix ];
519
- temp2 = 0.0;
542
+ tmp1 = alpha * x[ ix ];
543
+ tmp2 = 0.0;
520
544
jmin = max( 0, i - K );
521
545
jx = ox + ( jmin * strideX );
522
546
jy = oy + ( jmin * strideY );
523
547
for ( j = jmin; j < i; j++ ) {
524
- oa = offsetA + +((K + j - i) * sa0);
525
- y[ jy ] += temp1 * A[ oa + (i * sa1) ];
526
- temp2 += x[ jx ] * A[ oa + (i * sa1) ];
548
+ oa = offsetA + ((K + j - i) * sa0);
549
+ oa2 = oa + (i * sa1);
550
+ y[ jy ] += tmp1 * A[ oa2 ];
551
+ tmp2 += x[ jx ] * A[ oa2 ];
527
552
jx += strideX;
528
553
jy += strideY;
529
554
}
530
555
oa = offsetA + (K * sa0);
531
- y[ iy ] += ( temp1 * A[ oa + (i * sa1) ] ) + ( alpha * temp2 );
556
+ oa2 = oa + (i * sa1);
557
+ tmp = alpha * tmp2;
558
+ y[ iy ] += ( tmp1 * A[ oa2 ] ) + tmp;
532
559
ix += strideX;
533
560
iy += strideY;
534
561
}
@@ -547,7 +574,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
547
574
< div class ='footer quiet pad2 space-top1 center small '>
548
575
Code coverage generated by
549
576
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
550
- at 2025-04-30T11:23:10.051Z
577
+ at 2025-07-24T12:31:16.091Z
551
578
</ div >
552
579
< script src ="../../../../prettify.js "> </ script >
553
580
< script >
0 commit comments