@@ -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 '> 114/114 </ span >
28+ < span class ='fraction '> 78/78 </ 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 '> 12/12 </ span >
35+ < span class ='fraction '> 4/4 </ 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 '> 114/114 </ span >
49+ < span class ='fraction '> 78/78 </ span >
5050 </ div >
5151
5252
@@ -141,43 +141,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
141141< a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142142< a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143143< a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144- < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145- < a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146- < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147- < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148- < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149- < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150- < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151- < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152- < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a >
153- < a name ='L88 '> </ a > < a href ='#L88 '> 88</ a >
154- < a name ='L89 '> </ a > < a href ='#L89 '> 89</ a >
155- < a name ='L90 '> </ a > < a href ='#L90 '> 90</ a >
156- < a name ='L91 '> </ a > < a href ='#L91 '> 91</ a >
157- < a name ='L92 '> </ a > < a href ='#L92 '> 92</ a >
158- < a name ='L93 '> </ a > < a href ='#L93 '> 93</ a >
159- < a name ='L94 '> </ a > < a href ='#L94 '> 94</ a >
160- < a name ='L95 '> </ a > < a href ='#L95 '> 95</ a >
161- < a name ='L96 '> </ a > < a href ='#L96 '> 96</ a >
162- < a name ='L97 '> </ a > < a href ='#L97 '> 97</ a >
163- < a name ='L98 '> </ a > < a href ='#L98 '> 98</ a >
164- < a name ='L99 '> </ a > < a href ='#L99 '> 99</ a >
165- < a name ='L100 '> </ a > < a href ='#L100 '> 100</ a >
166- < a name ='L101 '> </ a > < a href ='#L101 '> 101</ a >
167- < a name ='L102 '> </ a > < a href ='#L102 '> 102</ a >
168- < a name ='L103 '> </ a > < a href ='#L103 '> 103</ a >
169- < a name ='L104 '> </ a > < a href ='#L104 '> 104</ a >
170- < a name ='L105 '> </ a > < a href ='#L105 '> 105</ a >
171- < a name ='L106 '> </ a > < a href ='#L106 '> 106</ a >
172- < a name ='L107 '> </ a > < a href ='#L107 '> 107</ a >
173- < a name ='L108 '> </ a > < a href ='#L108 '> 108</ a >
174- < a name ='L109 '> </ a > < a href ='#L109 '> 109</ a >
175- < a name ='L110 '> </ a > < a href ='#L110 '> 110</ a >
176- < a name ='L111 '> </ a > < a href ='#L111 '> 111</ a >
177- < a name ='L112 '> </ a > < a href ='#L112 '> 112</ a >
178- < a name ='L113 '> </ a > < a href ='#L113 '> 113</ a >
179- < a name ='L114 '> </ a > < a href ='#L114 '> 114</ a >
180- < a name ='L115 '> </ a > < a href ='#L115 '> 115</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
144+ < a name ='L79 '> </ a > < a href ='#L79 '> 79</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 3x</ span >
181145< span class ="cline-any cline-yes "> 3x</ span >
182146< span class ="cline-any cline-yes "> 3x</ span >
183147< span class ="cline-any cline-yes "> 3x</ span >
@@ -227,16 +191,6 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
227191< span class ="cline-any cline-yes "> 3x</ span >
228192< span class ="cline-any cline-yes "> 3x</ span >
229193< span class ="cline-any cline-yes "> 3x</ span >
230- < span class ="cline-any cline-yes "> 3x</ span >
231- < span class ="cline-any cline-yes "> 3x</ span >
232- < span class ="cline-any cline-yes "> 3x</ span >
233- < span class ="cline-any cline-yes "> 3x</ span >
234- < span class ="cline-any cline-yes "> 3x</ span >
235- < span class ="cline-any cline-yes "> 40x</ span >
236- < span class ="cline-any cline-yes "> 40x</ span >
237- < span class ="cline-any cline-yes "> 40x</ span >
238- < span class ="cline-any cline-yes "> 40x</ span >
239- < span class ="cline-any cline-yes "> 40x</ span >
240194< span class ="cline-any cline-yes "> 40x</ span >
241195< span class ="cline-any cline-yes "> 40x</ span >
242196< span class ="cline-any cline-yes "> 40x</ span >
@@ -247,44 +201,18 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
247201< span class ="cline-any cline-yes "> 40x</ span >
248202< span class ="cline-any cline-yes "> 40x</ span >
249203< span class ="cline-any cline-yes "> 40x</ span >
250- < span class ="cline-any cline-yes "> 17x</ span >
251- < span class ="cline-any cline-yes "> 17x</ span >
252- < span class ="cline-any cline-yes "> 17x</ span >
253- < span class ="cline-any cline-yes "> 34x</ span >
254- < span class ="cline-any cline-yes "> 23x</ span >
255- < span class ="cline-any cline-yes "> 23x</ span >
256- < span class ="cline-any cline-yes "> 23x</ span >
257- < span class ="cline-any cline-yes "> 23x</ span >
204+ < span class ="cline-any cline-yes "> 120x</ span >
205+ < span class ="cline-any cline-yes "> 120x</ span >
206+ < span class ="cline-any cline-yes "> 120x</ span >
207+ < span class ="cline-any cline-yes "> 120x</ span >
208+ < span class ="cline-any cline-yes "> 240x</ span >
209+ < span class ="cline-any cline-yes "> 240x</ span >
210+ < span class ="cline-any cline-yes "> 240x</ span >
211+ < span class ="cline-any cline-yes "> 240x</ span >
212+ < span class ="cline-any cline-yes "> 120x</ span >
213+ < span class ="cline-any cline-yes "> 120x</ span >
214+ < span class ="cline-any cline-yes "> 120x</ span >
258215< span class ="cline-any cline-yes "> 40x</ span >
259- < span class ="cline-any cline-yes "> 23x</ span >
260- < span class ="cline-any cline-yes "> 23x</ span >
261- < span class ="cline-any cline-yes "> 69x</ span >
262- < span class ="cline-any cline-yes "> 69x</ span >
263- < span class ="cline-any cline-yes "> 69x</ span >
264- < span class ="cline-any cline-yes "> 69x</ span >
265- < span class ="cline-any cline-yes "> 69x</ span >
266- < span class ="cline-any cline-yes "> 138x</ span >
267- < span class ="cline-any cline-yes "> 138x</ span >
268- < span class ="cline-any cline-yes "> 138x</ span >
269- < span class ="cline-any cline-yes "> 69x</ span >
270- < span class ="cline-any cline-yes "> 69x</ span >
271- < span class ="cline-any cline-yes "> 69x</ span >
272- < span class ="cline-any cline-yes "> 23x</ span >
273- < span class ="cline-any cline-yes "> 23x</ span >
274- < span class ="cline-any cline-yes "> 17x</ span >
275- < span class ="cline-any cline-yes "> 40x</ span >
276- < span class ="cline-any cline-yes "> 34x</ span >
277- < span class ="cline-any cline-yes "> 34x</ span >
278- < span class ="cline-any cline-yes "> 34x</ span >
279- < span class ="cline-any cline-yes "> 34x</ span >
280- < span class ="cline-any cline-yes "> 34x</ span >
281- < span class ="cline-any cline-yes "> 102x</ span >
282- < span class ="cline-any cline-yes "> 102x</ span >
283- < span class ="cline-any cline-yes "> 102x</ span >
284- < span class ="cline-any cline-yes "> 34x</ span >
285- < span class ="cline-any cline-yes "> 34x</ span >
286- < span class ="cline-any cline-yes "> 34x</ span >
287- < span class ="cline-any cline-yes "> 17x</ span >
288216< span class ="cline-any cline-yes "> 40x</ span >
289217< span class ="cline-any cline-yes "> 3x</ span >
290218< span class ="cline-any cline-yes "> 3x</ span >
@@ -311,11 +239,6 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
311239
312240'use strict';
313241
314- // MODULES //
315-
316- var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' );
317-
318-
319242// MAIN //
320243
321244/**
@@ -347,56 +270,25 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
347270* // A => <Float64Array>[ 2.0, 3.0, 4.0, 5.0, 6.0, 7.0 ]
348271*/
349272function dger( M, N, alpha, x, strideX, offsetX, y, strideY, offsetY, A, strideA1, strideA2, offsetA ) { // eslint-disable-line max-params, max-len
350- var isrm;
351273 var tmp;
352- var ix1;
353- var iy1;
354- var sa0;
355- var sa1;
356- var i0;
357- var i1;
358- var oa;
359-
360- // Note on variable naming convention: sa#, ix#, i# where # corresponds to the loop number, with `0` being the innermost loop...
274+ var idx;
275+ var jy;
276+ var ix;
277+ var i;
278+ var j;
361279
362- isrm = isRowMajor( [ strideA1, strideA2 ] );
363- if ( isrm ) {
364- // For row-major matrices, the last dimension has the fastest changing index...
365- sa0 = strideA2; // stride for innermost loop
366- sa1 = strideA1; // stride for outermost loop
367- } else { // isColMajor
368- // For column-major matrices, the first dimension has the fastest changing index...
369- sa0 = strideA1; // stride for innermost loop
370- sa1 = strideA2; // stride for outermost loop
371- }
372- if ( !isrm ) {
373- iy1 = offsetY;
374- for ( i1 = 0; i1 < N; i1++ ) {
375- if ( y[ iy1 ] !== 0.0 ) {
376- tmp = alpha * y[ iy1 ];
377- ix1 = offsetX;
378- oa = offsetA + ( sa1 * i1 );
379- for ( i0 = 0; i0 < M; i0++ ) {
380- A[ oa + ( sa0 * i0 ) ] += x[ ix1 ] * tmp;
381- ix1 += strideX;
382- }
383- }
384- iy1 += strideY;
385- }
386- return A;
387- }
388- ix1 = offsetX;
389- for ( i1 = 0; i1 < M; i1++ ) {
390- if ( x[ ix1 ] !== 0.0 ) {
391- tmp = alpha * x[ ix1 ];
392- iy1 = offsetY;
393- oa = offsetA + (sa1*i1);
394- for ( i0 = 0; i0 < N; i0++ ) {
395- A[ oa + ( sa0 * i0 ) ] += y[ iy1 ] * tmp;
396- iy1 += strideY;
280+ jy = offsetY;
281+ for ( j = 0; j < N; j++ ) {
282+ if ( y[ jy ] !== 0.0 ) {
283+ tmp = alpha * y[ jy ];
284+ ix = offsetX;
285+ for ( i = 0; i < M; i++ ) {
286+ idx = offsetA + ( i * strideA1 ) + ( j * strideA2 );
287+ A[ idx ] += x[ ix ] * tmp;
288+ ix += strideX;
397289 }
398290 }
399- ix1 += strideX ;
291+ jy += strideY ;
400292 }
401293 return A;
402294}
@@ -412,7 +304,7 @@ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">blas/b
412304 < div class ='footer quiet pad2 space-top1 center small '>
413305 Code coverage generated by
414306 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
415- at 2025-06-24T10:07:56.205Z
307+ at 2025-06-24T12:18:27.622Z
416308 </ div >
417309 < script src ="../../../../prettify.js "> </ script >
418310 < script >
0 commit comments