@@ -25,14 +25,14 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
25
25
< div class ='fl pad1y space-right2 '>
26
26
< span class ="strong "> 100% </ span >
27
27
< span class ="quiet "> Statements</ span >
28
- < span class ='fraction '> 104/104 </ span >
28
+ < span class ='fraction '> 62/62 </ span >
29
29
</ div >
30
30
31
31
32
32
< div class ='fl pad1y space-right2 '>
33
33
< span class ="strong "> 100% </ span >
34
34
< span class ="quiet "> Branches</ span >
35
- < span class ='fraction '> 16/16 </ span >
35
+ < span class ='fraction '> 2/2 </ span >
36
36
</ div >
37
37
38
38
@@ -46,7 +46,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
46
46
< div class ='fl pad1y space-right2 '>
47
47
< span class ="strong "> 100% </ span >
48
48
< span class ="quiet "> Lines</ span >
49
- < span class ='fraction '> 104/104 </ span >
49
+ < span class ='fraction '> 62/62 </ span >
50
50
</ div >
51
51
52
52
@@ -125,49 +125,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
125
125
< a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126
126
< a name ='L61 '> </ a > < a href ='#L61 '> 61</ a >
127
127
< a name ='L62 '> </ a > < a href ='#L62 '> 62</ a >
128
- < a name ='L63 '> </ a > < a href ='#L63 '> 63</ a >
129
- < a name ='L64 '> </ a > < a href ='#L64 '> 64</ a >
130
- < a name ='L65 '> </ a > < a href ='#L65 '> 65</ a >
131
- < a name ='L66 '> </ a > < a href ='#L66 '> 66</ a >
132
- < a name ='L67 '> </ a > < a href ='#L67 '> 67</ a >
133
- < a name ='L68 '> </ a > < a href ='#L68 '> 68</ a >
134
- < a name ='L69 '> </ a > < a href ='#L69 '> 69</ a >
135
- < a name ='L70 '> </ a > < a href ='#L70 '> 70</ a >
136
- < a name ='L71 '> </ a > < a href ='#L71 '> 71</ a >
137
- < a name ='L72 '> </ a > < a href ='#L72 '> 72</ a >
138
- < a name ='L73 '> </ a > < a href ='#L73 '> 73</ a >
139
- < a name ='L74 '> </ a > < a href ='#L74 '> 74</ a >
140
- < a name ='L75 '> </ a > < a href ='#L75 '> 75</ a >
141
- < a name ='L76 '> </ a > < a href ='#L76 '> 76</ a >
142
- < a name ='L77 '> </ a > < a href ='#L77 '> 77</ a >
143
- < 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 > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
128
+ < a name ='L63 '> </ a > < a href ='#L63 '> 63</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 2x</ span >
171
129
< span class ="cline-any cline-yes "> 2x</ span >
172
130
< span class ="cline-any cline-yes "> 2x</ span >
173
131
< span class ="cline-any cline-yes "> 2x</ span >
@@ -220,51 +178,9 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
220
178
< span class ="cline-any cline-yes "> 2x</ span >
221
179
< span class ="cline-any cline-yes "> 2x</ span >
222
180
< span class ="cline-any cline-yes "> 2x</ span >
223
- < span class ="cline-any cline-yes "> 12x</ span >
224
- < span class ="cline-any cline-yes "> 12x</ span >
225
- < span class ="cline-any cline-yes "> 12x</ span >
226
- < span class ="cline-any cline-yes "> 12x</ span >
227
- < span class ="cline-any cline-yes "> 12x</ span >
228
- < span class ="cline-any cline-yes "> 12x</ span >
229
- < span class ="cline-any cline-yes "> 12x</ span >
230
- < span class ="cline-any cline-yes "> 12x</ span >
231
- < span class ="cline-any cline-yes "> 12x</ span >
232
- < span class ="cline-any cline-yes "> 12x</ span >
233
- < span class ="cline-any cline-yes "> 12x</ span >
234
- < span class ="cline-any cline-yes "> 12x</ span >
235
- < span class ="cline-any cline-yes "> 2x</ span >
236
181
< span class ="cline-any cline-yes "> 2x</ span >
237
182
< span class ="cline-any cline-yes "> 12x</ span >
238
- < span class ="cline-any cline-yes "> 2x</ span >
239
- < span class ="cline-any cline-yes "> 2x</ span >
240
- < span class ="cline-any cline-yes "> 12x</ span >
241
- < span class ="cline-any cline-yes "> 1x</ span >
242
183
< span class ="cline-any cline-yes "> 12x</ span >
243
- < span class ="cline-any cline-yes "> 7x</ span >
244
- < span class ="cline-any cline-yes "> 7x</ span >
245
- < span class ="cline-any cline-yes "> 8x</ span >
246
- < span class ="cline-any cline-yes "> 8x</ span >
247
- < span class ="cline-any cline-yes "> 8x</ span >
248
- < span class ="cline-any cline-yes "> 12x</ span >
249
- < span class ="cline-any cline-yes "> 35x</ span >
250
- < span class ="cline-any cline-yes "> 35x</ span >
251
- < span class ="cline-any cline-yes "> 35x</ span >
252
- < span class ="cline-any cline-yes "> 24x</ span >
253
- < span class ="cline-any cline-yes "> 35x</ span >
254
- < span class ="cline-any cline-yes "> 11x</ span >
255
- < span class ="cline-any cline-yes "> 11x</ span >
256
- < span class ="cline-any cline-yes "> 35x</ span >
257
- < span class ="cline-any cline-yes "> 35x</ span >
258
- < span class ="cline-any cline-yes "> 35x</ span >
259
- < span class ="cline-any cline-yes "> 32x</ span >
260
- < span class ="cline-any cline-yes "> 35x</ span >
261
- < span class ="cline-any cline-yes "> 3x</ span >
262
- < span class ="cline-any cline-yes "> 3x</ span >
263
- < span class ="cline-any cline-yes "> 35x</ span >
264
- < span class ="cline-any cline-yes "> 35x</ span >
265
- < span class ="cline-any cline-yes "> 35x</ span >
266
- < span class ="cline-any cline-yes "> 35x</ span >
267
- < span class ="cline-any cline-yes "> 8x</ span >
268
184
< span class ="cline-any cline-yes "> 12x</ span >
269
185
< span class ="cline-any cline-yes "> 2x</ span >
270
186
< span class ="cline-any cline-yes "> 2x</ span >
@@ -293,13 +209,14 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
293
209
294
210
// MODULES //
295
211
296
- var abs = require( '@stdlib/math/base/special/abs' );
212
+ var stride2offset = require( '@stdlib/strided/base/stride2offset' );
213
+ var ndarray = require( './ndarray.js' );
297
214
298
215
299
216
// MAIN //
300
217
301
218
/**
302
- * Adds a constant to each double-precision floating-point strided array element and computes the sum using a second-order iterative Kahan–Babuška algorithm.
219
+ * Adds a scalar constant to each double-precision floating-point strided array element and computes the sum using a second-order iterative Kahan–Babuška algorithm.
303
220
*
304
221
* ## Method
305
222
*
@@ -312,7 +229,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
312
229
* @param {PositiveInteger} N - number of indexed elements
313
230
* @param {number} alpha - constant
314
231
* @param {Float64Array} x - input array
315
- * @param {integer} stride - stride length
232
+ * @param {integer} strideX - stride length
316
233
* @returns {number} sum
317
234
*
318
235
* @example
@@ -324,51 +241,8 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
324
241
* var v = dapxsumkbn2( N, 5.0, x, 1 );
325
242
* // returns 16.0
326
243
*/
327
- function dapxsumkbn2( N, alpha, x, stride ) {
328
- var sum;
329
- var ccs;
330
- var ix;
331
- var cs;
332
- var cc;
333
- var v;
334
- var t;
335
- var c;
336
- var i;
337
-
338
- if ( N <= 0 ) {
339
- return 0.0;
340
- }
341
- if ( N === 1 || stride === 0 ) {
342
- return alpha + x[ 0 ];
343
- }
344
- if ( stride < 0 ) {
345
- ix = (1-N) * stride;
346
- } else {
347
- ix = 0;
348
- }
349
- sum = 0.0;
350
- ccs = 0.0; // second order correction term for lost low order bits
351
- cs = 0.0; // first order correction term for lost low order bits
352
- for ( i = 0; i < N; i++ ) {
353
- v = alpha + x[ ix ];
354
- t = sum + v;
355
- if ( abs( sum ) >= abs( v ) ) {
356
- c = (sum-t) + v;
357
- } else {
358
- c = (v-t) + sum;
359
- }
360
- sum = t;
361
- t = cs + c;
362
- if ( abs( cs ) >= abs( c ) ) {
363
- cc = (cs-t) + c;
364
- } else {
365
- cc = (c-t) + cs;
366
- }
367
- cs = t;
368
- ccs += cc;
369
- ix += stride;
370
- }
371
- return sum + cs + ccs;
244
+ function dapxsumkbn2( N, alpha, x, strideX ) {
245
+ return ndarray( N, alpha, x, strideX, stride2offset( N, strideX ) );
372
246
}
373
247
374
248
@@ -382,7 +256,7 @@ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">bla
382
256
< div class ='footer quiet pad2 space-top1 center small '>
383
257
Code coverage generated by
384
258
< a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
385
- at 2024-03-26T01:36:23.202Z
259
+ at 2024-09-25T21:58:17.270Z
386
260
</ div >
387
261
< script src ="../../../../../prettify.js "> </ script >
388
262
< script >
0 commit comments