@@ -30,9 +30,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 100 % </ span >
33+ < span class ="strong "> 96.29 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 25/25 </ span >
35+ < span class ='fraction '> 26/27 </ span >
3636 </ div >
3737
3838
@@ -708,80 +708,80 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
708708< span class ="cline-any cline-yes "> 1x</ span >
709709< span class ="cline-any cline-yes "> 1x</ span >
710710< span class ="cline-any cline-yes "> 1x</ span >
711- < span class ="cline-any cline-yes "> 133x</ span >
712- < span class ="cline-any cline-yes "> 133x</ span >
713- < span class ="cline-any cline-yes "> 133x</ span >
714- < span class ="cline-any cline-yes "> 133x</ span >
715- < span class ="cline-any cline-yes "> 133x</ span >
716- < span class ="cline-any cline-yes "> 133x</ span >
717- < span class ="cline-any cline-yes "> 133x</ span >
718- < span class ="cline-any cline-yes "> 133x</ span >
719- < span class ="cline-any cline-yes "> 133x</ span >
720- < span class ="cline-any cline-yes "> 133x</ span >
711+ < span class ="cline-any cline-yes "> 127x</ span >
712+ < span class ="cline-any cline-yes "> 127x</ span >
713+ < span class ="cline-any cline-yes "> 127x</ span >
714+ < span class ="cline-any cline-yes "> 127x</ span >
715+ < span class ="cline-any cline-yes "> 127x</ span >
716+ < span class ="cline-any cline-yes "> 127x</ span >
717+ < span class ="cline-any cline-yes "> 127x</ span >
718+ < span class ="cline-any cline-yes "> 127x</ span >
719+ < span class ="cline-any cline-yes "> 127x</ span >
721720< span class ="cline-any cline-yes "> 20x</ span >
722721< span class ="cline-any cline-yes "> 20x</ span >
723- < span class ="cline-any cline-yes "> 133x </ span >
722+ < span class ="cline-any cline-yes "> 127x </ span >
724723< span class ="cline-any cline-yes "> 18x</ span >
725724< span class ="cline-any cline-yes "> 18x</ span >
726- < span class ="cline-any cline-yes "> 95x</ span >
727- < span class ="cline-any cline-yes "> 95x</ span >
728- < span class ="cline-any cline-yes "> 95x</ span >
729- < span class ="cline-any cline-yes "> 95x</ span >
730- < span class ="cline-any cline-yes "> 95x</ span >
731- < span class ="cline-any cline-yes "> 95x</ span >
732- < span class ="cline-any cline-yes "> 95x</ span >
733- < span class ="cline-any cline-yes "> 95x</ span >
734- < span class ="cline-any cline-yes "> 95x</ span >
735- < span class ="cline-any cline-yes "> 95x</ span >
736- < span class ="cline-any cline-yes "> 133x</ span >
737- < span class ="cline-any cline-yes "> 73x</ span >
738- < span class ="cline-any cline-yes "> 8x</ span >
739- < span class ="cline-any cline-yes "> 8x</ span >
740- < span class ="cline-any cline-yes "> 73x</ span >
741- < span class ="cline-any cline-yes "> 53x</ span >
742- < span class ="cline-any cline-yes "> 14x</ span >
743- < span class ="cline-any cline-yes "> 14x</ span >
744- < span class ="cline-any cline-yes "> 14x</ span >
725+ < span class ="cline-any cline-yes "> 89x</ span >
726+ < span class ="cline-any cline-yes "> 127x</ span >
727+ < span class ="cline-any cline-yes "> 2x</ span >
728+ < span class ="cline-any cline-yes "> 2x</ span >
729+ < span class ="cline-any cline-yes "> 87x</ span >
730+ < span class ="cline-any cline-yes "> 87x</ span >
731+ < span class ="cline-any cline-yes "> 87x</ span >
732+ < span class ="cline-any cline-yes "> 87x</ span >
733+ < span class ="cline-any cline-yes "> 87x</ span >
734+ < span class ="cline-any cline-yes "> 87x</ span >
735+ < span class ="cline-any cline-yes "> 87x</ span >
736+ < span class ="cline-any cline-yes "> 127x</ span >
737+ < span class ="cline-any cline-yes "> 68x</ span >
738+ < span class ="cline-any cline-yes "> 9x</ span >
739+ < span class ="cline-any cline-yes "> 9x</ span >
740+ < span class ="cline-any cline-yes "> 68x</ span >
741+ < span class ="cline-any cline-yes "> 47x</ span >
742+ < span class ="cline-any cline-yes "> 11x</ span >
743+ < span class ="cline-any cline-yes "> 11x</ span >
744+ < span class ="cline-any cline-yes "> 11x</ span >
745745< span class ="cline-any cline-yes "> 4x</ span >
746746< span class ="cline-any cline-yes "> 4x</ span >
747- < span class ="cline-any cline-yes "> 14x </ span >
747+ < span class ="cline-any cline-yes "> 11x </ span >
748748< span class ="cline-any cline-yes "> 4x</ span >
749749< span class ="cline-any cline-yes "> 4x</ span >
750- < span class ="cline-any cline-yes "> 10x </ span >
751- < span class ="cline-any cline-yes "> 6x </ span >
752- < span class ="cline-any cline-yes "> 6x </ span >
753- < span class ="cline-any cline-yes "> 6x </ span >
754- < span class ="cline-any cline-yes "> 53x </ span >
755- < span class ="cline-any cline-yes "> 14x </ span >
756- < span class ="cline-any cline-yes "> 14x </ span >
757- < span class ="cline-any cline-yes "> 39x </ span >
750+ < span class ="cline-any cline-yes "> 7x </ span >
751+ < span class ="cline-any cline-yes "> 3x </ span >
752+ < span class ="cline-any cline-yes "> 3x </ span >
753+ < span class ="cline-any cline-yes "> 3x </ span >
754+ < span class ="cline-any cline-yes "> 47x </ span >
755+ < span class ="cline-any cline-yes "> 11x </ span >
756+ < span class ="cline-any cline-yes "> 11x </ span >
757+ < span class ="cline-any cline-yes "> 36x </ span >
758758< span class ="cline-any cline-yes "> 16x</ span >
759759< span class ="cline-any cline-yes "> 16x</ span >
760760< span class ="cline-any cline-yes "> 25x</ span >
761761< span class ="cline-any cline-yes "> 9x</ span >
762762< span class ="cline-any cline-yes "> 9x</ span >
763- < span class ="cline-any cline-yes "> 53x </ span >
764- < span class ="cline-any cline-yes "> 73x </ span >
763+ < span class ="cline-any cline-yes "> 47x </ span >
764+ < span class ="cline-any cline-yes "> 68x </ span >
765765< span class ="cline-any cline-yes "> 12x</ span >
766766< span class ="cline-any cline-yes "> 12x</ span >
767767< span class ="cline-any cline-yes "> 12x</ span >
768- < span class ="cline-any cline-yes "> 73x </ span >
769- < span class ="cline-any cline-yes "> 78x </ span >
770- < span class ="cline-any cline-yes "> 78x </ span >
771- < span class ="cline-any cline-yes "> 78x </ span >
772- < span class ="cline-any cline-yes "> 78x </ span >
773- < span class ="cline-any cline-yes "> 78x </ span >
774- < span class ="cline-any cline-yes "> 78x </ span >
775- < span class ="cline-any cline-yes "> 78x </ span >
776- < span class ="cline-any cline-yes "> 78x </ span >
777- < span class ="cline-any cline-yes "> 133x </ span >
778- < span class ="cline-any cline-yes "> 133x </ span >
779- < span class ="cline-any cline-yes "> 133x </ span >
780- < span class ="cline-any cline-yes "> 133x </ span >
781- < span class ="cline-any cline-yes "> 133x </ span >
782- < span class ="cline-any cline-yes "> 133x </ span >
783- < span class ="cline-any cline-yes "> 133x </ span >
784- < span class ="cline-any cline-yes "> 133x </ span >
768+ < span class ="cline-any cline-yes "> 68x </ span >
769+ < span class ="cline-any cline-yes "> 69x </ span >
770+ < span class ="cline-any cline-yes "> 69x </ span >
771+ < span class ="cline-any cline-yes "> 69x </ span >
772+ < span class ="cline-any cline-yes "> 69x </ span >
773+ < span class ="cline-any cline-yes "> 69x </ span >
774+ < span class ="cline-any cline-yes "> 69x </ span >
775+ < span class ="cline-any cline-yes "> 69x </ span >
776+ < span class ="cline-any cline-yes "> 69x </ span >
777+ < span class ="cline-any cline-yes "> 127x </ span >
778+ < span class ="cline-any cline-yes "> 127x </ span >
779+ < span class ="cline-any cline-yes "> 127x </ span >
780+ < span class ="cline-any cline-yes "> 127x </ span >
781+ < span class ="cline-any cline-yes "> 127x </ span >
782+ < span class ="cline-any cline-yes "> 127x </ span >
783+ < span class ="cline-any cline-yes "> 127x </ span >
784+ < span class ="cline-any cline-yes "> 127x </ span >
785785< span class ="cline-any cline-yes "> 1x</ span >
786786< span class ="cline-any cline-yes "> 1x</ span >
787787< span class ="cline-any cline-yes "> 1x</ span >
@@ -837,14 +837,14 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
837837// MAIN //
838838
839839/**
840- * Returns a copy of an input ndarray, where all dimensions of the input ndarray are flattened starting from a specified dimension.
840+ * Returns a copy of an input ndarray where all dimensions of the input ndarray are flattened starting from a specified dimension.
841841*
842842* @param {ndarray} x - input ndarray
843- * @param {integer} dim - dimension to start flattening from.
843+ * @param {integer} dim - dimension to start flattening from
844844* @param {Options} [options] - function options
845845* @param {string} [options.order='row-major'] - order in which input ndarray elements should be flattened
846846* @param {*} [options.dtype] - output ndarray data type
847- * @throws {TypeError} first argument must be an ndarray-like object
847+ * @throws {TypeError} first argument must be an ndarray having one or more dimensions
848848* @throws {TypeError} second argument must be an integer
849849* @throws {TypeError} options argument must be an object
850850* @throws {TypeError} must provide valid options
@@ -861,7 +861,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
861861* // returns <ndarray>
862862*
863863* var arr = ndarray2array( y );
864- * // returns [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
864+ * // returns [ [ 1.0 , 2.0 ], [ 3.0 , 4.0 ], [ 5.0 , 6.0 ] ]
865865*
866866* @example
867867* var array = require( '@stdlib/ndarray/array' );
@@ -1071,7 +1071,6 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
10711071* // returns [ 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ]
10721072*/
10731073function flattenFrom( x, dim, options ) {
1074- var nargs;
10751074 var view;
10761075 var opts;
10771076 var xsh;
@@ -1080,22 +1079,23 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
10801079 var y;
10811080
10821081 if ( !isndarrayLike( x ) ) {
1083- throw new TypeError( format( 'invalid argument. First argument must be an ndarray-like object . Value: `%s`.', x ) );
1082+ throw new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );
10841083 }
10851084 if ( !isInteger( dim ) ) {
10861085 throw new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );
10871086 }
1088- nargs = arguments.length;
10891087 xsh = getShape( x );
1090-
1088+ if ( xsh.length < 1 ) {
1089+ throw new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', xsh.length ) );
1090+ }
10911091 // Define default options:
10921092 opts = {
10931093 '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)
10941094 'dtype': getDType( x )
10951095 };
10961096
10971097 // Resolve function options...
1098- if ( nargs > 2 ) {
1098+ if ( arguments.length > 2 ) {
10991099 if ( !isPlainObject( options ) ) {
11001100 throw new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );
11011101 }
@@ -1130,13 +1130,13 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
11301130 }
11311131 // Create an output ndarray having contiguous memory:
11321132 y = emptyLike( x, {
1133- 'shape': flattenShapeFrom( xsh, dim ),
1133+ 'shape': flattenShapeFrom( xsh, dim ), // note: delegate to `flattenShapeFrom` to handle `dim` normalization
11341134 'order': opts.order,
11351135 'dtype': opts.dtype
11361136 });
11371137
1138- // Create a view on top of output ndarray having the same shape as the input ndarray:
1139- st = ( xsh.length > 0 ) ? shape2strides( xsh, opts.order ) : [ 0 ];
1138+ // Create a view on top of the output ndarray having the same shape as the input ndarray:
1139+ st = ( xsh.length > 0 ) ? shape2strides( xsh, opts.order ) < span class =" branch-0 cbranch-no " title =" branch not covered " > : [ 0 ];</ span >
11401140 view = ndarray( opts.dtype, getData( y ), xsh, st, 0, opts.order );
11411141
11421142 // Copy elements to the output ndarray:
@@ -1156,7 +1156,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/f
11561156 < div class ='footer quiet pad2 space-top1 center small '>
11571157 Code coverage generated by
11581158 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
1159- at 2025-09-29T15:23:53.467Z
1159+ at 2025-10-03T09:41:51.369Z
11601160 </ div >
11611161 < script src ="../../../prettify.js "> </ script >
11621162 < script >
0 commit comments