@@ -25,28 +25,28 @@ <h1><a href="index.html">All files</a> main.js</h1>
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 61/61 </ span >
28+ < span class ='fraction '> 75/75 </ 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 '> 2/2 </ span >
35+ < span class ='fraction '> 3/3 </ 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 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 61/61 </ span >
49+ < span class ='fraction '> 75/75 </ span >
5050 </ div >
5151
5252
@@ -124,7 +124,21 @@ <h1><a href="index.html">All files</a> main.js</h1>
124124< a name ='L59 '> </ a > < a href ='#L59 '> 59</ a >
125125< a name ='L60 '> </ a > < a href ='#L60 '> 60</ a >
126126< a name ='L61 '> </ a > < a href ='#L61 '> 61</ a >
127- < a name ='L62 '> </ a > < a href ='#L62 '> 62</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
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 > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
128142< span class ="cline-any cline-yes "> 1x</ span >
129143< span class ="cline-any cline-yes "> 1x</ span >
130144< span class ="cline-any cline-yes "> 1x</ span >
@@ -175,11 +189,25 @@ <h1><a href="index.html">All files</a> main.js</h1>
175189< span class ="cline-any cline-yes "> 1x</ span >
176190< span class ="cline-any cline-yes "> 1x</ span >
177191< span class ="cline-any cline-yes "> 1x</ span >
178- < span class ="cline-any cline-yes "> 12x</ span >
179- < span class ="cline-any cline-yes "> 12x</ span >
180- < span class ="cline-any cline-yes "> 12x</ span >
181- < span class ="cline-any cline-yes "> 12x</ span >
182- < span class ="cline-any cline-yes "> 12x</ span >
192+ < span class ="cline-any cline-yes "> 1x</ span >
193+ < span class ="cline-any cline-yes "> 10x</ span >
194+ < span class ="cline-any cline-yes "> 10x</ span >
195+ < span class ="cline-any cline-yes "> 10x</ span >
196+ < span class ="cline-any cline-yes "> 10x</ span >
197+ < span class ="cline-any cline-yes "> 10x</ span >
198+ < span class ="cline-any cline-yes "> 10x</ span >
199+ < span class ="cline-any cline-yes "> 10x</ span >
200+ < span class ="cline-any cline-yes "> 10x</ span >
201+ < span class ="cline-any cline-yes "> 10x</ span >
202+ < span class ="cline-any cline-yes "> 10x</ span >
203+ < span class ="cline-any cline-yes "> 10x</ span >
204+ < span class ="cline-any cline-yes "> 10x</ span >
205+ < span class ="cline-any cline-yes "> 10x</ span >
206+ < span class ="cline-any cline-yes "> 10x</ span >
207+ < span class ="cline-any cline-yes "> 10x</ span >
208+ < span class ="cline-any cline-yes "> 30x</ span >
209+ < span class ="cline-any cline-yes "> 30x</ span >
210+ < span class ="cline-any cline-yes "> 10x</ span >
183211< span class ="cline-any cline-yes "> 1x</ span >
184212< span class ="cline-any cline-yes "> 1x</ span >
185213< span class ="cline-any cline-yes "> 1x</ span >
@@ -217,29 +245,43 @@ <h1><a href="index.html">All files</a> main.js</h1>
217245// MAIN //
218246
219247/**
220- * Computes the range of a one-dimensional numeric ndarray via a callback function.
248+ * Computes the maximum value of a one-dimensional ndarray via a callback function.
221249*
222- * @param {ArrayLikeObject<Object>} arrays - array-like object containing an input ndarray and a callback function
223- * @returns {number} range
250+ * @param {ArrayLikeObject<Object>} arrays - array-like object containing an input ndarray
251+ * @param {Function} clbk - callback function
252+ * @param {*} [thisArg] - callback execution context
253+ * @returns {number} maximum value
224254*
225255* @example
226- * var Float64Array = require( '@stdlib/array/float64' );
227256* var ndarray = require( '@stdlib/ndarray/base/ctor' );
228257*
229- * function accessor( v ) {
230- * return v * 2.0;
258+ * function clbk( value ) {
259+ * return value * 2.0;
231260* }
232261*
233- * var xbuf = new Float64Array( [ -2.0, 1.0, 3.0, -5.0, 4.0, -1.0, -3.0 ] ) ;
234- * var x = new ndarray( 'float64 ', xbuf, [ xbuf.length ], [ 1 ], 0, 'row-major' );
262+ * var xbuf = [ 1.0, 3.0, 4.0, 2.0 ] ;
263+ * var x = new ndarray( 'generic ', xbuf, [ 4 ], [ 1 ], 0, 'row-major' );
235264*
236- * var v = rangeBy( [ x, accessor ] );
237- * // returns 18 .0
265+ * var v = rangeBy( [ x ], clbk );
266+ * // returns 8 .0
238267*/
239- function rangeBy( arrays ) {
240- var clbk = arrays[ 1 ];
268+ function rangeBy( arrays, clbk, thisArg ) {
241269 var x = arrays[ 0 ];
242- return strided( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ), clbk ); // eslint-disable-line max-len
270+ return strided( numelDimension( x, 0 ), getData( x ), getStride( x, 0 ), getOffset( x ), wrapper, null ); // eslint-disable-line max-len
271+
272+ /**
273+ * Invokes a provided callback.
274+ *
275+ * @private
276+ * @param {*} value - current array element
277+ * @param {NonNegativeInteger} aidx - current array element index
278+ * @param {NonNegativeInteger} sidx - current strided array element index
279+ * @param {Collection} arr - input array
280+ * @returns {*} result
281+ */
282+ function wrapper( value, aidx ) {
283+ return clbk.call( thisArg, value, aidx, x );
284+ }
243285}
244286
245287
@@ -253,7 +295,7 @@ <h1><a href="index.html">All files</a> main.js</h1>
253295 < div class ='footer quiet pad2 space-top1 center small '>
254296 Code coverage generated by
255297 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
256- at 2025-11-10T16:04 :31.946Z
298+ at 2025-11-10T20:03 :31.909Z
257299 </ div >
258300 < script src ="prettify.js "> </ script >
259301 < script >
0 commit comments