diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index f2e5bb4..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-01-01T05:05:55.742Z diff --git a/README.md b/README.md index 9fa39a4..c8062c7 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,11 @@ For more information on the project, filing bug reports and feature requests, an --- +## License + +See [LICENSE][stdlib-license]. + + ## Copyright Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. @@ -206,8 +211,8 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [npm-image]: http://img.shields.io/npm/v/@stdlib/ndarray-base-maybe-broadcast-arrays.svg [npm-url]: https://npmjs.org/package/@stdlib/ndarray-base-maybe-broadcast-arrays -[test-image]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/actions/workflows/test.yml/badge.svg?branch=main -[test-url]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/actions/workflows/test.yml?query=branch:main +[test-image]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/actions/workflows/test.yml/badge.svg?branch=v0.1.0 +[test-url]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/actions/workflows/test.yml?query=branch:v0.1.0 [coverage-image]: https://img.shields.io/codecov/c/github/stdlib-js/ndarray-base-maybe-broadcast-arrays/main.svg [coverage-url]: https://codecov.io/github/stdlib-js/ndarray-base-maybe-broadcast-arrays?branch=main @@ -234,6 +239,8 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [esm-url]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/tree/esm [branches-url]: https://github.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/blob/main/branches.md +[stdlib-license]: https://raw.githubusercontent.com/stdlib-js/ndarray-base-maybe-broadcast-arrays/main/LICENSE + [@stdlib/ndarray/ctor]: https://github.com/stdlib-js/ndarray-ctor [@stdlib/ndarray/base/ctor]: https://github.com/stdlib-js/ndarray-base-ctor diff --git a/dist/index.js b/dist/index.js index 900f742..42718a1 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,68 +1,19 @@ -/** @license Apache-2.0 */ - -'use strict'; - +"use strict";var n=function(e,r){return function(){return r||e((r={exports:{}}).exports,r),r.exports}};var o=n(function(m,i){"use strict";var v=require("@stdlib/ndarray-base-broadcast-shapes"),p=require("@stdlib/ndarray-base-maybe-broadcast-array"),c=require("@stdlib/ndarray-base-shape");function h(e){var r,t,s,u,a;for(u=e.length,r=[],a=0;a +* http://www.apache.org/licenses/LICENSE-2.0 * -* var shx = x.shape; -* // returns [ 2, 2 ] -* -* var y1 = zeros( [ 3, 2, 2 ] ); -* // returns -* -* var shy = y1.shape; -* // returns [ 3, 2, 2 ] -* -* var out = maybeBroadcastArrays( [ x1, y1 ] ); -* // returns [ , ] -* -* var x2 = out[ 0 ]; -* // returns -* -* var y2 = out[ 1 ]; -* // returns -* -* shx = x2.shape; -* // returns [ 3, 2, 2 ] -* -* shy = y2.shape; -* // returns [ 3, 2, 2 ] -* -* var v = x2.get( 0, 0, 0 ); -* // returns 1 -* -* v = x2.get( 0, 0, 1 ); -* // returns 2 -* -* v = x2.get( 1, 0, 0 ); -* // returns 1 -* -* v = x2.get( 1, 1, 0 ); -* // returns 3 -* -* v = x2.get( 2, 0, 0 ); -* // returns 1 -* -* v = x2.get( 2, 1, 1 ); -* // returns 4 +* 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. */ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; +//# sourceMappingURL=index.js.map diff --git a/dist/main.js b/dist/main.js deleted file mode 100644 index 31443ba..0000000 --- a/dist/main.js +++ /dev/null @@ -1,133 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 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 broadcastShapes = require( '@stdlib/ndarray-base-broadcast-shapes' ); -var maybeBroadcastArray = require( '@stdlib/ndarray-base-maybe-broadcast-array' ); -var getShape = require( '@stdlib/ndarray-base-shape' ); - - -// MAIN // - -/** -* Broadcasts an ndarrays to a common shape. -* -* ## Notes -* -* - If a provided ndarray has a shape matching the common shape, the function returns the provided ndarray. -* - If a provided ndarray has a different (broadcast compatible) shape than the common shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to a view may affect multiple elements. If you need to write to a returned array, copy the array before performing operations which may mutate elements. -* -* @param {ArrayLikeObject} arrays - list of input arrays -* @throws {Error} input arrays must be broadcast compatible -* @returns {Array} broadcasted arrays -* -* @example -* var array = require( '@stdlib/ndarray-array' ); -* var zeros = require( '@stdlib/ndarray-zeros' ); -* -* var x1 = array( [ [ 1, 2 ], [ 3, 4 ] ] ); -* // returns -* -* var shx = x1.shape; -* // returns [ 2, 2 ] -* -* var y1 = zeros( [ 3, 2, 2 ] ); -* // returns -* -* var shy = y1.shape; -* // returns [ 3, 2, 2 ] -* -* var out = maybeBroadcastArrays( [ x1, y1 ] ); -* // returns -* -* var x2 = out[ 0 ]; -* // returns -* -* var y2 = out[ 1 ]; -* // returns -* -* shx = x2.shape; -* // returns [ 3, 2, 2 ] -* -* shy = y2.shape; -* // returns [ 3, 2, 2 ] -* -* var v = x2.get( 0, 0, 0 ); -* // returns 1 -* -* v = x2.get( 0, 0, 1 ); -* // returns 2 -* -* v = x2.get( 1, 0, 0 ); -* // returns 1 -* -* v = x2.get( 1, 1, 0 ); -* // returns 3 -* -* v = x2.get( 2, 0, 0 ); -* // returns 1 -* -* v = x2.get( 2, 1, 1 ); -* // returns 4 -* -* @example -* var zeros = require( '@stdlib/ndarray-zeros' ); -* -* var x = zeros( [ 2, 2 ] ); -* // returns -* -* var y = zeros( [ 4, 2 ] ); -* // returns -* -* var out = maybeBroadcastArrays( [ x, y ] ); -* // throws -*/ -function maybeBroadcastArrays( arrays ) { - var shapes; - var out; - var sh; - var N; - var i; - - N = arrays.length; - - // Resolve the list of shapes... - shapes = []; - for ( i = 0; i < N; i++ ) { - shapes.push( getShape( arrays[ i ], false ) ); - } - // Broadcast the shapes to a common shape: - sh = broadcastShapes( shapes ); - if ( sh === null ) { - throw new Error( 'invalid arguments. Input arrays must be broadcast compatible.' ); - } - // Broadcast each array to the common shape... - out = []; - for ( i = 0; i < N; i++ ) { - out.push( maybeBroadcastArray( arrays[ i ], sh ) ); - } - return out; -} - - -// EXPORTS // - -module.exports = maybeBroadcastArrays; diff --git a/package.json b/package.json index 74e7675..6b7f370 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stdlib/ndarray-base-maybe-broadcast-arrays", - "version": "0.0.0", + "version": "0.1.0", "description": "Broadcast ndarrays to a common shape.", "license": "Apache-2.0", "author": {