From 99095aa3469939cbd5eda3beca54a42b700aeeec Mon Sep 17 00:00:00 2001 From: Vinit Pandit Date: Thu, 21 Nov 2024 12:15:49 +0530 Subject: [PATCH 01/12] feat: add implementation for array/base/mskunary5d --- .../@stdlib/array/base/mskunary5d/README.md | 124 ++++++ .../base/mskunary5d/benchmark/benchmark.js | 128 ++++++ .../array/base/mskunary5d/docs/repl.txt | 34 ++ .../base/mskunary5d/docs/types/index.d.ts | 71 +++ .../array/base/mskunary5d/docs/types/test.ts | 95 ++++ .../array/base/mskunary5d/examples/index.js | 40 ++ .../array/base/mskunary5d/lib/index.js | 55 +++ .../@stdlib/array/base/mskunary5d/lib/main.js | 138 ++++++ .../array/base/mskunary5d/package.json | 73 ++++ .../array/base/mskunary5d/test/test.js | 404 ++++++++++++++++++ 10 files changed, 1162 insertions(+) create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/README.md create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/benchmark/benchmark.js create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/package.json create mode 100644 lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md new file mode 100644 index 000000000000..20d679d17d28 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -0,0 +1,124 @@ + + +# mskunary5d + +> Apply a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assign results to elements in a five-dimensional nested output array. + +
+ +
+ + + +
+ +## Usage + +```javascript +var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); +``` + +#### mskunary5d( arrays, shape, fcn ) + +Applies a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assigns results to elements in a five-dimensional nested output array. + +```javascript +var abs = require( '@stdlib/math/base/special/abs' ); + +var x = [ [ [ [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] ] ] ]; +var mask = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + +var shape = [ 1, 1, 1, 2, 2 ]; + +// Compute the absolute values in-place: +mskunary5d( [ x, mask, x ], shape, abs ); +// x => [ [ [ [ [ 1.0, -2.0 ], [ 3.0, 4.0 ] ] ] ] ] +``` + +The function accepts the following arguments: + +- **arrays**: array-like object containing one input nested array, an input nested mask array, and one output nested array. +- **shape**: array shape. +- **fcn**: unary function to apply. + +
+ + + +
+ +## Notes + +- The function assumes that the input and output arrays have the same shape. +- An element in an input array is "masked" if the corresponding element in the mask array is non-zero. + +
+ + + +
+ +## Examples + + + +```javascript +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var bernoulli = require( '@stdlib/random/base/bernoulli' ).factory; +var filled5dBy = require( '@stdlib/array/base/filled5d-by' ); +var zeros5d = require( '@stdlib/array/base/zeros5d' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); + +var shape = [ 1, 2, 2, 3, 3 ]; + +var x = filled5dBy( shape, discreteUniform( -100, 100 ) ); +console.log( x ); + +var mask = filled5dBy( shape, bernoulli( 0.5 ) ); +console.log( mask ); + +var y = zeros5d( shape ); +console.log( y ); + +mskunary5d( [ x, mask, y ], shape, abs ); +console.log( y ); +``` + +
+ + + + + + + + + + + + + + diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/benchmark/benchmark.js b/lib/node_modules/@stdlib/array/base/mskunary5d/benchmark/benchmark.js new file mode 100644 index 000000000000..3f69523b7069 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/benchmark/benchmark.js @@ -0,0 +1,128 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2024 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 bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var bernoulli = require( '@stdlib/random/base/bernoulli' ).factory; +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var identity = require( '@stdlib/math/base/special/identity' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var filled5dBy = require( '@stdlib/array/base/filled5d-by' ); +var zeros5d = require( '@stdlib/array/base/zeros5d' ); +var numel = require( '@stdlib/ndarray/base/numel' ); +var pkg = require( './../package.json' ).name; +var mskunary5d = require( './../lib' ); + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveIntegerArray} shape - array shape +* @returns {Function} benchmark function +*/ +function createBenchmark( shape ) { + var arrays; + var x; + var m; + var y; + + x = filled5dBy( shape, uniform( -100.0, 100.0 ) ); + m = filled5dBy( shape, bernoulli( 0.5 ) ); + y = zeros5d( shape ); + + arrays = [ x, m, y ]; + + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var i0; + var i1; + var i2; + var i3; + var i4; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + mskunary5d( arrays, shape, identity ); + i4 = i % shape[ 0 ]; + i3 = i % shape[ 1 ]; + i2 = i % shape[ 2 ]; + i1 = i % shape[ 3 ]; + i0 = i % shape[ 4 ]; + if ( isnan( arrays[ 2 ][ i4 ][ i3 ][ i2 ][ i1 ][ i0 ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + + i4 = i % shape[ 0 ]; + i3 = i % shape[ 1 ]; + i2 = i % shape[ 2 ]; + i1 = i % shape[ 3 ]; + i0 = i % shape[ 4 ]; + if ( isnan( arrays[ 2 ][ i4 ][ i3 ][ i2 ][ i1 ][ i0 ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var min; + var max; + var sh; + var N; + var f; + var i; + + min = 1; // 10^min + max = 6; // 10^max + + for ( i = min; i <= max; i++ ) { + N = floor( pow( pow( 10, i ), 1.0/5.0 ) ); + sh = [ N, N, N, N, N ]; + f = createBenchmark( sh ); + bench( pkg+'::equidimensional:size='+numel( sh ), f ); + } +} + +main(); diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/repl.txt b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/repl.txt new file mode 100644 index 000000000000..2f50bfc9e018 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/repl.txt @@ -0,0 +1,34 @@ + +{{alias}}( arrays, shape, fcn ) + Applies a unary callback to elements in a five-dimensional nested input + array according to elements in a five-dimensional nested mask array and + assigns results to elements in a five-dimensional nested output array. + + An element in an input array is "masked" if the corresponding element in the + mask array is non-zero. + + Parameters + ---------- + arrays: ArrayLikeObject + Array-like object containing one input nested array, an input nested + mask array, and one output nested array. + + shape: Array + Array shape. + + fcn: Function + Unary callback. + + Examples + -------- + > var x = [ [ [ [ [ -1.0, -2.0 ], [ -3.0, -4.0 ] ] ] ] ]; + > var m = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + > var y = [ [ [ [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ] ] ]; + > var shape = [ 1, 1, 1, 2, 2 ]; + > {{alias}}( [ x, m, y ], shape, {{alias:@stdlib/math/base/special/abs}} ); + > y + [ [ [ [ [ 1.0, 0.0 ], [ 3.0, 4.0 ] ] ] ] ] + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts new file mode 100644 index 000000000000..eeb059493a62 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts @@ -0,0 +1,71 @@ +/* +* @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. +*/ + +// TypeScript Version: 4.1 + +/// + +import { Array5D } from '@stdlib/types/array'; +import { Shape5D } from '@stdlib/types/ndarray'; + +/** +* Unary callback. +* +* @param value - array element +* @returns result +*/ +type Unary = ( value: T ) => U; + +/** +* Applies a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assigns results to elements in a five-dimensional nested output array. +* +* ## Notes +* +* - The function assumes that the input and output arrays have the same shape. +* - An element in an input array is "masked" if the corresponding element in the mask array is non-zero. +* +* @param arrays - array containing one input nested array, an input nested mask array, and one output nested array +* @param shape - array shape +* @param fcn - unary callback +* +* @example +* var ones5d = require( '@stdlib/array/base/ones5d' ); +* var zeros5d = require( '@stdlib/array/base/zeros5d' ); +* +* function scale( x ) { +* return x * 10.0; +* } +* +* var shape = [ 1, 1, 1, 2, 2 ]; +* +* var x = ones5d( shape ); +* var y = zeros5d( shape ); +* +* var mask = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; +* +* mskunary5d( [ x, mask, y ], shape, scale ); +* +* console.log( y ); +* // => [ [ [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ] ] ] +*/ +declare function mskunary5d( arrays: [ Array5D, Array5D, Array5D ], shape: Shape5D, fcn: Unary ): void; + + +// EXPORTS // + +export = mskunary5d; diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts new file mode 100644 index 000000000000..eced5b5eb199 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts @@ -0,0 +1,95 @@ +/* +* @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. +*/ + +import mskunary5d = require( './index' ); + +/** +* Unary function. +* +* @param value - input value +* @returns result +*/ +function fcn( value: number ): number { + return value; +} + + +// TESTS // + +// The function returns undefined... +{ + const x = [ [ [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]; + const m = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + const y = [ [ [ [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ] ] ]; + + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectType void +} + +// The compiler throws an error if the function is provided a first argument which is not an array of nested arrays... +{ + mskunary5d( 'abc', [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( 3.14, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( true, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( false, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( null, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( [ '1' ], [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( {}, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError + mskunary5d( ( x: number ): number => x, [ 1, 1, 1, 2, 2 ], fcn ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not an array of numbers... +{ + const x = [ [ [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]; + const m = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + const y = [ [ [ [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ] ] ]; + + mskunary5d( [ x, m, y ], 'abc', fcn ); // $ExpectError + mskunary5d( [ x, m, y ], 3.14, fcn ); // $ExpectError + mskunary5d( [ x, m, y ], true, fcn ); // $ExpectError + mskunary5d( [ x, m, y ], false, fcn ); // $ExpectError + mskunary5d( [ x, m, y ], null, fcn ); // $ExpectError + mskunary5d( [ x, m, y ], [ '1' ], fcn ); // $ExpectError + mskunary5d( [ x, m, y ], {}, fcn ); // $ExpectError + mskunary5d( [ x, m, y ], ( x: number ): number => x, fcn ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a valid callback... +{ + const x = [ [ [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]; + const m = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + const y = [ [ [ [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ] ] ]; + + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], 'abc' ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], 3.14 ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], true ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], false ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], null ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], [ '1' ] ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], {} ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + const x = [ [ [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]; + const m = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; + const y = [ [ [ [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ] ] ] ]; + + mskunary5d(); // $ExpectError + mskunary5d( [ x, m, y ] ); // $ExpectError + mskunary5d( [ x, m, y ], [ 1, 1, 1, 2, 2 ], fcn, {} ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js b/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js new file mode 100644 index 000000000000..837d811f491a --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js @@ -0,0 +1,40 @@ +/** +* @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'; + +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var bernoulli = require( '@stdlib/random/base/bernoulli' ).factory; +var filled5dBy = require( '@stdlib/array/base/filled5d-by' ); +var zeros5d = require( '@stdlib/array/base/zeros5d' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var mskunary5d = require( './../lib' ); + +var shape = [ 1, 2, 1, 3, 3 ]; + +var x = filled5dBy( shape, discreteUniform( -100, 100 ) ); +console.log( x ); + +var mask = filled5dBy( shape, bernoulli( 0.5 ) ); +console.log( mask ); + +var y = zeros5d( shape ); +console.log( y ); + +mskunary5d( [ x, mask, y ], shape, abs ); +console.log( y ); diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js new file mode 100644 index 000000000000..8a5214f9eb3e --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js @@ -0,0 +1,55 @@ +/** +* @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'; + +/** +* Apply a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assign results to elements in a five-dimensional nested output array. +* +* @module @stdlib/array/base/mskunary5d +* +* @example +* var ones5d = require( '@stdlib/array/base/ones5d' ); +* var zeros5d = require( '@stdlib/array/base/zeros5d' ); +* var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); + +* function scale( x ) { +* return x * 10.0; +* } +* +* var shape = [ 1, 1, 1, 2, 2 ]; +* +* var x = ones5d( shape ); +* var y = zeros5d( shape ); +* +* var mask = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; +* +* mskunary5d( [ x, mask, y ], shape, scale ); +* +* console.log( y ); +* // => [ [ [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ] ] ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js new file mode 100644 index 000000000000..e6177014553a --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js @@ -0,0 +1,138 @@ +/** +* @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'; + +// MAIN // + +/** +* Applies a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assigns results to elements in a five-dimensional nested output array. +* +* ## Notes +* +* - The function assumes that the input and output arrays have the same shape. +* +* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array, an input nested mask array, and one output nested array +* @param {NonNegativeIntegerArray} shape - array shape +* @param {Callback} fcn - unary callback +* @returns {void} +* +* @example +* var ones5d = require( '@stdlib/array/base/ones5d' ); +* var zeros5d = require( '@stdlib/array/base/zeros5d' ); + +* function scale( x ) { +* return x * 10.0; +* } +* +* var shape = [ 1, 1, 1, 2, 2 ]; +* +* var x = ones5d( shape ); +* var y = zeros5d( shape ); +* +* var mask = [ [ [ [ [ 0, 1 ], [ 0, 0 ] ] ] ] ]; +* +* mskunary5d( [ x, mask, y ], shape, scale ); +* +* console.log( y ); +* // => [ [ [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ] ] ] +*/ +function mskunary5d(arrays, shape, fcn) { + var S0; + var S1; + var S2; + var S3; + var S4; + var i0; + var i1; + var i2; + var i3; + var i4; + var x0; + var x1; + var x2; + var x3; + var y0; + var y1; + var y2; + var y3; + var m0; + var m1; + var m2; + var m3; + var x; + var y; + var m; + + S0 = shape[4]; + S1 = shape[3]; + S2 = shape[2]; + S3 = shape[1]; + S4 = shape[0]; + + if (S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0) { + return; + } + + x = arrays[0]; + y = arrays[2]; + m = arrays[1]; + + for (i4 = 0; i4 < S4; i4++) { + x3 = x[i4]; + y3 = y[i4]; + m3 = m[i4]; + for (i3 = 0; i3 < S3; i3++) { + x2 = x3[i3]; + y2 = y3[i3]; + m2 = m3[i3]; + for (i2 = 0; i2 < S2; i2++) { + x1 = x2[i2]; + y1 = y2[i2]; + m1 = m2[i2]; + for (i1 = 0; i1 < S1; i1++) { + x0 = x1[i1]; + y0 = y1[i1]; + m0 = m1[i1]; + for (i0 = 0; i0 < S0; i0++) { + applyfcn(x0, y0, m0, i0); + } + } + } + } + } + + /** +* Applies the function to a specific element of the arrays. +* @private +* @param {Array} fx0 - input array element +* @param {Array} fy0 - output array element +* @param {Array} fm0 - mask array element +* @param {number} fi0 - index +*/ + function applyfcn(fx0, fy0, fm0, fi0) { + if (fm0[fi0] === 0) { + fy0[fi0] = fcn(fx0[fi0]); + } + } +} + + +// EXPORTS // + +module.exports = mskunary5d; diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/package.json b/lib/node_modules/@stdlib/array/base/mskunary5d/package.json new file mode 100644 index 000000000000..6f4355669da2 --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/package.json @@ -0,0 +1,73 @@ +{ + "name": "@stdlib/array/base/mskunary5d", + "version": "0.0.0", + "description": "Apply a unary callback to elements in a five-dimensional nested input array according to elements in a five-dimensional nested mask array and assign results to elements in a five-dimensional nested output array.", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "directories": { + "benchmark": "./benchmark", + "doc": "./docs", + "example": "./examples", + "lib": "./lib", + "test": "./test" + }, + "types": "./docs/types", + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "base", + "array", + "multidimensional", + "ndarray", + "matrix", + "5d", + "unary", + "apply", + "foreach", + "map", + "transform", + "masked", + "mask", + "skip", + "skipped", + "missing", + "missing values", + "na" + ], + "__stdlib__": {} +} diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js new file mode 100644 index 000000000000..88552be7fa1b --- /dev/null +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js @@ -0,0 +1,404 @@ +/** +* @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 tape = require( 'tape' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var zeros5d = require( '@stdlib/array/base/zeros5d' ); +var mskunary5d = require( '@stdlib/array/base/mskunary5d/lib' ); + + +// TESTS // + +tape('main export is a function', function test(t) { + t.ok(true, __filename); + t.strictEqual(typeof mskunary5d, 'function', 'main export is a function'); + t.end(); +}); + +tape('the function applies a provided callback to a nested input array and assigns results to a nested output array', function test(t) { + var expected; + var shape; + var x; + var y; + var m; + + shape = [2, 2, 2, 2, 2]; + x = [ + [ + [ + [ + [-4, -4], [-1, -6] + ], + [ + [-4, -4], [-1, -6] + ] + ], + [ + [ + [-4, -4], [-1, -6] + ], + [ + [-4, -4], [-1, -6] + ] + ] + ], + [ + [ + [ + [-4, -4], [-1, -6] + ], + [ + [-4, -4], [-1, -6] + ] + ], + [ + [ + [-4, -4], [-1, -6] + ], + [ + [-4, -4], [-1, -6] + ] + ] + ] + ]; + m = [ + [ + [ + [ + [1, 0], [0, 0] + ], + [ + [0, 1], [0, 0] + ] + ], + [ + [ + [0, 0], [0, 0] + ], + [ + [0, 1], [1, 0] + ] + ] + ], + [ + [ + [ + [0, 0], [0, 0] + ], + [ + [0, 1], [0, 0] + ] + ], + [ + [ + [0, 0], [1, 0] + ], + [ + [0, 1], [1, 0] + ] + ] + ] + ]; + + expected = [ + [ + [ + [ + [0.0, 4.0], [1.0, 6.0] + ], + [ + [4.0, 0.0], [1.0, 6.0] + ] + ], + [ + [ + [4.0, 4.0], [1.0, 6.0] + ], + [ + [4.0, 0.0], [0.0, 6.0] + ] + ] + ], + [ + [ + [ + [4.0, 4.0], [1.0, 6.0] + ], + [ + [4.0, 0.0], [1.0, 6.0] + ] + ], + [ + [ + [4.0, 4.0], [0.0, 6.0] + ], + [ + [4.0, 0.0], [0.0, 6.0] + ] + ] + ] + ]; + + y = zeros5d(shape); + mskunary5d([x, m, y], shape, abs); + + t.deepEqual(y, expected, 'returns expected value'); + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [-1.0, -2.0], + [-3.0, -4.0] + ] + ] + ] + ]; + m = [ + [ + [ + [ + [0, 1], + [0, 0] + ] + ] + ] + ]; + expected = [ + [ + [ + [ + [1.0, 0.0], + [3.0, 4.0] + ] + ] + ] + ]; + y = zeros5d(shape); + mskunary5d([x, m, y], shape, abs); + t.deepEqual(y, expected, 'returns expected value'); + t.end(); +}); +tape( 'the function does not invoke a provided callback if provided a shape having a first element equal to zero', function test( t ) { + var expected; + var shape; + var x; + var y; + var m; + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [ -1.0, -2.0 ], + [ -3.0, -4.0 ] + ] + ] + ] + ]; + y = zeros5d( shape ); + m = [ + [ + [ + [ + [ 0, 1 ], + [ 0, 0 ] + ] + ] + ] + ]; + + expected = zeros5d( shape ); + mskunary5d( [ x, m, y ], [ 0, 1, 1, 2, 2 ], clbk ); + + t.deepEqual( y, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); + +tape( 'the function does not invoke a provided callback if provided a shape having a second element equal to zero', function test( t ) { + var expected; + var shape; + var x; + var y; + var m; + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [ -1.0, -2.0 ], + [ -3.0, -4.0 ] + ] + ] + ] + ]; + y = zeros5d( shape ); + m = [ + [ + [ + [ + [ 0, 1 ], + [ 0, 0 ] + ] + ] + ] + ]; + + expected = zeros5d( shape ); + mskunary5d( [ x, m, y ], [ 1, 0, 1, 2, 2 ], clbk ); + + t.deepEqual( y, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); +tape( 'the function does not invoke a provided callback if provided a shape having a third element equal to zero', function test( t ) { + var expected; + var shape; + var x; + var y; + var m; + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ] + ] + ] + ]; + y = zeros5d( shape ); + m = [ + [ + [ + [ + [ 0, 1 ], + [ 0, 0 ] + ] + ] + ] + ]; + + expected = zeros5d( shape ); + mskunary5d( [ x, m, y ], [ 1, 1, 0, 2, 2 ], clbk ); + + t.deepEqual( y, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); + +tape( 'the function does not invoke a provided callback if provided a shape having a fourth element equal to zero', function test( t ) { + var expected; + var shape; + var x; + var y; + + var m; + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ] + ] + ] + ]; + y = zeros5d( shape ); + m = [ + [ + [ + [ + [ 0, 1 ], + [ 0, 0 ] + ] + ] + ] + ]; + + expected = zeros5d( shape ); + mskunary5d( [ x, m, y ], [ 1, 1, 2, 0, 2 ], clbk ); + + t.deepEqual( y, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); +tape( 'the function does not invoke a provided callback if provided a shape having a fifth element equal to zero', function test( t ) { + var expected; + var shape; + var x; + var y; + var m; + + shape = [ 1, 1, 1, 2, 2 ]; + x = [ + [ + [ + [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ] + ] + ] + ]; + y = zeros5d( shape ); + m = [ + [ + [ + [ + [ 0, 1 ], + [ 0, 0 ] + ] + ] + ] + ]; + + expected = zeros5d( shape ); + mskunary5d( [ x, m, y ], [ 1, 1, 2, 2, 0 ], clbk ); + + t.deepEqual( y, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); From c74f6b22d2550d3255f188e2c3d8ce9d00b7db05 Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Thu, 21 Nov 2024 14:55:40 +0530 Subject: [PATCH 02/12] Update lib/node_modules/@stdlib/array/base/mskunary5d/README.md Co-authored-by: Abhijit Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md index 20d679d17d28..f84ca9a42e86 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -2,7 +2,7 @@ @license Apache-2.0 -Copyright (c) 2023 The Stdlib Authors. +Copyright (c) 2024 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. From 66ac330967818f8f2cd6c2adad48aa6e113bed4a Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Thu, 21 Nov 2024 09:36:04 +0000 Subject: [PATCH 03/12] chore: update copyright years --- .../@stdlib/array/base/mskunary5d/docs/types/index.d.ts | 2 +- .../@stdlib/array/base/mskunary5d/docs/types/test.ts | 2 +- .../@stdlib/array/base/mskunary5d/examples/index.js | 2 +- lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js | 2 +- lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js | 2 +- lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts index eeb059493a62..ef1e48f39a43 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/index.d.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts index eced5b5eb199..5649cefde0fd 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/docs/types/test.ts @@ -1,7 +1,7 @@ /* * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js b/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js index 837d811f491a..7c89b6776dfb 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/examples/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js index 8a5214f9eb3e..1d7dc2ced1ce 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/index.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js index e6177014553a..9f5d469eacfc 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js index 88552be7fa1b..f0b2b4ec8966 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2023 The Stdlib Authors. +* Copyright (c) 2024 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. From 13180b4e67e07c504eb3c0640c61cfef223652f3 Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:11:07 +0530 Subject: [PATCH 04/12] fix: eslint max-depth disable for array/base/mskunary5 Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- .../@stdlib/array/base/mskunary5d/lib/main.js | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js index 9f5d469eacfc..20f0c2e17248 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js @@ -15,6 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +/* eslint-disable max-depth */ 'use strict'; @@ -110,26 +111,14 @@ function mskunary5d(arrays, shape, fcn) { y0 = y1[i1]; m0 = m1[i1]; for (i0 = 0; i0 < S0; i0++) { - applyfcn(x0, y0, m0, i0); + if (m0[i0] === 0) { + y0[i0] = fcn(x0[i0]); + } } } } } } - - /** -* Applies the function to a specific element of the arrays. -* @private -* @param {Array} fx0 - input array element -* @param {Array} fy0 - output array element -* @param {Array} fm0 - mask array element -* @param {number} fi0 - index -*/ - function applyfcn(fx0, fy0, fm0, fi0) { - if (fm0[fi0] === 0) { - fy0[fi0] = fcn(fx0[fi0]); - } - } } From 76f740f167c2b5c3ab49ab62a838c333ef885691 Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Thu, 21 Nov 2024 17:11:52 +0530 Subject: [PATCH 05/12] fix: space fix Co-authored-by: Abhijit Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js index f0b2b4ec8966..e621af7750d0 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js @@ -23,7 +23,7 @@ var tape = require( 'tape' ); var abs = require( '@stdlib/math/base/special/abs' ); var zeros5d = require( '@stdlib/array/base/zeros5d' ); -var mskunary5d = require( '@stdlib/array/base/mskunary5d/lib' ); +var mskunary5d = require( './../lib' ); // TESTS // @@ -199,6 +199,7 @@ tape('the function applies a provided callback to a nested input array and assig t.deepEqual(y, expected, 'returns expected value'); t.end(); }); + tape( 'the function does not invoke a provided callback if provided a shape having a first element equal to zero', function test( t ) { var expected; var shape; @@ -280,6 +281,7 @@ tape( 'the function does not invoke a provided callback if provided a shape havi t.ok( false, 'should not invoke callback' ); } }); + tape( 'the function does not invoke a provided callback if provided a shape having a third element equal to zero', function test( t ) { var expected; var shape; @@ -362,6 +364,7 @@ tape( 'the function does not invoke a provided callback if provided a shape havi t.ok( false, 'should not invoke callback' ); } }); + tape( 'the function does not invoke a provided callback if provided a shape having a fifth element equal to zero', function test( t ) { var expected; var shape; @@ -402,3 +405,4 @@ tape( 'the function does not invoke a provided callback if provided a shape havi t.ok( false, 'should not invoke callback' ); } }); + From a487d1c08d2c7e63fe6fc96a2f1761b93c05c02a Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Thu, 21 Nov 2024 21:14:58 +0530 Subject: [PATCH 06/12] fix: adding relative path rather then absolute Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md index f84ca9a42e86..7b19e24f4c06 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -33,7 +33,7 @@ limitations under the License. ## Usage ```javascript -var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); +var mskunary5d = require( './../lib' ); ``` #### mskunary5d( arrays, shape, fcn ) @@ -86,7 +86,7 @@ var bernoulli = require( '@stdlib/random/base/bernoulli' ).factory; var filled5dBy = require( '@stdlib/array/base/filled5d-by' ); var zeros5d = require( '@stdlib/array/base/zeros5d' ); var abs = require( '@stdlib/math/base/special/abs' ); -var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); +var mskunary5d = require( './../lib' ); var shape = [ 1, 2, 2, 3, 3 ]; From 199cdb5153968b95d7b75d5c57873c1de69d2029 Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Thu, 21 Nov 2024 22:24:33 +0530 Subject: [PATCH 07/12] fix: Update README.md Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md index 7b19e24f4c06..009511c56a2e 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -86,7 +86,7 @@ var bernoulli = require( '@stdlib/random/base/bernoulli' ).factory; var filled5dBy = require( '@stdlib/array/base/filled5d-by' ); var zeros5d = require( '@stdlib/array/base/zeros5d' ); var abs = require( '@stdlib/math/base/special/abs' ); -var mskunary5d = require( './../lib' ); +var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); var shape = [ 1, 2, 2, 3, 3 ]; From ffa4a0ade36182409093312f3ee15ad5013bbed0 Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Fri, 22 Nov 2024 07:00:38 +0530 Subject: [PATCH 08/12] fix: Update README.md Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md index 009511c56a2e..d3adb5eeedb6 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -33,7 +33,7 @@ limitations under the License. ## Usage ```javascript -var mskunary5d = require( './../lib' ); +var mskunary5d = require( '@stdlib/array/base/mskunary5d/lib' ); ``` #### mskunary5d( arrays, shape, fcn ) From d761162144aa373b42290d6106acdfe2db7bec74 Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 21 Nov 2024 17:47:26 -0800 Subject: [PATCH 09/12] docs: fix require path Signed-off-by: Athan --- lib/node_modules/@stdlib/array/base/mskunary5d/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md index d3adb5eeedb6..f84ca9a42e86 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/README.md +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/README.md @@ -33,7 +33,7 @@ limitations under the License. ## Usage ```javascript -var mskunary5d = require( '@stdlib/array/base/mskunary5d/lib' ); +var mskunary5d = require( '@stdlib/array/base/mskunary5d' ); ``` #### mskunary5d( arrays, shape, fcn ) From 34c25dcb0b5446027760f0991666667fe22f02ee Mon Sep 17 00:00:00 2001 From: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> Date: Fri, 22 Nov 2024 08:12:41 +0530 Subject: [PATCH 10/12] fix: fixing space Signed-off-by: Vinit Pandit <106718914+MeastroZI@users.noreply.github.com> --- lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js index e621af7750d0..4baa98fb777d 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js @@ -405,4 +405,3 @@ tape( 'the function does not invoke a provided callback if provided a shape havi t.ok( false, 'should not invoke callback' ); } }); - From 464904dad1a195d6f2e1e543b5ded91066c22d77 Mon Sep 17 00:00:00 2001 From: Athan Reines Date: Sun, 24 Nov 2024 16:56:09 -0800 Subject: [PATCH 11/12] style: fix spacing --- .../@stdlib/array/base/mskunary5d/lib/main.js | 62 +++++++++---------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js index 20f0c2e17248..104b892d9ed1 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/lib/main.js @@ -15,6 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + /* eslint-disable max-depth */ 'use strict'; @@ -53,7 +54,7 @@ * console.log( y ); * // => [ [ [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ] ] ] */ -function mskunary5d(arrays, shape, fcn) { +function mskunary5d( arrays, shape, fcn ) { var S0; var S1; var S2; @@ -80,39 +81,36 @@ function mskunary5d(arrays, shape, fcn) { var y; var m; - S0 = shape[4]; - S1 = shape[3]; - S2 = shape[2]; - S3 = shape[1]; - S4 = shape[0]; - - if (S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0) { + S0 = shape[ 4 ]; + S1 = shape[ 3 ]; + S2 = shape[ 2 ]; + S3 = shape[ 1 ]; + S4 = shape[ 0 ]; + if ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) { return; } - - x = arrays[0]; - y = arrays[2]; - m = arrays[1]; - - for (i4 = 0; i4 < S4; i4++) { - x3 = x[i4]; - y3 = y[i4]; - m3 = m[i4]; - for (i3 = 0; i3 < S3; i3++) { - x2 = x3[i3]; - y2 = y3[i3]; - m2 = m3[i3]; - for (i2 = 0; i2 < S2; i2++) { - x1 = x2[i2]; - y1 = y2[i2]; - m1 = m2[i2]; - for (i1 = 0; i1 < S1; i1++) { - x0 = x1[i1]; - y0 = y1[i1]; - m0 = m1[i1]; - for (i0 = 0; i0 < S0; i0++) { - if (m0[i0] === 0) { - y0[i0] = fcn(x0[i0]); + x = arrays[ 0 ]; + y = arrays[ 2 ]; + m = arrays[ 1 ]; + for ( i4 = 0; i4 < S4; i4++ ) { + x3 = x[ i4 ]; + y3 = y[ i4 ]; + m3 = m[ i4 ]; + for ( i3 = 0; i3 < S3; i3++ ) { + x2 = x3[ i3 ]; + y2 = y3[ i3 ]; + m2 = m3[ i3 ]; + for ( i2 = 0; i2 < S2; i2++ ) { + x1 = x2[ i2 ]; + y1 = y2[ i2 ]; + m1 = m2[ i2 ]; + for ( i1 = 0; i1 < S1; i1++ ) { + x0 = x1[ i1 ]; + y0 = y1[ i1 ]; + m0 = m1[ i1 ]; + for ( i0 = 0; i0 < S0; i0++ ) { + if ( m0[ i0 ] === 0 ) { + y0[ i0 ] = fcn( x0[ i0 ] ); } } } From 616ce7af5b2072229ca4e3d4ba37a8f795e87f51 Mon Sep 17 00:00:00 2001 From: Athan Reines Date: Sun, 24 Nov 2024 17:02:14 -0800 Subject: [PATCH 12/12] style: fix spacing --- .../array/base/mskunary5d/test/test.js | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js index 4baa98fb777d..c0cf069591d8 100644 --- a/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js +++ b/lib/node_modules/@stdlib/array/base/mskunary5d/test/test.js @@ -28,54 +28,54 @@ var mskunary5d = require( './../lib' ); // TESTS // -tape('main export is a function', function test(t) { - t.ok(true, __filename); - t.strictEqual(typeof mskunary5d, 'function', 'main export is a function'); +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof mskunary5d, 'function', 'main export is a function' ); t.end(); }); -tape('the function applies a provided callback to a nested input array and assigns results to a nested output array', function test(t) { +tape( 'the function applies a provided callback to a nested input array and assigns results to a nested output array', function test( t ) { var expected; var shape; var x; var y; var m; - shape = [2, 2, 2, 2, 2]; + shape = [ 2, 2, 2, 2, 2 ]; x = [ [ [ [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ], [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ] ], [ [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ], [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ] ] ], [ [ [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ], [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ] ], [ [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ], [ - [-4, -4], [-1, -6] + [ -4, -4 ], [ -1, -6 ] ] ] ] @@ -84,36 +84,36 @@ tape('the function applies a provided callback to a nested input array and assig [ [ [ - [1, 0], [0, 0] + [ 1, 0 ], [ 0, 0 ] ], [ - [0, 1], [0, 0] + [ 0, 1 ], [ 0, 0 ] ] ], [ [ - [0, 0], [0, 0] + [ 0, 0 ], [ 0, 0 ] ], [ - [0, 1], [1, 0] + [ 0, 1 ], [ 1, 0 ] ] ] ], [ [ [ - [0, 0], [0, 0] + [ 0, 0 ], [ 0, 0 ] ], [ - [0, 1], [0, 0] + [ 0, 1 ], [ 0, 0 ] ] ], [ [ - [0, 0], [1, 0] + [ 0, 0 ], [ 1, 0 ] ], [ - [0, 1], [1, 0] + [ 0, 1 ], [ 1, 0 ] ] ] ] @@ -123,53 +123,53 @@ tape('the function applies a provided callback to a nested input array and assig [ [ [ - [0.0, 4.0], [1.0, 6.0] + [ 0.0, 4.0 ], [ 1.0, 6.0 ] ], [ - [4.0, 0.0], [1.0, 6.0] + [ 4.0, 0.0 ], [ 1.0, 6.0 ] ] ], [ [ - [4.0, 4.0], [1.0, 6.0] + [ 4.0, 4.0 ], [ 1.0, 6.0 ] ], [ - [4.0, 0.0], [0.0, 6.0] + [ 4.0, 0.0 ], [ 0.0, 6.0 ] ] ] ], [ [ [ - [4.0, 4.0], [1.0, 6.0] + [ 4.0, 4.0 ], [ 1.0, 6.0 ] ], [ - [4.0, 0.0], [1.0, 6.0] + [ 4.0, 0.0 ], [ 1.0, 6.0 ] ] ], [ [ - [4.0, 4.0], [0.0, 6.0] + [ 4.0, 4.0 ], [ 0.0, 6.0 ] ], [ - [4.0, 0.0], [0.0, 6.0] + [ 4.0, 0.0 ], [ 0.0, 6.0 ] ] ] ] ]; - y = zeros5d(shape); - mskunary5d([x, m, y], shape, abs); + y = zeros5d( shape ); + mskunary5d( [ x, m, y ], shape, abs ); - t.deepEqual(y, expected, 'returns expected value'); + t.deepEqual( y, expected, 'returns expected value' ); shape = [ 1, 1, 1, 2, 2 ]; x = [ [ [ [ - [-1.0, -2.0], - [-3.0, -4.0] + [ -1.0, -2.0 ], + [ -3.0, -4.0 ] ] ] ] @@ -178,8 +178,8 @@ tape('the function applies a provided callback to a nested input array and assig [ [ [ - [0, 1], - [0, 0] + [ 0, 1 ], + [ 0, 0 ] ] ] ] @@ -188,15 +188,15 @@ tape('the function applies a provided callback to a nested input array and assig [ [ [ - [1.0, 0.0], - [3.0, 4.0] + [ 1.0, 0.0 ], + [ 3.0, 4.0 ] ] ] ] ]; - y = zeros5d(shape); - mskunary5d([x, m, y], shape, abs); - t.deepEqual(y, expected, 'returns expected value'); + y = zeros5d( shape ); + mskunary5d( [ x, m, y ], shape, abs ); + t.deepEqual( y, expected, 'returns expected value' ); t.end(); });