All files / vconcat/lib assign.js

92% Statements 69/75
100% Branches 1/1
0% Functions 0/1
92% Lines 69/75

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 761x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x             1x 1x 1x 1x 1x  
/**
* @license Apache-2.0
*
* Copyright (c) 2026 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
 
'use strict';
 
// MODULES //
 
var concat = require( '@stdlib/ndarray/concat' ).assign;
 
 
// MAIN //
 
/**
* Concatenates a list of ndarrays along the second-to-last dimension and assigns results to a provided output ndarray.
*
* ## Notes
*
* -   Input ndarrays must have more than one dimension.
*
* @param {ArrayLikeObject<ndarrayLike>} arrays - array-like object containing input ndarrays
* @param {ndarrayLike} out - output ndarray
* @throws {TypeError} first argument must be an array-like object containing one or more ndarrays
* @throws {TypeError} second argument must be an ndarray-like object
* @throws {TypeError} second argument must have a valid shape
* @throws {RangeError} must provide ndarrays having two or more dimensions
* @throws {Error} must provide ndarrays which are broadcast-compatible with one another
* @throws {Error} must provide ndarrays which can be safely cast to a common data type
* @throws {Error} input ndarrays must be safely castable to the output ndarray data type
* @returns {ndarrayLike} output ndarray
*
* @example
* var array = require( '@stdlib/ndarray/array' );
* var zeros = require( '@stdlib/ndarray/zeros' );
*
* var x = array( [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] );
* // returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]
*
* var y = array( [ [ 5.0, 6.0 ], [ 7.0, 8.0 ], [ 9.0, 10.0 ] ] );
* // returns <ndarray>[ [ 5.0, 6.0 ], [ 7.0, 8.0 ], [ 9.0, 10.0 ] ]
*
* var z = zeros( [ 5, 2 ] );
* // returns <ndarray>[ [ 0.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]
*
* var out = assign( [ x, y ], z );
* // returns <ndarray>[ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ], [ 7.0, 8.0 ], [ 9.0, 10.0 ] ]
*
* var bool = ( out === z );
* // returns true
*/
function assign( arrays, out ) {
	concat( arrays, out, {
		'dim': -2
	});
	return out;
}
 
 
// EXPORTS //
 
module.exports = assign;