Skip to content

Commit 72ce997

Browse files
committed
Update artifacts
1 parent 22f9f84 commit 72ce997

File tree

10 files changed

+215
-92
lines changed

10 files changed

+215
-92
lines changed

blas/base/dgemv/base.js.html

Lines changed: 190 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
2323
<div class='clearfix'>
2424

2525
<div class='fl pad1y space-right2'>
26-
<span class="strong">100% </span>
26+
<span class="strong">99.45% </span>
2727
<span class="quiet">Statements</span>
28-
<span class='fraction'>143/143</span>
28+
<span class='fraction'>183/184</span>
2929
</div>
3030

3131

3232
<div class='fl pad1y space-right2'>
33-
<span class="strong">100% </span>
33+
<span class="strong">95.83% </span>
3434
<span class="quiet">Branches</span>
35-
<span class='fraction'>18/18</span>
35+
<span class='fraction'>23/24</span>
3636
</div>
3737

3838

3939
<div class='fl pad1y space-right2'>
4040
<span class="strong">100% </span>
4141
<span class="quiet">Functions</span>
42-
<span class='fraction'>1/1</span>
42+
<span class='fraction'>2/2</span>
4343
</div>
4444

4545

4646
<div class='fl pad1y space-right2'>
47-
<span class="strong">100% </span>
47+
<span class="strong">99.45% </span>
4848
<span class="quiet">Lines</span>
49-
<span class='fraction'>143/143</span>
49+
<span class='fraction'>183/184</span>
5050
</div>
5151

5252

@@ -206,7 +206,48 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
206206
<a name='L141'></a><a href='#L141'>141</a>
207207
<a name='L142'></a><a href='#L142'>142</a>
208208
<a name='L143'></a><a href='#L143'>143</a>
209-
<a name='L144'></a><a href='#L144'>144</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
209+
<a name='L144'></a><a href='#L144'>144</a>
210+
<a name='L145'></a><a href='#L145'>145</a>
211+
<a name='L146'></a><a href='#L146'>146</a>
212+
<a name='L147'></a><a href='#L147'>147</a>
213+
<a name='L148'></a><a href='#L148'>148</a>
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>
217+
<a name='L152'></a><a href='#L152'>152</a>
218+
<a name='L153'></a><a href='#L153'>153</a>
219+
<a name='L154'></a><a href='#L154'>154</a>
220+
<a name='L155'></a><a href='#L155'>155</a>
221+
<a name='L156'></a><a href='#L156'>156</a>
222+
<a name='L157'></a><a href='#L157'>157</a>
223+
<a name='L158'></a><a href='#L158'>158</a>
224+
<a name='L159'></a><a href='#L159'>159</a>
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>
235+
<a name='L170'></a><a href='#L170'>170</a>
236+
<a name='L171'></a><a href='#L171'>171</a>
237+
<a name='L172'></a><a href='#L172'>172</a>
238+
<a name='L173'></a><a href='#L173'>173</a>
239+
<a name='L174'></a><a href='#L174'>174</a>
240+
<a name='L175'></a><a href='#L175'>175</a>
241+
<a name='L176'></a><a href='#L176'>176</a>
242+
<a name='L177'></a><a href='#L177'>177</a>
243+
<a name='L178'></a><a href='#L178'>178</a>
244+
<a name='L179'></a><a href='#L179'>179</a>
245+
<a name='L180'></a><a href='#L180'>180</a>
246+
<a name='L181'></a><a href='#L181'>181</a>
247+
<a name='L182'></a><a href='#L182'>182</a>
248+
<a name='L183'></a><a href='#L183'>183</a>
249+
<a name='L184'></a><a href='#L184'>184</a>
250+
<a name='L185'></a><a href='#L185'>185</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
210251
<span class="cline-any cline-yes">3x</span>
211252
<span class="cline-any cline-yes">3x</span>
212253
<span class="cline-any cline-yes">3x</span>
@@ -254,6 +295,32 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
254295
<span class="cline-any cline-yes">3x</span>
255296
<span class="cline-any cline-yes">3x</span>
256297
<span class="cline-any cline-yes">3x</span>
298+
<span class="cline-any cline-yes">84x</span>
299+
<span class="cline-any cline-yes">84x</span>
300+
<span class="cline-any cline-yes">84x</span>
301+
<span class="cline-any cline-yes">3x</span>
302+
<span class="cline-any cline-yes">3x</span>
303+
<span class="cline-any cline-yes">3x</span>
304+
<span class="cline-any cline-yes">3x</span>
305+
<span class="cline-any cline-yes">3x</span>
306+
<span class="cline-any cline-yes">3x</span>
307+
<span class="cline-any cline-yes">3x</span>
308+
<span class="cline-any cline-yes">3x</span>
309+
<span class="cline-any cline-yes">3x</span>
310+
<span class="cline-any cline-yes">3x</span>
311+
<span class="cline-any cline-yes">3x</span>
312+
<span class="cline-any cline-yes">3x</span>
313+
<span class="cline-any cline-yes">3x</span>
314+
<span class="cline-any cline-yes">3x</span>
315+
<span class="cline-any cline-yes">3x</span>
316+
<span class="cline-any cline-yes">3x</span>
317+
<span class="cline-any cline-yes">3x</span>
318+
<span class="cline-any cline-yes">3x</span>
319+
<span class="cline-any cline-yes">3x</span>
320+
<span class="cline-any cline-yes">3x</span>
321+
<span class="cline-any cline-yes">3x</span>
322+
<span class="cline-any cline-yes">3x</span>
323+
<span class="cline-any cline-yes">3x</span>
257324
<span class="cline-any cline-yes">3x</span>
258325
<span class="cline-any cline-yes">3x</span>
259326
<span class="cline-any cline-yes">3x</span>
@@ -283,30 +350,19 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
283350
<span class="cline-any cline-yes">44x</span>
284351
<span class="cline-any cline-yes">44x</span>
285352
<span class="cline-any cline-yes">44x</span>
286-
<span class="cline-any cline-yes">22x</span>
287-
<span class="cline-any cline-yes">22x</span>
288-
<span class="cline-any cline-yes">22x</span>
289-
<span class="cline-any cline-yes">22x</span>
290-
<span class="cline-any cline-yes">22x</span>
291-
<span class="cline-any cline-yes">22x</span>
292-
<span class="cline-any cline-yes">22x</span>
293-
<span class="cline-any cline-yes">22x</span>
294-
<span class="cline-any cline-yes">44x</span>
295-
<span class="cline-any cline-yes">32x</span>
296-
<span class="cline-any cline-yes">32x</span>
297-
<span class="cline-any cline-yes">44x</span>
298-
<span class="cline-any cline-yes">12x</span>
299353
<span class="cline-any cline-yes">12x</span>
300354
<span class="cline-any cline-yes">12x</span>
301355
<span class="cline-any cline-yes">44x</span>
356+
<span class="cline-any cline-yes">32x</span>
357+
<span class="cline-any cline-yes">32x</span>
358+
<span class="cline-any cline-yes">32x</span>
302359
<span class="cline-any cline-yes">44x</span>
303360
<span class="cline-any cline-yes">44x</span>
304361
<span class="cline-any cline-yes">4x</span>
305362
<span class="cline-any cline-yes">44x</span>
306363
<span class="cline-any cline-yes">40x</span>
307364
<span class="cline-any cline-yes">40x</span>
308365
<span class="cline-any cline-yes">44x</span>
309-
<span class="cline-any cline-yes">44x</span>
310366
<span class="cline-any cline-yes">4x</span>
311367
<span class="cline-any cline-yes">4x</span>
312368
<span class="cline-any cline-yes">40x</span>
@@ -315,30 +371,56 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
315371
<span class="cline-any cline-yes">24x</span>
316372
<span class="cline-any cline-yes">44x</span>
317373
<span class="cline-any cline-yes">20x</span>
374+
<span class="cline-any cline-yes">4x</span>
375+
<span class="cline-any cline-yes">4x</span>
376+
<span class="cline-any cline-yes">4x</span>
377+
<span class="cline-any cline-yes">20x</span>
378+
<span class="cline-any cline-yes">16x</span>
379+
<span class="cline-any cline-yes">16x</span>
380+
<span class="cline-any cline-yes">16x</span>
381+
<span class="cline-any cline-yes">16x</span>
318382
<span class="cline-any cline-yes">20x</span>
383+
<span class="cline-any cline-yes">20x</span>
384+
<span class="cline-any cline-yes">20x</span>
385+
<span class="cline-any cline-yes">49x</span>
319386
<span class="cline-any cline-yes">49x</span>
387+
<span class="cline-any cline-no">&nbsp;</span>
320388
<span class="cline-any cline-yes">49x</span>
321389
<span class="cline-any cline-yes">49x</span>
322390
<span class="cline-any cline-yes">49x</span>
323391
<span class="cline-any cline-yes">151x</span>
324392
<span class="cline-any cline-yes">151x</span>
325393
<span class="cline-any cline-yes">151x</span>
394+
<span class="cline-any cline-yes">151x</span>
395+
<span class="cline-any cline-yes">49x</span>
396+
<span class="cline-any cline-yes">49x</span>
326397
<span class="cline-any cline-yes">49x</span>
327398
<span class="cline-any cline-yes">49x</span>
328399
<span class="cline-any cline-yes">20x</span>
329400
<span class="cline-any cline-yes">20x</span>
330401
<span class="cline-any cline-yes">20x</span>
331402
<span class="cline-any cline-yes">20x</span>
332403
<span class="cline-any cline-yes">20x</span>
404+
<span class="cline-any cline-yes">44x</span>
405+
<span class="cline-any cline-yes">16x</span>
406+
<span class="cline-any cline-yes">16x</span>
407+
<span class="cline-any cline-yes">16x</span>
408+
<span class="cline-any cline-yes">44x</span>
409+
<span class="cline-any cline-yes">4x</span>
410+
<span class="cline-any cline-yes">4x</span>
411+
<span class="cline-any cline-yes">4x</span>
412+
<span class="cline-any cline-yes">4x</span>
413+
<span class="cline-any cline-yes">20x</span>
333414
<span class="cline-any cline-yes">20x</span>
334415
<span class="cline-any cline-yes">44x</span>
335416
<span class="cline-any cline-yes">66x</span>
336417
<span class="cline-any cline-yes">66x</span>
337418
<span class="cline-any cline-yes">66x</span>
338-
<span class="cline-any cline-yes">66x</span>
339419
<span class="cline-any cline-yes">151x</span>
340420
<span class="cline-any cline-yes">151x</span>
341421
<span class="cline-any cline-yes">151x</span>
422+
<span class="cline-any cline-yes">151x</span>
423+
<span class="cline-any cline-yes">66x</span>
342424
<span class="cline-any cline-yes">66x</span>
343425
<span class="cline-any cline-yes">66x</span>
344426
<span class="cline-any cline-yes">66x</span>
@@ -376,6 +458,32 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
376458
var dscal = require( '@stdlib/blas/base/dscal' ).ndarray;
377459
&nbsp;
378460
&nbsp;
461+
// FUNCTIONS //
462+
&nbsp;
463+
/**
464+
* Tests whether a provided string indicates to transpose a matrix.
465+
*
466+
* @private
467+
* @param {string} str - input string
468+
* @returns {boolean} boolean indicating whether to transpose a matrix
469+
*
470+
* @example
471+
* var bool = isTransposed( 'transpose' );
472+
* // returns true
473+
*
474+
* @example
475+
* var bool = isTransposed( 'conjugate-transpose' );
476+
* // returns true
477+
*
478+
* @example
479+
* var bool = isTransposed( 'no-transpose' );
480+
* // returns false
481+
*/
482+
function isTransposed( str ) { // TODO: consider moving to a separate helper utility package
483+
return ( str !== 'no-transpose' );
484+
}
485+
&nbsp;
486+
&nbsp;
379487
// MAIN //
380488
&nbsp;
381489
/**
@@ -414,76 +522,91 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
414522
var xlen;
415523
var ylen;
416524
var tmp;
417-
var ix1;
418-
var iy1;
419-
var sa0;
420-
var sa1;
525+
var da0;
526+
var da1;
527+
var ix;
528+
var iy;
529+
var ia;
421530
var i1;
422531
var i0;
423-
var oa;
424532
&nbsp;
425-
// Note on variable naming convention: sa#, ix#, i# where # corresponds to the loop number, with `0` being the innermost loop...
533+
// Note on variable naming convention: da#, i# where # corresponds to the loop number, with `0` being the innermost loop...
426534
&nbsp;
427535
isrm = isRowMajor( [ strideA1, strideA2 ] );
428-
if ( isrm ) {
429-
// For row-major matrices, the last dimension has the fastest changing index...
430-
sa0 = strideA2; // stride for innermost loop
431-
sa1 = strideA1; // stride for outermost loop
432-
} else { // isColMajor
433-
// For column-major matrices, the first dimension has the fastest changing index...
434-
sa0 = strideA1; // stride for innermost loop
435-
sa1 = strideA2; // stride for outermost loop
436-
}
437-
if ( trans === 'no-transpose' ) {
438-
xlen = N;
439-
ylen = M;
440-
} else {
536+
if ( isTransposed( trans ) ) {
441537
xlen = M;
442538
ylen = N;
539+
} else {
540+
xlen = N;
541+
ylen = M;
443542
}
444543
// y = beta*y
445-
if ( beta !== 1.0 ) {
446-
if ( beta === 0.0 ) {
447-
dfill( ylen, 0.0, y, strideY, offsetY );
448-
} else {
449-
dscal( ylen, beta, y, strideY, offsetY );
450-
}
544+
if ( beta === 0.0 ) {
545+
dfill( ylen, 0.0, y, strideY, offsetY );
546+
} else if ( beta !== 1.0 ) {
547+
dscal( ylen, beta, y, strideY, offsetY );
451548
}
452549
if ( alpha === 0.0 ) {
453550
return y;
454551
}
455552
// Form: y = α*A*x + y
456553
if (
457-
( !isrm &amp;&amp; trans === 'no-transpose' ) ||
458-
( isrm &amp;&amp; trans !== 'no-transpose' )
554+
( !isrm &amp;&amp; !isTransposed( trans ) ) ||
555+
( isrm &amp;&amp; isTransposed( trans ) )
459556
) {
460-
ix1 = offsetX;
557+
if ( isrm ) {
558+
// For row-major matrices, the last dimension has the fastest changing index...
559+
da0 = strideA2; // offset increment for innermost loop
560+
da1 = strideA1 - ( ylen*strideA2 ); // offset increment for outermost loop
561+
} else { // isColMajor
562+
// For column-major matrices, the first dimension has the fastest changing index...
563+
da0 = strideA1; // offset increment for innermost loop
564+
da1 = strideA2 - ( ylen*strideA1 ); // offset increment for outermost loop
565+
}
566+
ia = offsetA;
567+
ix = offsetX;
461568
for ( i1 = 0; i1 &lt; xlen; i1++ ) {
462-
tmp = alpha * x[ ix1 ];
463-
oa = offsetA + (sa1*i1);
464-
iy1 = offsetY;
465-
for ( i0 = 0; i0 &lt; ylen; i0++ ) {
466-
y[ iy1 ] += A[ oa+(sa0*i0) ] * tmp;
467-
iy1 += strideY;
569+
tmp = alpha * x[ ix ];
570+
if ( tmp === 0.0 ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
571+
<span class="cstat-no" title="statement not covered" > ia += da0 * ylen;</span>
572+
} else {
573+
iy = offsetY;
574+
for ( i0 = 0; i0 &lt; ylen; i0++ ) {
575+
y[ iy ] += A[ ia ] * tmp;
576+
iy += strideY;
577+
ia += da0;
578+
}
468579
}
469-
ix1 += strideX;
580+
ix += strideX;
581+
ia += da1;
470582
}
471583
return y;
472584
}
473585
// Form: y = α*A^T*x + y
474586
&nbsp;
475-
// ( !isrm &amp;&amp; trans !== 'no-transpose' ) || ( isrm &amp;&amp; trans === 'no-transpose' )
476-
iy1 = offsetY;
587+
// ( !isrm &amp;&amp; isTransposed( trans ) ) || ( isrm &amp;&amp; !isTransposed( trans ) )
588+
if ( isrm ) {
589+
// For row-major matrices, the last dimension has the fastest changing index...
590+
da0 = strideA2; // offset increment for innermost loop
591+
da1 = strideA1 - ( xlen*strideA2 ); // offset increment for outermost loop
592+
} else { // isColMajor
593+
// For column-major matrices, the first dimension has the fastest changing index...
594+
da0 = strideA1; // offset increment for innermost loop
595+
da1 = strideA2 - ( xlen*strideA1 ); // offset increment for outermost loop
596+
}
597+
ia = offsetA;
598+
iy = offsetY;
477599
for ( i1 = 0; i1 &lt; ylen; i1++ ) {
478600
tmp = 0.0;
479-
ix1 = offsetX;
480-
oa = offsetA + (sa1*i1);
601+
ix = offsetX;
481602
for ( i0 = 0; i0 &lt; xlen; i0++ ) {
482-
tmp += A[ oa+(sa0*i0) ] * x[ ix1 ];
483-
ix1 += strideX;
603+
tmp += A[ ia ] * x[ ix ];
604+
ix += strideX;
605+
ia += da0;
484606
}
485-
y[ iy1 ] += alpha * tmp;
486-
iy1 += strideY;
607+
y[ iy ] += alpha * tmp;
608+
iy += strideY;
609+
ia += da1;
487610
}
488611
return y;
489612
}
@@ -499,7 +622,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
499622
<div class='footer quiet pad2 space-top1 center small'>
500623
Code coverage generated by
501624
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
502-
at 2025-06-28T16:28:10.574Z
625+
at 2025-06-29T10:49:20.753Z
503626
</div>
504627
<script src="../../../../prettify.js"></script>
505628
<script>

blas/base/dgemv/coverage.ndjson

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[627,627,100,68,68,100,5,5,100,627,627,100,"e62310ca814d3ff297215dffcc8dd0be4d143972","2025-06-28 21:56:37 +0530"]
1+
[667,668,99.8503,73,74,98.6486,6,6,100,667,668,99.8503,"02979c086d0d13af5d85231d95fe219bc3cea848","2025-06-29 03:47:01 -0700"]

0 commit comments

Comments
 (0)