Skip to content

Commit def18a9

Browse files
committed
Update artifacts
1 parent ccb1324 commit def18a9

File tree

10 files changed

+226
-274
lines changed

10 files changed

+226
-274
lines changed

blas/ext/base/svander/base.js.html

Lines changed: 126 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h1><a href="index.html">All files</a> base.js</h1>
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

@@ -265,49 +265,47 @@ <h1><a href="index.html">All files</a> base.js</h1>
265265
<span class="cline-any cline-yes">3x</span>
266266
<span class="cline-any cline-yes">3x</span>
267267
<span class="cline-any cline-yes">3x</span>
268-
<span class="cline-any cline-yes">28x</span>
269-
<span class="cline-any cline-yes">28x</span>
270-
<span class="cline-any cline-yes">28x</span>
271-
<span class="cline-any cline-yes">28x</span>
272-
<span class="cline-any cline-yes">28x</span>
273-
<span class="cline-any cline-yes">28x</span>
274-
<span class="cline-any cline-yes">28x</span>
275-
<span class="cline-any cline-yes">28x</span>
276-
<span class="cline-any cline-yes">28x</span>
277-
<span class="cline-any cline-yes">28x</span>
278-
<span class="cline-any cline-yes">28x</span>
279-
<span class="cline-any cline-yes">28x</span>
280-
<span class="cline-any cline-yes">28x</span>
281-
<span class="cline-any cline-yes">28x</span>
282-
<span class="cline-any cline-yes">28x</span>
283-
<span class="cline-any cline-yes">28x</span>
284-
<span class="cline-any cline-yes">28x</span>
285-
<span class="cline-any cline-yes">4x</span>
286-
<span class="cline-any cline-yes">4x</span>
287-
<span class="cline-any cline-yes">4x</span>
288-
<span class="cline-any cline-yes">4x</span>
289-
<span class="cline-any cline-yes">4x</span>
290-
<span class="cline-any cline-yes">4x</span>
291-
<span class="cline-any cline-yes">4x</span>
292-
<span class="cline-any cline-yes">4x</span>
293-
<span class="cline-any cline-yes">10x</span>
294-
<span class="cline-any cline-yes">10x</span>
295-
<span class="cline-any cline-yes">10x</span>
296-
<span class="cline-any cline-yes">24x</span>
297-
<span class="cline-any cline-yes">24x</span>
298-
<span class="cline-any cline-yes">24x</span>
299-
<span class="cline-any cline-yes">10x</span>
300-
<span class="cline-any cline-yes">10x</span>
301-
<span class="cline-any cline-yes">10x</span>
302-
<span class="cline-any cline-yes">28x</span>
303-
<span class="cline-any cline-yes">14x</span>
304-
<span class="cline-any cline-yes">14x</span>
305-
<span class="cline-any cline-yes">14x</span>
306-
<span class="cline-any cline-yes">14x</span>
307-
<span class="cline-any cline-yes">14x</span>
268+
<span class="cline-any cline-yes">3x</span>
269+
<span class="cline-any cline-yes">3x</span>
270+
<span class="cline-any cline-yes">3x</span>
271+
<span class="cline-any cline-yes">3x</span>
272+
<span class="cline-any cline-yes">39x</span>
273+
<span class="cline-any cline-yes">39x</span>
274+
<span class="cline-any cline-yes">39x</span>
275+
<span class="cline-any cline-yes">39x</span>
276+
<span class="cline-any cline-yes">39x</span>
277+
<span class="cline-any cline-yes">39x</span>
278+
<span class="cline-any cline-yes">39x</span>
279+
<span class="cline-any cline-yes">39x</span>
280+
<span class="cline-any cline-yes">39x</span>
281+
<span class="cline-any cline-yes">39x</span>
282+
<span class="cline-any cline-yes">39x</span>
283+
<span class="cline-any cline-yes">39x</span>
284+
<span class="cline-any cline-yes">26x</span>
285+
<span class="cline-any cline-yes">26x</span>
286+
<span class="cline-any cline-yes">26x</span>
287+
<span class="cline-any cline-yes">26x</span>
288+
<span class="cline-any cline-yes">26x</span>
289+
<span class="cline-any cline-yes">26x</span>
290+
<span class="cline-any cline-yes">26x</span>
291+
<span class="cline-any cline-yes">12x</span>
292+
<span class="cline-any cline-yes">12x</span>
293+
<span class="cline-any cline-yes">12x</span>
294+
<span class="cline-any cline-yes">27x</span>
295+
<span class="cline-any cline-yes">27x</span>
296+
<span class="cline-any cline-yes">27x</span>
297+
<span class="cline-any cline-yes">48x</span>
298+
<span class="cline-any cline-yes">48x</span>
299+
<span class="cline-any cline-yes">48x</span>
300+
<span class="cline-any cline-yes">27x</span>
301+
<span class="cline-any cline-yes">27x</span>
302+
<span class="cline-any cline-yes">27x</span>
303+
<span class="cline-any cline-yes">12x</span>
304+
<span class="cline-any cline-yes">12x</span>
308305
<span class="cline-any cline-yes">14x</span>
309306
<span class="cline-any cline-yes">14x</span>
310307
<span class="cline-any cline-yes">14x</span>
308+
<span class="cline-any cline-yes">26x</span>
311309
<span class="cline-any cline-yes">32x</span>
312310
<span class="cline-any cline-yes">32x</span>
313311
<span class="cline-any cline-yes">32x</span>
@@ -317,41 +315,43 @@ <h1><a href="index.html">All files</a> base.js</h1>
317315
<span class="cline-any cline-yes">32x</span>
318316
<span class="cline-any cline-yes">32x</span>
319317
<span class="cline-any cline-yes">32x</span>
320-
<span class="cline-any cline-yes">24x</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>
324-
<span class="cline-any cline-yes">3x</span>
325-
<span class="cline-any cline-yes">3x</span>
326-
<span class="cline-any cline-yes">3x</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">3x</span>
330-
<span class="cline-any cline-yes">7x</span>
331-
<span class="cline-any cline-yes">7x</span>
332-
<span class="cline-any cline-yes">18x</span>
333-
<span class="cline-any cline-yes">18x</span>
334-
<span class="cline-any cline-yes">18x</span>
335-
<span class="cline-any cline-yes">18x</span>
336-
<span class="cline-any cline-yes">7x</span>
337-
<span class="cline-any cline-yes">7x</span>
338-
<span class="cline-any cline-yes">10x</span>
339-
<span class="cline-any cline-yes">7x</span>
340-
<span class="cline-any cline-yes">7x</span>
341-
<span class="cline-any cline-yes">7x</span>
342-
<span class="cline-any cline-yes">7x</span>
343-
<span class="cline-any cline-yes">7x</span>
318+
<span class="cline-any cline-yes">14x</span>
319+
<span class="cline-any cline-yes">14x</span>
344320
<span class="cline-any cline-yes">13x</span>
345321
<span class="cline-any cline-yes">13x</span>
346322
<span class="cline-any cline-yes">13x</span>
347-
<span class="cline-any cline-yes">31x</span>
348-
<span class="cline-any cline-yes">31x</span>
349-
<span class="cline-any cline-yes">31x</span>
350-
<span class="cline-any cline-yes">31x</span>
351323
<span class="cline-any cline-yes">13x</span>
352-
<span class="cline-any cline-yes">7x</span>
353-
<span class="cline-any cline-yes">28x</span>
354-
<span class="cline-any cline-yes">28x</span>
324+
<span class="cline-any cline-yes">13x</span>
325+
<span class="cline-any cline-yes">13x</span>
326+
<span class="cline-any cline-yes">13x</span>
327+
<span class="cline-any cline-yes">39x</span>
328+
<span class="cline-any cline-yes">4x</span>
329+
<span class="cline-any cline-yes">4x</span>
330+
<span class="cline-any cline-yes">4x</span>
331+
<span class="cline-any cline-yes">8x</span>
332+
<span class="cline-any cline-yes">8x</span>
333+
<span class="cline-any cline-yes">20x</span>
334+
<span class="cline-any cline-yes">20x</span>
335+
<span class="cline-any cline-yes">20x</span>
336+
<span class="cline-any cline-yes">20x</span>
337+
<span class="cline-any cline-yes">8x</span>
338+
<span class="cline-any cline-yes">8x</span>
339+
<span class="cline-any cline-yes">4x</span>
340+
<span class="cline-any cline-yes">4x</span>
341+
<span class="cline-any cline-yes">9x</span>
342+
<span class="cline-any cline-yes">9x</span>
343+
<span class="cline-any cline-yes">9x</span>
344+
<span class="cline-any cline-yes">39x</span>
345+
<span class="cline-any cline-yes">17x</span>
346+
<span class="cline-any cline-yes">17x</span>
347+
<span class="cline-any cline-yes">39x</span>
348+
<span class="cline-any cline-yes">39x</span>
349+
<span class="cline-any cline-yes">39x</span>
350+
<span class="cline-any cline-yes">39x</span>
351+
<span class="cline-any cline-yes">17x</span>
352+
<span class="cline-any cline-yes">17x</span>
353+
<span class="cline-any cline-yes">9x</span>
354+
<span class="cline-any cline-yes">39x</span>
355355
<span class="cline-any cline-yes">3x</span>
356356
<span class="cline-any cline-yes">3x</span>
357357
<span class="cline-any cline-yes">3x</span>
@@ -390,9 +390,13 @@ <h1><a href="index.html">All files</a> base.js</h1>
390390
/**
391391
* Generates a single-precision floating-point Vandermonde matrix.
392392
*
393+
* ## Notes
394+
*
395+
* - The implementation uses recursive multiplication to generate successive powers, which carries risk of additional accumulated floating-point error; however, for most use cases, such additional error should be negligible and not problematic.
396+
*
393397
* @private
394398
* @param {integer} mode - mode indicating whether to generate increasing or decreasing powers
395-
* @param {NonNegativeInteger} M - number of rows in `out` and number of indexed elements in `x`
399+
* @param {NonNegativeInteger} M - number of rows in `out`
396400
* @param {NonNegativeInteger} N - number of columns in `out`
397401
* @param {Float32Array} x - input array
398402
* @param {integer} strideX - stride length for `x`
@@ -413,89 +417,85 @@ <h1><a href="index.html">All files</a> base.js</h1>
413417
* // out =&gt; &lt;Float32Array&gt;[ 1.0, 1.0, 1.0, 4.0, 2.0, 1.0, 9.0, 3.0, 1.0 ]
414418
*/
415419
function svander( mode, M, N, x, strideX, offsetX, out, strideOut1, strideOut2, offsetOut ) {
416-
var isrm;
417420
var do0;
418421
var do1;
419422
var S0;
420423
var S1;
421-
var sx;
422424
var io;
423425
var ix;
424426
var i0;
425427
var i1;
426428
&nbsp;
427429
// Note on variable naming convention: S#, do#, io, i# where # corresponds to the loop number, with `0` being the innermost loop...
428-
isrm = isRowMajor( [ strideOut1, strideOut2 ] );
429-
sx = strideX;
430-
&nbsp;
431-
if ( isrm &amp;&amp; mode &gt; 0 ) {
432-
// Row-major, increasing: x^0, x^1, ..., x^(N-1)
430+
if ( isRowMajor( [ strideOut1, strideOut2 ] ) ) {
433431
S0 = N;
434432
S1 = M;
435433
do0 = strideOut2;
436434
do1 = strideOut1 - ( S0*strideOut2 );
437-
io = offsetOut;
438-
ix = offsetX;
439-
for ( i1 = 0; i1 &lt; S1; i1++ ) {
440-
out[ io ] = 1.0;
441-
io += do0;
442-
for ( i0 = 1; i0 &lt; S0; i0++ ) {
443-
out[ io ] = out[ io - do0 ] * x[ ix ];
435+
&nbsp;
436+
// Increasing: x^0, x^1, ..., x^(N-1)
437+
if ( mode &gt; 0 ) {
438+
io = offsetOut;
439+
ix = offsetX;
440+
for ( i1 = 0; i1 &lt; S1; i1++ ) {
441+
out[ io ] = 1.0;
444442
io += do0;
443+
for ( i0 = 1; i0 &lt; S0; i0++ ) {
444+
out[ io ] = out[ io-do0 ] * x[ ix ];
445+
io += do0;
446+
}
447+
ix += strideX;
448+
io += do1;
445449
}
446-
ix += sx;
447-
io += do1;
450+
return out;
448451
}
449-
} else if ( isrm ) {
450-
// Row-major, decreasing: x^(N-1), x^(N-2), ..., x^0
451-
S0 = N;
452-
S1 = M;
453-
do0 = strideOut2;
454-
do1 = strideOut1 + ( S0*strideOut2 );
455-
io = offsetOut + ( ( S0-1 ) * do0 );
456-
ix = offsetX;
457-
for ( i1 = 0; i1 &lt; S1; i1++ ) {
452+
// Decreasing: x^(N-1), x^(N-2), ..., x^0
453+
io = offsetOut + ( ( S1-1 ) * strideOut1 ) + ( ( S0-1 ) * strideOut2 );
454+
ix = offsetX + ( ( S1-1 ) * strideX );
455+
for ( i1 = S1-1; i1 &gt;= 0; i1-- ) {
458456
out[ io ] = 1.0;
459457
io -= do0;
460458
for ( i0 = 1; i0 &lt; S0; i0++ ) {
461-
out[ io ] = out[ io + do0 ] * x[ ix ];
459+
out[ io ] = out[ io+do0 ] * x[ ix ];
462460
io -= do0;
463461
}
464-
ix += sx;
465-
io += do1;
462+
ix -= strideX;
463+
io -= do1;
466464
}
467-
} else if ( mode &gt; 0 ) {
468-
// Column-major, increasing: column j contains x^j
469-
S0 = M;
470-
S1 = N;
471-
do0 = strideOut1;
472-
do1 = strideOut2 - ( S0*strideOut1 );
473-
io = offsetOut;
474-
sfill( S0, 1.0, out, do0, io );
475-
io += strideOut2;
465+
return out;
466+
}
467+
// Column-major...
468+
S0 = M;
469+
S1 = N;
470+
do0 = strideOut1;
471+
do1 = strideOut2 - ( S0*strideOut1 );
472+
&nbsp;
473+
// Increasing: column j contains x^j
474+
if ( mode &gt; 0 ) {
475+
sfill( S0, 1.0, out, strideOut1, offsetOut );
476+
io = offsetOut + strideOut2;
476477
for ( i1 = 1; i1 &lt; S1; i1++ ) {
477478
ix = offsetX;
478479
for ( i0 = 0; i0 &lt; S0; i0++ ) {
479-
out[ io ] = out[ io - strideOut2 ] * x[ ix ];
480-
ix += sx;
480+
out[ io ] = out[ io-strideOut2 ] * x[ ix ];
481+
ix += strideX;
481482
io += do0;
482483
}
483484
io += do1;
484485
}
485-
} else {
486-
// Column-major, decreasing: column 0 contains x^(N-1), last column all ones
487-
S0 = M;
488-
S1 = N;
489-
sfill( S0, 1.0, out, strideOut1, offsetOut + ( ( S1-1 ) * strideOut2 ) );
490-
for ( i1 = S1 - 2; i1 &gt;= 0; i1-- ) {
491-
io = offsetOut + ( i1 * strideOut2 );
492-
ix = offsetX;
493-
for ( i0 = 0; i0 &lt; S0; i0++ ) {
494-
out[ io ] = out[ io + strideOut2 ] * x[ ix ];
495-
ix += sx;
496-
io += strideOut1;
497-
}
486+
return out;
487+
}
488+
// Decreasing: column 0 contains x^(N-1), last column all ones
489+
sfill( S0, 1.0, out, strideOut1, offsetOut + ( ( S1-1 ) * strideOut2 ) );
490+
io = offsetOut + ( ( S1-2 ) * strideOut2 ) + ( ( S0-1 ) * strideOut1 );
491+
for ( i1 = S1-2; i1 &gt;= 0; i1-- ) {
492+
ix = offsetX + ( ( S0-1 ) * strideX );
493+
for ( i0 = S0-1; i0 &gt;= 0; i0-- ) {
494+
out[ io ] = out[ io+strideOut2 ] * x[ ix ];
495+
ix -= strideX;
496+
io -= do0;
498497
}
498+
io -= do1;
499499
}
500500
return out;
501501
}
@@ -511,7 +511,7 @@ <h1><a href="index.html">All files</a> base.js</h1>
511511
<div class='footer quiet pad2 space-top1 center small'>
512512
Code coverage generated by
513513
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
514-
at 2026-04-16T07:11:28.038Z
514+
at 2026-04-16T09:06:07.016Z
515515
</div>
516516
<script src="prettify.js"></script>
517517
<script>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[640,640,100,83,83,100,5,5,100,640,640,100,"014e2a83b7564582581edf318db2878d51daed6e","2026-04-16 07:12:48"]
1+
[624,624,100,76,76,100,5,5,100,624,624,100,"d1c59dfaf3e8a699480ad4c0d0aa3550e9df3ecc","2026-04-16 09:07:28"]

0 commit comments

Comments
 (0)