@@ -25,14 +25,14 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
2525 < div class ='fl pad1y space-right2 '>
2626 < span class ="strong "> 100% </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 187/187 </ span >
28+ < span class ='fraction '> 194/194 </ 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 '> 34/34 </ span >
35+ < span class ='fraction '> 36/36 </ span >
3636 </ div >
3737
3838
@@ -46,7 +46,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
4646 < div class ='fl pad1y space-right2 '>
4747 < span class ="strong "> 100% </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 187/187 </ span >
49+ < span class ='fraction '> 194/194 </ span >
5050 </ div >
5151
5252
@@ -250,7 +250,14 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
250250< a name ='L185 '> </ a > < a href ='#L185 '> 185</ a >
251251< a name ='L186 '> </ a > < a href ='#L186 '> 186</ a >
252252< a name ='L187 '> </ a > < a href ='#L187 '> 187</ a >
253- < a name ='L188 '> </ a > < a href ='#L188 '> 188</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
253+ < a name ='L188 '> </ a > < a href ='#L188 '> 188</ a >
254+ < a name ='L189 '> </ a > < a href ='#L189 '> 189</ a >
255+ < a name ='L190 '> </ a > < a href ='#L190 '> 190</ a >
256+ < a name ='L191 '> </ a > < a href ='#L191 '> 191</ a >
257+ < a name ='L192 '> </ a > < a href ='#L192 '> 192</ a >
258+ < a name ='L193 '> </ a > < a href ='#L193 '> 193</ a >
259+ < a name ='L194 '> </ a > < a href ='#L194 '> 194</ a >
260+ < a name ='L195 '> </ a > < a href ='#L195 '> 195</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
254261< span class ="cline-any cline-yes "> 1x</ span >
255262< span class ="cline-any cline-yes "> 1x</ span >
256263< span class ="cline-any cline-yes "> 1x</ span >
@@ -332,68 +339,70 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
332339< span class ="cline-any cline-yes "> 1x</ span >
333340< span class ="cline-any cline-yes "> 1x</ span >
334341< span class ="cline-any cline-yes "> 1x</ span >
335- < span class ="cline-any cline-yes "> 129x</ span >
336- < span class ="cline-any cline-yes "> 129x</ span >
337- < span class ="cline-any cline-yes "> 129x</ span >
338- < span class ="cline-any cline-yes "> 129x</ span >
339- < span class ="cline-any cline-yes "> 129x</ span >
340- < span class ="cline-any cline-yes "> 129x</ span >
341- < span class ="cline-any cline-yes "> 129x</ span >
342- < span class ="cline-any cline-yes "> 129x</ span >
343- < span class ="cline-any cline-yes "> 129x</ span >
344- < span class ="cline-any cline-yes "> 129x</ span >
345- < span class ="cline-any cline-yes "> 129x</ span >
346- < span class ="cline-any cline-yes "> 129x</ span >
347- < span class ="cline-any cline-yes "> 129x</ span >
342+ < span class ="cline-any cline-yes "> 1x</ span >
343+ < span class ="cline-any cline-yes "> 141x</ span >
344+ < span class ="cline-any cline-yes "> 141x</ span >
345+ < span class ="cline-any cline-yes "> 141x</ span >
346+ < span class ="cline-any cline-yes "> 141x</ span >
347+ < span class ="cline-any cline-yes "> 141x</ span >
348+ < span class ="cline-any cline-yes "> 141x</ span >
349+ < span class ="cline-any cline-yes "> 141x</ span >
350+ < span class ="cline-any cline-yes "> 141x</ span >
351+ < span class ="cline-any cline-yes "> 141x</ span >
352+ < span class ="cline-any cline-yes "> 141x</ span >
353+ < span class ="cline-any cline-yes "> 141x</ span >
354+ < span class ="cline-any cline-yes "> 141x</ span >
355+ < span class ="cline-any cline-yes "> 141x</ span >
348356< span class ="cline-any cline-yes "> 40x</ span >
349357< span class ="cline-any cline-yes "> 40x</ span >
350- < span class ="cline-any cline-yes "> 89x</ span >
351- < span class ="cline-any cline-yes "> 89x</ span >
352- < span class ="cline-any cline-yes "> 89x</ span >
353- < span class ="cline-any cline-yes "> 89x</ span >
354- < span class ="cline-any cline-yes "> 89x</ span >
355- < span class ="cline-any cline-yes "> 89x</ span >
356- < span class ="cline-any cline-yes "> 89x</ span >
357- < span class ="cline-any cline-yes "> 89x</ span >
358- < span class ="cline-any cline-yes "> 89x</ span >
359- < span class ="cline-any cline-yes "> 89x</ span >
360- < span class ="cline-any cline-yes "> 89x</ span >
361- < span class ="cline-any cline-yes "> 129x</ span >
358+ < span class ="cline-any cline-yes "> 101x</ span >
359+ < span class ="cline-any cline-yes "> 101x</ span >
360+ < span class ="cline-any cline-yes "> 101x</ span >
361+ < span class ="cline-any cline-yes "> 101x</ span >
362+ < span class ="cline-any cline-yes "> 101x</ span >
363+ < span class ="cline-any cline-yes "> 101x</ span >
364+ < span class ="cline-any cline-yes "> 101x</ span >
365+ < span class ="cline-any cline-yes "> 101x</ span >
366+ < span class ="cline-any cline-yes "> 101x</ span >
367+ < span class ="cline-any cline-yes "> 101x</ span >
368+ < span class ="cline-any cline-yes "> 101x</ span >
369+ < span class ="cline-any cline-yes "> 101x</ span >
370+ < span class ="cline-any cline-yes "> 141x</ span >
362371< span class ="cline-any cline-yes "> 8x</ span >
363372< span class ="cline-any cline-yes "> 8x</ span >
364- < span class ="cline-any cline-yes "> 81x </ span >
365- < span class ="cline-any cline-yes "> 81x </ span >
366- < span class ="cline-any cline-yes "> 65x </ span >
367- < span class ="cline-any cline-yes "> 65x </ span >
373+ < span class ="cline-any cline-yes "> 93x </ span >
374+ < span class ="cline-any cline-yes "> 93x </ span >
375+ < span class ="cline-any cline-yes "> 77x </ span >
376+ < span class ="cline-any cline-yes "> 77x </ span >
368377< span class ="cline-any cline-yes "> 2x</ span >
369378< span class ="cline-any cline-yes "> 2x</ span >
370379< span class ="cline-any cline-yes "> 2x</ span >
371- < span class ="cline-any cline-yes "> 63x </ span >
372- < span class ="cline-any cline-yes "> 63x </ span >
373- < span class ="cline-any cline-yes "> 63x </ span >
374- < span class ="cline-any cline-yes "> 63x </ span >
375- < span class ="cline-any cline-yes "> 63x </ span >
376- < span class ="cline-any cline-yes "> 65x </ span >
380+ < span class ="cline-any cline-yes "> 75x </ span >
381+ < span class ="cline-any cline-yes "> 75x </ span >
382+ < span class ="cline-any cline-yes "> 75x </ span >
383+ < span class ="cline-any cline-yes "> 75x </ span >
384+ < span class ="cline-any cline-yes "> 75x </ span >
385+ < span class ="cline-any cline-yes "> 77x </ span >
377386< span class ="cline-any cline-yes "> 16x</ span >
378387< span class ="cline-any cline-yes "> 16x</ span >
379388< span class ="cline-any cline-yes "> 16x</ span >
380389< span class ="cline-any cline-yes "> 16x</ span >
381390< span class ="cline-any cline-yes "> 16x</ span >
382391< span class ="cline-any cline-yes "> 16x</ span >
383- < span class ="cline-any cline-yes "> 129x </ span >
392+ < span class ="cline-any cline-yes "> 141x </ span >
384393< span class ="cline-any cline-yes "> 14x</ span >
385394< span class ="cline-any cline-yes "> 14x</ span >
386- < span class ="cline-any cline-yes "> 129x </ span >
387- < span class ="cline-any cline-yes "> 65x </ span >
395+ < span class ="cline-any cline-yes "> 141x </ span >
396+ < span class ="cline-any cline-yes "> 77x </ span >
388397< span class ="cline-any cline-yes "> 14x</ span >
389398< span class ="cline-any cline-yes "> 14x</ span >
390- < span class ="cline-any cline-yes "> 65x </ span >
399+ < span class ="cline-any cline-yes "> 77x </ span >
391400< span class ="cline-any cline-yes "> 24x</ span >
392401< span class ="cline-any cline-yes "> 10x</ span >
393402< span class ="cline-any cline-yes "> 10x</ span >
394403< span class ="cline-any cline-yes "> 14x</ span >
395404< span class ="cline-any cline-yes "> 14x</ span >
396- < span class ="cline-any cline-yes "> 65x </ span >
405+ < span class ="cline-any cline-yes "> 77x </ span >
397406< span class ="cline-any cline-yes "> 33x</ span >
398407< span class ="cline-any cline-yes "> 8x</ span >
399408< span class ="cline-any cline-yes "> 8x</ span >
@@ -417,21 +426,26 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
417426< span class ="cline-any cline-yes "> 9x</ span >
418427< span class ="cline-any cline-yes "> 9x</ span >
419428< span class ="cline-any cline-yes "> 33x</ span >
420- < span class ="cline-any cline-yes "> 65x</ span >
421- < span class ="cline-any cline-yes "> 42x</ span >
422- < span class ="cline-any cline-yes "> 42x</ span >
423- < span class ="cline-any cline-yes "> 42x</ span >
424- < span class ="cline-any cline-yes "> 42x</ span >
425- < span class ="cline-any cline-yes "> 42x</ span >
426- < span class ="cline-any cline-yes "> 42x</ span >
427- < span class ="cline-any cline-yes "> 42x</ span >
428- < span class ="cline-any cline-yes "> 129x</ span >
429- < span class ="cline-any cline-yes "> 129x</ span >
430- < span class ="cline-any cline-yes "> 129x</ span >
431- < span class ="cline-any cline-yes "> 129x</ span >
432- < span class ="cline-any cline-yes "> 129x</ span >
433- < span class ="cline-any cline-yes "> 129x</ span >
434- < span class ="cline-any cline-yes "> 129x</ span >
429+ < span class ="cline-any cline-yes "> 77x</ span >
430+ < span class ="cline-any cline-yes "> 12x</ span >
431+ < span class ="cline-any cline-yes "> 12x</ span >
432+ < span class ="cline-any cline-yes "> 12x</ span >
433+ < span class ="cline-any cline-yes "> 77x</ span >
434+ < span class ="cline-any cline-yes "> 54x</ span >
435+ < span class ="cline-any cline-yes "> 54x</ span >
436+ < span class ="cline-any cline-yes "> 54x</ span >
437+ < span class ="cline-any cline-yes "> 54x</ span >
438+ < span class ="cline-any cline-yes "> 54x</ span >
439+ < span class ="cline-any cline-yes "> 54x</ span >
440+ < span class ="cline-any cline-yes "> 54x</ span >
441+ < span class ="cline-any cline-yes "> 54x</ span >
442+ < span class ="cline-any cline-yes "> 141x</ span >
443+ < span class ="cline-any cline-yes "> 141x</ span >
444+ < span class ="cline-any cline-yes "> 141x</ span >
445+ < span class ="cline-any cline-yes "> 141x</ span >
446+ < span class ="cline-any cline-yes "> 141x</ span >
447+ < span class ="cline-any cline-yes "> 141x</ span >
448+ < span class ="cline-any cline-yes "> 141x</ span >
435449< span class ="cline-any cline-yes "> 1x</ span >
436450< span class ="cline-any cline-yes "> 1x</ span >
437451< span class ="cline-any cline-yes "> 1x</ span >
@@ -494,6 +508,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
494508* @param {Options} [options] - function options
495509* @param {NonNegativeInteger} [options.depth] - maximum number of dimensions to flatten
496510* @param {string} [options.order='row-major'] - order in which input ndarray elements should be flattened
511+ * @param {*} [options.dtype] - output ndarray data type
497512* @param {Function} fcn - callback function
498513* @param {*} [thisArg] - callback execution context
499514* @throws {TypeError} first argument must be an ndarray-like object
@@ -540,8 +555,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
540555
541556 // Define default options:
542557 opts = {
543- 'depth': xsh.length, // by default, flatten to a one-dimensional ndarray
544- 'order': ROW_MAJOR // by default, flatten in lexicographic order (i.e., trailing dimensions first; e.g., if `x` is a matrix, flatten row-by-row)
558+ 'depth': xsh.length, // by default, flatten to a one-dimensional ndarray
559+ 'order': ROW_MAJOR, // by default, flatten in lexicographic order (i.e., trailing dimensions first; e.g., if `x` is a matrix, flatten row-by-row)
560+ 'dtype': getDType( x )
545561 };
546562
547563 // Case: flattenBy( x, fcn )
@@ -604,16 +620,21 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
604620 throw new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );
605621 }
606622 }
623+ if ( hasOwnProp( options, 'dtype' ) ) {
624+ // Delegate `dtype` validation to `emptyLike` during output array creation:
625+ opts.dtype = options.dtype;
626+ }
607627 }
608628 // Create an output ndarray having contiguous memory:
609629 y = emptyLike( x, {
610630 'shape': flattenShape( xsh, opts.depth ),
611- 'order': opts.order
631+ 'order': opts.order,
632+ 'dtype': opts.dtype
612633 });
613634
614635 // Create a view on top of output ndarray having the same shape as the input ndarray:
615636 st = ( xsh.length > 0 ) ? shape2strides( xsh, opts.order ) : [ 0 ];
616- view = ndarray( getDType( y ) , getData( y ), xsh, st, 0, opts.order );
637+ view = ndarray( opts.dtype , getData( y ), xsh, st, 0, opts.order );
617638
618639 // Transform and assign elements to the output ndarray:
619640 map( [ x, view ], cb, ctx );
@@ -631,7 +652,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
631652 < div class ='footer quiet pad2 space-top1 center small '>
632653 Code coverage generated by
633654 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
634- at 2025-09-17T07:33:21.569Z
655+ at 2025-09-17T21:08:08.283Z
635656 </ div >
636657 < script src ="../../../prettify.js "> </ script >
637658 < script >
0 commit comments