From 4573beee68851b1bffde36f7fb0af75a5f7a80ea Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 6 Nov 2023 01:21:56 +0000 Subject: [PATCH] Auto-generated commit --- base/lib/index.js | 9 ++ base/quaternary2d/README.md | 134 ++++++++++++++++++ base/quaternary2d/benchmark/benchmark.js | 135 ++++++++++++++++++ base/quaternary2d/docs/repl.txt | 34 +++++ base/quaternary2d/docs/types/index.d.ts | 71 ++++++++++ base/quaternary2d/docs/types/test.ts | 106 ++++++++++++++ base/quaternary2d/examples/index.js | 48 +++++++ base/quaternary2d/lib/index.js | 56 ++++++++ base/quaternary2d/lib/main.js | 97 +++++++++++++ base/quaternary2d/package.json | 66 +++++++++ base/quaternary2d/test/test.js | 167 +++++++++++++++++++++++ dist/index.js | 2 +- dist/index.js.map | 8 +- 13 files changed, 928 insertions(+), 5 deletions(-) create mode 100644 base/quaternary2d/README.md create mode 100644 base/quaternary2d/benchmark/benchmark.js create mode 100644 base/quaternary2d/docs/repl.txt create mode 100644 base/quaternary2d/docs/types/index.d.ts create mode 100644 base/quaternary2d/docs/types/test.ts create mode 100644 base/quaternary2d/examples/index.js create mode 100644 base/quaternary2d/lib/index.js create mode 100644 base/quaternary2d/lib/main.js create mode 100644 base/quaternary2d/package.json create mode 100644 base/quaternary2d/test/test.js diff --git a/base/lib/index.js b/base/lib/index.js index 26435348..799002de 100644 --- a/base/lib/index.js +++ b/base/lib/index.js @@ -612,6 +612,15 @@ setReadOnly( ns, 'ones5d', require( './../../base/ones5d' ) ); */ setReadOnly( ns, 'onesnd', require( './../../base/onesnd' ) ); +/** +* @name quaternary2d +* @memberof ns +* @readonly +* @type {Function} +* @see {@link module:@stdlib/array/base/quaternary2d} +*/ +setReadOnly( ns, 'quaternary2d', require( './../../base/quaternary2d' ) ); + /** * @name setter * @memberof ns diff --git a/base/quaternary2d/README.md b/base/quaternary2d/README.md new file mode 100644 index 00000000..9e76a142 --- /dev/null +++ b/base/quaternary2d/README.md @@ -0,0 +1,134 @@ + + +# quaternary2d + +> Apply a quaternary callback to elements in four two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array. + +
+ +
+ + + +
+ +## Usage + +```javascript +var quaternary2d = require( '@stdlib/array/base/quaternary2d' ); +``` + +#### quaternary2d( arrays, shape, fcn ) + +Applies a quaternary callback to elements in four two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array. + +```javascript +var zeros2d = require( '@stdlib/array/base/zeros2d' ); + +function add( x, y, z, w ) { + return x + y + z + w; +} + +var x = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; +var out = zeros2d( [ 2, 2 ] ); + +var shape = [ 2, 2 ]; + +quaternary2d( [ x, x, x, x, out ], shape, add ); +// out => [ [ 4.0, 8.0 ], [ 12.0, 16.0 ] ] +``` + +The function accepts the following arguments: + +- **arrays**: array-like object containing four input nested arrays and one output nested array. +- **shape**: array shape. +- **fcn**: quaternary function to apply. + +
+ + + +
+ +## Notes + +- The function assumes that the input and output arrays have the same shape. + +
+ + + +
+ +## Examples + + + +```javascript +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var filled2dBy = require( '@stdlib/array/base/filled2d-by' ); +var zeros2d = require( '@stdlib/array/base/zeros2d' ); +var quaternary2d = require( '@stdlib/array/base/quaternary2d' ); + +function add( x, y, z, w ) { + return x + y + z + w; +} + +var shape = [ 3, 3 ]; + +var x = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( x ); + +var y = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( y ); + +var z = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( z ); + +var w = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( w ); + +var out = zeros2d( shape ); +console.log( out ); + +quaternary2d( [ x, y, z, w, out ], shape, add ); +console.log( out ); +``` + +
+ + + + + + + + + + + + + + diff --git a/base/quaternary2d/benchmark/benchmark.js b/base/quaternary2d/benchmark/benchmark.js new file mode 100644 index 00000000..5beef9ec --- /dev/null +++ b/base/quaternary2d/benchmark/benchmark.js @@ -0,0 +1,135 @@ +/** +* @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 bench = require( '@stdlib/bench' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var filled2dBy = require( './../../../base/filled2d-by' ); +var zeros2d = require( './../../../base/zeros2d' ); +var numel = require( '@stdlib/ndarray/base/numel' ); +var pkg = require( './../package.json' ).name; +var quaternary2d = require( './../lib' ); + + +// FUNCTIONS // + +/** +* Returns the sum. +* +* @private +* @param {number} x - first value +* @param {number} y - second value +* @param {number} z - third value +* @param {number} w - fourth value +* @returns {number} sum +*/ +function add( x, y, z, w ) { + return x + y + z + w; +} + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveIntegerArray} shape - array shape +* @returns {Function} benchmark function +*/ +function createBenchmark( shape ) { + var arrays; + var out; + var x; + var y; + var z; + var w; + + x = filled2dBy( shape, uniform( -100.0, 100.0 ) ); + y = filled2dBy( shape, uniform( -100.0, 100.0 ) ); + z = filled2dBy( shape, uniform( -100.0, 100.0 ) ); + w = filled2dBy( shape, uniform( -100.0, 100.0 ) ); + out = zeros2d( shape ); + + arrays = [ x, y, z, w, out ]; + + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var i0; + var i1; + var i; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + quaternary2d( arrays, shape, add ); + i1 = i % shape[ 0 ]; + i0 = i % shape[ 1 ]; + if ( isnan( arrays[ 4 ][ i1 ][ i0 ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + + i1 = i % shape[ 0 ]; + i0 = i % shape[ 1 ]; + if ( isnan( arrays[ 4 ][ 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/2.0 ) ); + sh = [ N, N ]; + f = createBenchmark( sh ); + bench( pkg+'::square_matrix:size='+numel( sh ), f ); + } +} + +main(); diff --git a/base/quaternary2d/docs/repl.txt b/base/quaternary2d/docs/repl.txt new file mode 100644 index 00000000..7f082dcb --- /dev/null +++ b/base/quaternary2d/docs/repl.txt @@ -0,0 +1,34 @@ + +{{alias}}( arrays, shape, fcn ) + Applies a quaternary callback to elements in four two-dimensional nested + input arrays and assigns results to elements in a two-dimensional nested + output array. + + Parameters + ---------- + arrays: ArrayLikeObject + Array-like object containing four input nested arrays and one output + nested array. + + shape: Array + Array shape. + + fcn: Function + Ternary callback. + + Examples + -------- + > function fcn( x, y, z, w ) { return x + y + z + w; }; + > var x = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + > var y = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + > var z = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + > var w = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + > var out = [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]; + > var shape = [ 2, 2 ]; + > {{alias}}( [ x, y, z, w, out ], shape, fcn ); + > out + [ [ 4.0, 8.0 ], [ 12.0, 16.0 ] ] + + See Also + -------- + diff --git a/base/quaternary2d/docs/types/index.d.ts b/base/quaternary2d/docs/types/index.d.ts new file mode 100644 index 00000000..c52cc47a --- /dev/null +++ b/base/quaternary2d/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 { Array2D } from '@stdlib/types/array'; +import { Shape2D } from '@stdlib/types/ndarray'; + +/** +* Ternary callback. +* +* @param value - input value +* @returns result +*/ +type Ternary = ( v1: T, v2: U, v3: V, v4: W ) => X; + +/** +* Applies a quaternary callback to elements in four two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array. +* +* ## Notes +* +* - The function assumes that the input and output arrays have the same shape. +* +* @param arrays - array containing four input nested arrays and one output nested array +* @param shape - array shape +* @param fcn - quaternary callback +* +* @example +* var ones2d = require( `@stdlib/array/base/ones2d` ); +* var zeros2d = require( `@stdlib/array/base/zeros2d` ); +* +* function add( x, y, z, w ) { +* return x + y + z + w; +* } +* +* var shape = [ 2, 2 ]; +* +* var x = ones2d( shape ); +* var y = ones2d( shape ); +* var z = ones2d( shape ); +* var w = ones2d( shape ); +* var out = zeros2d( shape ); +* +* quaternary2d( [ x, y, z, w, out ], shape, add ); +* +* console.log( out ); +* // => [ [ 4.0, 4.0 ], [ 4.0, 4.0 ] ] +*/ +declare function quaternary2d( arrays: [ Array2D, Array2D, Array2D, Array2D, Array2D ], shape: Shape2D, fcn: Ternary ): void; + + +// EXPORTS // + +export = quaternary2d; diff --git a/base/quaternary2d/docs/types/test.ts b/base/quaternary2d/docs/types/test.ts new file mode 100644 index 00000000..8bec160c --- /dev/null +++ b/base/quaternary2d/docs/types/test.ts @@ -0,0 +1,106 @@ +/* +* @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 quaternary2d = require( './index' ); + +/** +* Quaternary function. +* +* @param x - input value +* @param y - input value +* @param z - input value +* @param w - input value +* @returns result +*/ +function fcn( x: number, y: number, z: number, w: number ): number { + return x + y + z + w; +} + + +// TESTS // + +// The function returns undefined... +{ + const x = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const y = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const z = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const w = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const out = [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]; + + quaternary2d( [ x, y, z, w, out ], [ 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... +{ + quaternary2d( 'abc', [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( 3.14, [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( true, [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( false, [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( null, [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( [ '1' ], [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( {}, [ 2, 2 ], fcn ); // $ExpectError + quaternary2d( ( x: number ): number => x, [ 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 y = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const z = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const w = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const out = [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]; + + quaternary2d( [ x, y, z, w, out ], 'abc', fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], 3.14, fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], true, fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], false, fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], null, fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ '1' ], fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], {}, fcn ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], ( 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 y = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const z = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const w = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const out = [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]; + + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], 'abc' ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], 3.14 ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], true ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], false ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], null ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], [ '1' ] ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 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 y = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const z = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const w = [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]; + const out = [ [ 0.0, 0.0 ], [ 0.0, 0.0 ] ]; + + quaternary2d(); // $ExpectError + quaternary2d( [ x, y, z, w, out ] ); // $ExpectError + quaternary2d( [ x, y, z, w, out ], [ 2, 2 ], fcn, {} ); // $ExpectError +} diff --git a/base/quaternary2d/examples/index.js b/base/quaternary2d/examples/index.js new file mode 100644 index 00000000..8f85623b --- /dev/null +++ b/base/quaternary2d/examples/index.js @@ -0,0 +1,48 @@ +/** +* @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 filled2dBy = require( './../../../base/filled2d-by' ); +var zeros2d = require( './../../../base/zeros2d' ); +var quaternary2d = require( './../lib' ); + +function add( x, y, z, w ) { + return x + y + z + w; +} + +var shape = [ 3, 3 ]; + +var x = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( x ); + +var y = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( y ); + +var z = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( z ); + +var w = filled2dBy( shape, discreteUniform( -100, 100 ) ); +console.log( w ); + +var out = zeros2d( shape ); +console.log( out ); + +quaternary2d( [ x, y, z, w, out ], shape, add ); +console.log( out ); diff --git a/base/quaternary2d/lib/index.js b/base/quaternary2d/lib/index.js new file mode 100644 index 00000000..885ce238 --- /dev/null +++ b/base/quaternary2d/lib/index.js @@ -0,0 +1,56 @@ +/** +* @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 quaternary callback to elements in four two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array. +* +* @module @stdlib/array/base/quaternary2d +* +* @example +* var ones2d = require( '@stdlib/array/base/ones2d' ); +* var zeros2d = require( '@stdlib/array/base/zeros2d' ); +* var quaternary2d = require( '@stdlib/array/base/quaternary2d' ); +* +* function add( x, y, z, w ) { +* return x + y + z + w; +* } +* +* var shape = [ 2, 2 ]; +* +* var x = ones2d( shape ); +* var y = ones2d( shape ); +* var z = ones2d( shape ); +* var w = ones2d( shape ); +* var out = zeros2d( shape ); +* +* quaternary2d( [ x, y, z, w, out ], shape, add ); +* +* console.log( out ); +* // => [ [ 4.0, 4.0 ], [ 4.0, 4.0 ] ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/base/quaternary2d/lib/main.js b/base/quaternary2d/lib/main.js new file mode 100644 index 00000000..c9bc8742 --- /dev/null +++ b/base/quaternary2d/lib/main.js @@ -0,0 +1,97 @@ +/** +* @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 quaternary callback to elements in four two-dimensional nested input arrays and assigns results to elements in a two-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 four input nested arrays and one output nested array +* @param {NonNegativeIntegerArray} shape - array shape +* @param {Callback} fcn - quaternary callback +* @returns {void} +* +* @example +* var ones2d = require( '@stdlib/array/base/ones2d' ); +* var zeros2d = require( '@stdlib/array/base/zeros2d' ); +* +* function add( x, y, z, w ) { +* return x + y + z + w; +* } +* +* var shape = [ 2, 2 ]; +* +* var x = ones2d( shape ); +* var y = ones2d( shape ); +* var z = ones2d( shape ); +* var w = ones2d( shape ); +* var out = zeros2d( shape ); +* +* quaternary2d( [ x, y, z, w, out ], shape, add ); +* +* console.log( out ); +* // => [ [ 4.0, 4.0 ], [ 4.0, 4.0 ] ] +*/ +function quaternary2d( arrays, shape, fcn ) { + var S0; + var S1; + var i0; + var i1; + var x0; + var y0; + var z0; + var w0; + var v0; + var x; + var y; + var z; + var w; + var v; + + S0 = shape[ 1 ]; + S1 = shape[ 0 ]; + if ( S0 <= 0 || S1 <= 0 ) { + return; + } + x = arrays[ 0 ]; + y = arrays[ 1 ]; + z = arrays[ 2 ]; + w = arrays[ 3 ]; + v = arrays[ 4 ]; + for ( i1 = 0; i1 < S1; i1++ ) { + x0 = x[ i1 ]; + y0 = y[ i1 ]; + z0 = z[ i1 ]; + w0 = w[ i1 ]; + v0 = v[ i1 ]; + for ( i0 = 0; i0 < S0; i0++ ) { + v0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ], w0[ i0 ] ); + } + } +} + + +// EXPORTS // + +module.exports = quaternary2d; diff --git a/base/quaternary2d/package.json b/base/quaternary2d/package.json new file mode 100644 index 00000000..22d0a4c0 --- /dev/null +++ b/base/quaternary2d/package.json @@ -0,0 +1,66 @@ +{ + "name": "@stdlib/array/base/quaternary2d", + "version": "0.0.0", + "description": "Apply a quaternary callback to elements in four two-dimensional nested input arrays and assign results to elements in a two-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", + "2d", + "quaternary", + "apply", + "foreach", + "map", + "transform" + ], + "__stdlib__": {} +} diff --git a/base/quaternary2d/test/test.js b/base/quaternary2d/test/test.js new file mode 100644 index 00000000..0422ea88 --- /dev/null +++ b/base/quaternary2d/test/test.js @@ -0,0 +1,167 @@ +/** +* @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 zeros2d = require( './../../../base/zeros2d' ); +var quaternary2d = require( './../lib' ); + + +// FUNCTIONS // + +/** +* Returns the sum. +* +* @private +* @param {number} x - first value +* @param {number} y - second value +* @param {number} z - third value +* @param {number} w - fourth value +* @returns {number} sum +*/ +function add( x, y, z, w ) { + return x + y + z + w; +} + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof quaternary2d, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function applies a provided callback to nested input arrays and assigns results to a nested output array', function test( t ) { + var expected; + var shape; + var out; + var x; + var y; + var z; + var w; + + shape = [ 2, 2 ]; + x = [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ]; + y = [ + [ 5.0, 6.0 ], + [ 7.0, 8.0 ] + ]; + z = [ + [ 9.0, 10.0 ], + [ 11.0, 12.0 ] + ]; + w = [ + [ 13.0, 14.0 ], + [ 15.0, 16.0 ] + ]; + out = zeros2d( shape ); + + expected = [ + [ 28.0, 32.0 ], + [ 36.0, 40.0 ] + ]; + quaternary2d( [ x, y, z, w, out ], shape, add ); + + t.deepEqual( out, 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 out; + var x; + var y; + var z; + var w; + + shape = [ 2, 2 ]; + x = [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ]; + y = [ + [ 5.0, 6.0 ], + [ 7.0, 8.0 ] + ]; + z = [ + [ 9.0, 10.0 ], + [ 11.0, 12.0 ] + ]; + w = [ + [ 13.0, 14.0 ], + [ 15.0, 16.0 ] + ]; + out = zeros2d( shape ); + + expected = zeros2d( shape ); + quaternary2d( [ x, y, z, w, out ], [ 0, 2 ], clbk ); + + t.deepEqual( out, 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 out; + var x; + var y; + var z; + var w; + + shape = [ 2, 2 ]; + x = [ + [ 1.0, 2.0 ], + [ 3.0, 4.0 ] + ]; + y = [ + [ 5.0, 6.0 ], + [ 7.0, 8.0 ] + ]; + z = [ + [ 9.0, 10.0 ], + [ 11.0, 12.0 ] + ]; + w = [ + [ 13.0, 14.0 ], + [ 15.0, 16.0 ] + ]; + out = zeros2d( shape ); + + expected = zeros2d( shape ); + quaternary2d( [ x, y, z, w, out ], [ 2, 0 ], clbk ); + + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); + + function clbk() { + t.ok( false, 'should not invoke callback' ); + } +}); diff --git a/dist/index.js b/dist/index.js index 4cf5bee3..d36c0542 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,4 @@ -"use strict";var l=function(r,e){return function(){return e||r((e={exports:{}}).exports,e),e.exports}};var ni=l(function(jj,ai){"use strict";var ii="function";function z1(r){return typeof r.get===ii&&typeof r.set===ii}ai.exports=z1});var U=l(function(Cj,ui){"use strict";var P1=ni();ui.exports=P1});var vi=l(function(Vj,si){"use strict";var oi={float64:U1,float32:D1,int32:Y1,int16:G1,int8:W1,uint32:Z1,uint16:K1,uint8:X1,uint8c:H1,generic:J1,default:$1};function U1(r,e){return r[e]}function D1(r,e){return r[e]}function Y1(r,e){return r[e]}function G1(r,e){return r[e]}function W1(r,e){return r[e]}function Z1(r,e){return r[e]}function K1(r,e){return r[e]}function X1(r,e){return r[e]}function H1(r,e){return r[e]}function J1(r,e){return r[e]}function $1(r,e){return r[e]}function Q1(r){var e=oi[r];return typeof e=="function"?e:oi.default}si.exports=Q1});var Y=l(function(_j,li){"use strict";var rd=vi();li.exports=rd});var mi=l(function(Ij,ci){"use strict";var fi={float64:ed,float32:td,int32:id,int16:ad,int8:nd,uint32:ud,uint16:od,uint8:sd,uint8c:vd,generic:ld,default:fd};function ed(r,e,t){r[e]=t}function td(r,e,t){r[e]=t}function id(r,e,t){r[e]=t}function ad(r,e,t){r[e]=t}function nd(r,e,t){r[e]=t}function ud(r,e,t){r[e]=t}function od(r,e,t){r[e]=t}function sd(r,e,t){r[e]=t}function vd(r,e,t){r[e]=t}function ld(r,e,t){r[e]=t}function fd(r,e,t){r[e]=t}function cd(r){var e=fi[r];return typeof e=="function"?e:fi.default}ci.exports=cd});var $r=l(function(Lj,pi){"use strict";var md=mi();pi.exports=md});var di=l(function(Oj,yi){"use strict";var gi={complex128:pd,complex64:gd,default:yd};function pd(r,e){return r.get(e)}function gd(r,e){return r.get(e)}function yd(r,e){return r.get(e)}function dd(r){var e=gi[r];return typeof e=="function"?e:gi.default}yi.exports=dd});var D=l(function(Fj,qi){"use strict";var qd=di();qi.exports=qd});var wi=l(function(Rj,hi){"use strict";var xi={complex128:xd,complex64:hd,default:wd};function xd(r,e,t){r.set(t,e)}function hd(r,e,t){r.set(t,e)}function wd(r,e,t){r.set(t,e)}function bd(r){var e=xi[r];return typeof e=="function"?e:xi.default}hi.exports=bd});var Qr=l(function(Bj,bi){"use strict";var Ad=wi();bi.exports=Ad});var Ei=l(function(Nj,Ai){"use strict";var Ed={Float32Array:"float32",Float64Array:"float64",Array:"generic",Int16Array:"int16",Int32Array:"int32",Int8Array:"int8",Uint16Array:"uint16",Uint32Array:"uint32",Uint8Array:"uint8",Uint8ClampedArray:"uint8c",Complex64Array:"complex64",Complex128Array:"complex128"};Ai.exports=Ed});var Ti=l(function(Mj,Si){"use strict";var Sd=typeof Float64Array=="function"?Float64Array:void 0;Si.exports=Sd});var ji=l(function(zj,ki){"use strict";function Td(){throw new Error("not implemented")}ki.exports=Td});var er=l(function(Pj,Ci){"use strict";var kd=require("@stdlib/assert/has-float64array-support"),jd=Ti(),Cd=ji(),Be;kd()?Be=jd:Be=Cd;Ci.exports=Be});var _i=l(function(Uj,Vi){"use strict";var Vd=typeof Float32Array=="function"?Float32Array:void 0;Vi.exports=Vd});var Li=l(function(Dj,Ii){"use strict";function _d(){throw new Error("not implemented")}Ii.exports=_d});var tr=l(function(Yj,Oi){"use strict";var Id=require("@stdlib/assert/has-float32array-support"),Ld=_i(),Od=Li(),Ne;Id()?Ne=Ld:Ne=Od;Oi.exports=Ne});var Ri=l(function(Gj,Fi){"use strict";var Fd=typeof Uint32Array=="function"?Uint32Array:void 0;Fi.exports=Fd});var Ni=l(function(Wj,Bi){"use strict";function Rd(){throw new Error("not implemented")}Bi.exports=Rd});var ur=l(function(Zj,Mi){"use strict";var Bd=require("@stdlib/assert/has-uint32array-support"),Nd=Ri(),Md=Ni(),Me;Bd()?Me=Nd:Me=Md;Mi.exports=Me});var Pi=l(function(Kj,zi){"use strict";var zd=typeof Int32Array=="function"?Int32Array:void 0;zi.exports=zd});var Di=l(function(Xj,Ui){"use strict";function Pd(){throw new Error("not implemented")}Ui.exports=Pd});var or=l(function(Hj,Yi){"use strict";var Ud=require("@stdlib/assert/has-int32array-support"),Dd=Pi(),Yd=Di(),ze;Ud()?ze=Dd:ze=Yd;Yi.exports=ze});var Wi=l(function(Jj,Gi){"use strict";var Gd=typeof Uint16Array=="function"?Uint16Array:void 0;Gi.exports=Gd});var Ki=l(function($j,Zi){"use strict";function Wd(){throw new Error("not implemented")}Zi.exports=Wd});var sr=l(function(Qj,Xi){"use strict";var Zd=require("@stdlib/assert/has-uint16array-support"),Kd=Wi(),Xd=Ki(),Pe;Zd()?Pe=Kd:Pe=Xd;Xi.exports=Pe});var Ji=l(function(rC,Hi){"use strict";var Hd=typeof Int16Array=="function"?Int16Array:void 0;Hi.exports=Hd});var Qi=l(function(eC,$i){"use strict";function Jd(){throw new Error("not implemented")}$i.exports=Jd});var vr=l(function(tC,ra){"use strict";var $d=require("@stdlib/assert/has-int16array-support"),Qd=Ji(),rq=Qi(),Ue;$d()?Ue=Qd:Ue=rq;ra.exports=Ue});var ta=l(function(iC,ea){"use strict";var eq=typeof Uint8Array=="function"?Uint8Array:void 0;ea.exports=eq});var aa=l(function(aC,ia){"use strict";function tq(){throw new Error("not implemented")}ia.exports=tq});var lr=l(function(nC,na){"use strict";var iq=require("@stdlib/assert/has-uint8array-support"),aq=ta(),nq=aa(),De;iq()?De=aq:De=nq;na.exports=De});var oa=l(function(uC,ua){"use strict";var uq=typeof Uint8ClampedArray=="function"?Uint8ClampedArray:void 0;ua.exports=uq});var va=l(function(oC,sa){"use strict";function oq(){throw new Error("not implemented")}sa.exports=oq});var fr=l(function(sC,la){"use strict";var sq=require("@stdlib/assert/has-uint8clampedarray-support"),vq=oa(),lq=va(),Ye;sq()?Ye=vq:Ye=lq;la.exports=Ye});var ca=l(function(vC,fa){"use strict";var fq=typeof Int8Array=="function"?Int8Array:void 0;fa.exports=fq});var pa=l(function(lC,ma){"use strict";function cq(){throw new Error("not implemented")}ma.exports=cq});var cr=l(function(fC,ga){"use strict";var mq=require("@stdlib/assert/has-int8array-support"),pq=ca(),gq=pa(),Ge;mq()?Ge=pq:Ge=gq;ga.exports=Ge});var da=l(function(cC,ya){"use strict";var yq=require("@stdlib/assert/is-array-like-object"),dq=require("@stdlib/assert/is-complex-like"),qq=require("@stdlib/complex/realf"),xq=require("@stdlib/complex/imagf"),hq=require("@stdlib/string/format");function wq(r){var e,t,i;for(e=[];t=r.next(),!t.done;)if(i=t.value,yq(i)&&i.length>=2)e.push(i[0],i[1]);else if(dq(i))e.push(qq(i),xq(i));else return new TypeError(hq("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",i));return e}ya.exports=wq});var xa=l(function(mC,qa){"use strict";var bq=require("@stdlib/assert/is-array-like-object"),Aq=require("@stdlib/assert/is-complex-like"),Eq=require("@stdlib/complex/realf"),Sq=require("@stdlib/complex/imagf"),Tq=require("@stdlib/string/format");function kq(r,e,t){var i,u,o,n;for(i=[],n=-1;u=r.next(),!u.done;)if(n+=1,o=e.call(t,u.value,n),bq(o)&&o.length>=2)i.push(o[0],o[1]);else if(Aq(o))i.push(Eq(o),Sq(o));else return new TypeError(Tq("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));return i}qa.exports=kq});var wa=l(function(pC,ha){"use strict";var jq=require("@stdlib/assert/is-complex-like"),Cq=require("@stdlib/complex/realf"),Vq=require("@stdlib/complex/imagf");function _q(r,e){var t,i,u,o;for(t=e.length,o=0,u=0;ut.byteLength-r)throw new RangeError(R("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*X));t=new $(t,r,i*2)}}return W(this,"_buffer",t),W(this,"_length",t.length/2),this}W(N,"BYTES_PER_ELEMENT",X);W(N,"name","Complex64Array");W(N,"from",function(e){var t,i,u,o,n,a,s,v,f,m,c,p;if(!br(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!ja(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(i=arguments.length,i>1){if(u=arguments[1],!br(u))throw new TypeError(R("invalid argument. Second argument must be a function. Value: `%s`.",u));i>2&&(t=arguments[2])}if(Ir(e)){if(v=e.length,u){for(o=new this(v),n=o._buffer,p=0,c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(R("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Ze(e)){if(u){for(v=e.length,e.get&&e.set?s=Bq("default"):s=Rq("default"),c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(R("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Ea(e)&&ka&&br(e[_r])){if(n=e[_r](),!br(n.next))throw new TypeError(R("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",e));if(u?a=Nq(n,u,t):a=Ta(n),a instanceof Error)throw a;for(v=a.length/2,o=new this(v),n=o._buffer,c=0;c=u?{done:!0}:(a+=2,m=new Sa(e[a],e[a+1]),{value:[n,m],done:!1})}function v(m){return o=!0,arguments.length?{value:m,done:!0}:{done:!0}}function f(){return t.entries()}});W(N.prototype,"get",function(e){var t;if(!Ir(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Dr(e))throw new TypeError(R("invalid argument. Must provide a nonnegative integer. Value: `%s`.",e));if(!(e>=this._length))return t=this._buffer,e*=2,new Sa(t[e],t[e+1])});ie(N.prototype,"length",function(){return this._length});W(N.prototype,"set",function(e){var t,i,u,o,n,a,s,v,f;if(!Ir(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(u=this._buffer,arguments.length>1){if(i=arguments[1],!Dr(i))throw new TypeError(R("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(Vr(e)){if(i>=this._length)throw new RangeError(R("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));i*=2,u[i]=ee(e),u[i+1]=te(e);return}if(Ir(e)){if(a=e._length,i+a>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e._buffer,f=u.byteOffset+i*X,t.buffer===u.buffer&&t.byteOffsetf){for(o=new $(t.length),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e,f=u.byteOffset+i*X,t.buffer===u.buffer&&t.byteOffsetf){for(o=new $(a),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(i*=2,v=0;v=2)e.push(i[0],i[1]);else if(Yq(i))e.push(Wq(i),Zq(i));else return new TypeError(Gq("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",i));return e}Ia.exports=Kq});var Fa=l(function(qC,Oa){"use strict";var Xq=require("@stdlib/assert/is-array-like-object"),Hq=require("@stdlib/assert/is-complex-like"),Jq=require("@stdlib/string/format"),$q=require("@stdlib/complex/real"),Qq=require("@stdlib/complex/imag");function r2(r,e,t){var i,u,o,n;for(i=[],n=-1;u=r.next(),!u.done;)if(n+=1,o=e.call(t,u.value,n),Xq(o)&&o.length>=2)i.push(o[0],o[1]);else if(Hq(o))i.push($q(o),Qq(o));else return new TypeError(Jq("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));return i}Oa.exports=r2});var Ba=l(function(xC,Ra){"use strict";var e2=require("@stdlib/assert/is-complex-like"),t2=require("@stdlib/complex/real"),i2=require("@stdlib/complex/imag");function a2(r,e){var t,i,u,o;for(t=e.length,o=0,u=0;ut.byteLength-r)throw new RangeError(B("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*H));t=new Q(t,r,i*2)}}return Z(this,"_buffer",t),Z(this,"_length",t.length/2),this}Z(M,"BYTES_PER_ELEMENT",H);Z(M,"name","Complex128Array");Z(M,"from",function(e){var t,i,u,o,n,a,s,v,f,m,c,p;if(!Ar(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Ya(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(i=arguments.length,i>1){if(u=arguments[1],!Ar(u))throw new TypeError(B("invalid argument. Second argument must be a function. Value: `%s`.",u));i>2&&(t=arguments[2])}if(Fr(e)){if(v=e.length,u){for(o=new this(v),n=o._buffer,p=0,c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(B("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Xe(e)){if(u){for(v=e.length,e.get&&e.set?s=l2("default"):s=v2("default"),c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(B("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(za(e)&&Da&&Ar(e[Or])){if(n=e[Or](),!Ar(n.next))throw new TypeError(B("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",e));if(u?a=f2(n,u,t):a=Ua(n),a instanceof Error)throw a;for(v=a.length/2,o=new this(v),n=o._buffer,c=0;c=u?{done:!0}:(a+=2,m=new Pa(e[a],e[a+1]),{value:[n,m],done:!1})}function v(m){return o=!0,arguments.length?{value:m,done:!0}:{done:!0}}function f(){return t.entries()}});Z(M.prototype,"get",function(e){var t;if(!Fr(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yr(e))throw new TypeError(B("invalid argument. Must provide a nonnegative integer. Value: `%s`.",e));if(!(e>=this._length))return t=this._buffer,e*=2,new Pa(t[e],t[e+1])});oe(M.prototype,"length",function(){return this._length});Z(M.prototype,"set",function(e){var t,i,u,o,n,a,s,v,f;if(!Fr(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(u=this._buffer,arguments.length>1){if(i=arguments[1],!Yr(i))throw new TypeError(B("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(Lr(e)){if(i>=this._length)throw new RangeError(B("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));i*=2,u[i]=ne(e),u[i+1]=ue(e);return}if(Fr(e)){if(a=e._length,i+a>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e._buffer,f=u.byteOffset+i*H,t.buffer===u.buffer&&t.byteOffsetf){for(o=new Q(t.length),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e,f=u.byteOffset+i*H,t.buffer===u.buffer&&t.byteOffsetf){for(o=new Q(a),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(i*=2,v=0;v=0;v--)if(f=a-n+v,!(f<0)){if(s=e[f],u=t[v],u!==0&&u=0;v--)a=f%n,f-=a,f/=n,u[v]=a;for(i=[],v=0;v=0;c--)f=p%i[c],p-=f,p/=i[c],s[c]=f;for(n=[],c=0;c4&&(u=arguments[4]),m=r[0],c=r[1],s=0;s2){if(arguments.length===3?sc(t)?u=t:(o=t,n=!1):(u=i,o=t),o===0)return[];if(!s3(o)||o<0)throw new TypeError(Tr("invalid argument. Length must be a positive integer. Value: `%s`.",o));if(n){if(!sc(u))throw new TypeError(Tr("invalid argument. Options argument must be an object. Value: `%s`.",u));if(o3(u,"round")){if(!v3(u.round))throw new TypeError(Tr("invalid option. `%s` option must be a string. Option: `%s`.","round",u.round));if(vc.indexOf(u.round)===-1)throw new Error(Tr('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"round",vc.join('", "'),u.round))}}}switch(u.round){case"round":v=f3;break;case"ceil":v=c3;break;case"floor":default:v=l3;break}for(s=o-1,m=(e.getTime()-r.getTime())/s,a=new Array(o),f=r,a[0]=f,f=f.getTime(),c=1;c1?i=arguments[1]:i="float64",i==="generic")return z3(r);if(e=P3(i),e===null)throw new TypeError(jc("invalid argument. Second argument must be a supported data type. Value: `%s`.",i));return u=M3(i),a=e*r,i==="complex128"&&(a+=8),o=N3(a),t=o.byteOffset,i==="complex128"&&(kc(t/e)||(t+=8)),n=new u(o.buffer,t,r),n}Cc.exports=U3});var Lc=l(function(sL,Ic){"use strict";var D3=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Y3=Sr(),G3=qr(),_c=require("@stdlib/string/format");function W3(r){var e,t;if(!D3(r))throw new TypeError(_c("invalid argument. First argument must be a nonnegative integer. Value: `%s`.",r));if(arguments.length>1?e=arguments[1]:e="float64",e==="generic")return G3(r);if(t=Y3(e),t===null)throw new TypeError(_c("invalid argument. Second argument must be a recognized data type. Value: `%s`.",e));return new t(r)}Ic.exports=W3});var pe=l(function(vL,Oc){"use strict";var Z3=Lc();Oc.exports=Z3});var Bc=l(function(lL,Rc){"use strict";var Fc=pe();function K3(r){return arguments.length>1?Fc(r,arguments[1]):Fc(r)}Rc.exports=K3});var xt=l(function(fL,Nc){"use strict";var X3=wc(),H3=Vc(),J3=Bc(),qt;X3()?qt=H3:qt=J3;Nc.exports=qt});var zc=l(function(cL,Mc){"use strict";var $3=F(),Q3=xt(),r8=require("@stdlib/string/format");function e8(r){var e=$3(r);if(e===null)throw new TypeError(r8("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>1&&(e=arguments[1]),Q3(r.length,e)}Mc.exports=e8});var Uc=l(function(mL,Pc){"use strict";var t8=zc();Pc.exports=t8});var Kc=l(function(pL,Zc){"use strict";var i8=require("@stdlib/assert/is-string").isPrimitive,Dc=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Yc=require("@stdlib/assert/is-collection"),ht=require("@stdlib/assert/is-arraybuffer"),Gc=require("@stdlib/assert/is-object"),ge=require("@stdlib/assert/is-function"),a8=Sr(),n8=require("@stdlib/blas/ext/base/gfill"),u8=ir(),o8=require("@stdlib/assert/has-iterator-symbol-support"),ye=require("@stdlib/symbol/iterator"),s8=require("@stdlib/iter/length"),mr=require("@stdlib/string/format"),Wc=o8();function v8(r,e){var t,i;for(t=[];i=r.next(),!i.done;)t.push(e);return t}function l8(r,e){var t;for(t=0;t=0&&i8(arguments[e])?(t=arguments[e],e-=1):t="float64",i=a8(t),i===null)throw new TypeError(mr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));if(t==="generic"){if(e<=0)return[];if(r=arguments[0],n=arguments[1],e===1){if(Dc(n)?o=n:Yc(n)&&(o=n.length),o!==void 0)return u8(r,o);if(ht(n))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");if(Gc(n)){if(Wc===!1)throw new TypeError(mr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",n));if(!ge(n[ye]))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));if(n=n[ye](),!ge(n.next))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));return v8(n,r)}throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n))}else if(ht(n))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n))}if(e<=0)return new i(0);if(e===1)if(n=arguments[1],Yc(n))u=new i(n.length);else if(ht(n))u=new i(n);else if(Dc(n))u=new i(n);else if(Gc(n)){if(Wc===!1)throw new TypeError(mr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",n));if(!ge(n[ye]))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));if(n=n[ye](),!ge(n.next))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));u=new i(s8(n))}else throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));else e===2?u=new i(arguments[1],arguments[2]):u=new i(arguments[1],arguments[2],arguments[3]);return u.length>0&&(/^complex/.test(t)?l8(u,arguments[0]):n8(u.length,arguments[0],u,1)),u}Zc.exports=f8});var Hc=l(function(gL,Xc){"use strict";var c8=Kc();Xc.exports=c8});var am=l(function(yL,im){"use strict";var Jc=require("@stdlib/assert/is-string").isPrimitive,$c=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Qc=require("@stdlib/assert/is-collection"),wt=require("@stdlib/assert/is-arraybuffer"),rm=require("@stdlib/assert/is-object"),kr=require("@stdlib/assert/is-function"),bt=Sr(),m8=require("@stdlib/blas/ext/base/gfill-by"),p8=tt(),g8=require("@stdlib/assert/has-iterator-symbol-support"),de=require("@stdlib/symbol/iterator"),y8=require("@stdlib/iter/length"),rr=require("@stdlib/string/format"),em=g8(),tm="float64";function d8(r,e,t){var i,u,o;for(i=[],u=-1;o=r.next(),!o.done;)u+=1,i.push(e.call(t,u));return i}function q8(r,e,t){var i;for(i=0;i1)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(u=bt(t),u===null)throw new TypeError(rr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));return new u(0)}if(e<2)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(e-=1,kr(arguments[e]))if(kr(arguments[e-1])){if(r=arguments[e],e-=1,i=arguments[e],e===0)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.")}else i=arguments[e];else if(e>=2){if(r=arguments[e],e-=1,i=arguments[e],!kr(i))throw new TypeError(rr("invalid argument. Callback argument must be a function. Value: `%s`.",i))}else throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(e-=1,e>=0&&Jc(arguments[e])?(t=arguments[e],e-=1):t=tm,u=bt(t),u===null)throw new TypeError(rr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));if(t==="generic"){if(a=arguments[0],e===0){if($c(a)?n=a:Qc(a)&&(n=a.length),n!==void 0)return p8(n,i,r);if(wt(a))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");if(rm(a)){if(em===!1)throw new TypeError(rr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",a));if(!kr(a[de]))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));if(a=a[de](),!kr(a.next))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));return d8(a,i,r)}throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a))}else if(wt(a))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a))}if(e===0)if(a=arguments[0],Qc(a))o=new u(a.length);else if(wt(a))o=new u(a);else if($c(a))o=new u(a);else if(rm(a)){if(em===!1)throw new TypeError(rr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",a));if(!kr(a[de]))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));if(a=a[de](),!kr(a.next))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));o=new u(y8(a))}else throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));else e===1?o=new u(arguments[0],arguments[1]):o=new u(arguments[0],arguments[1],arguments[2]);return o.length>0&&(/^complex/.test(t)?q8(o,i,r):m8(o.length,o,1,s)),o;function s(v,f){return i.call(r,f)}}im.exports=x8});var um=l(function(dL,nm){"use strict";var h8=am();nm.exports=h8});var vm=l(function(qL,sm){"use strict";var om=require("@stdlib/assert/is-function"),w8=require("@stdlib/assert/is-collection"),b8=require("@stdlib/assert/is-iterator-like"),A8=U(),E8=Qr(),S8=$r(),T8=F(),At=require("@stdlib/string/format");function k8(){var r,e,t,i,u,o,n,a,s;if(r=arguments[0],arguments.length>1)if(w8(arguments[1])){if(i=arguments[1],arguments.length>2){if(t=arguments[2],!om(t))throw new TypeError(At("invalid argument. Callback argument must be a function. Value: `%s`.",t));e=arguments[3]}}else{if(t=arguments[1],!om(t))throw new TypeError(At("invalid argument. Callback argument must be a function. Value: `%s`.",t));e=arguments[2]}if(!b8(r))throw new TypeError(At("invalid argument. Iterator argument must be an iterator protocol-compliant object. Value: `%s`.",r));if(a=-1,i===void 0){if(i=[],t){for(;a+=1,s=r.next(),!s.done;)i.push(t.call(e,s.value,a));return i}for(;s=r.next(),!s.done;)i.push(s.value);return i}if(u=i.length,n=T8(i),A8(i)?o=E8(n):o=S8(n),t){for(;a2?t=arguments[2]:t="float64",t==="generic")return _8(e,r);if(i=V8(t),i===null)throw new TypeError(cm("invalid argument. Third argument must be a recognized data type. Value: `%s`.",t));return u=new i(r),I8(r,e,u,1),u}mm.exports=L8});var jr=l(function(wL,gm){"use strict";var O8=pm();gm.exports=O8});var dm=l(function(bL,ym){"use strict";var F8=require("@stdlib/string/format"),R8=F(),B8=jr(),N8=require("@stdlib/complex/float64"),M8=require("@stdlib/complex/float32");function z8(r,e){var t,i;if(t=R8(r),t===null)throw new TypeError(F8("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>2&&(t=arguments[2]),typeof e=="number"?t==="complex128"?i=new N8(e,0):t==="complex64"?i=new M8(e,0):i=e:i=e,B8(r.length,i,t)}ym.exports=z8});var xm=l(function(AL,qm){"use strict";var P8=dm();qm.exports=P8});var wm=l(function(EL,hm){"use strict";var U8=require("@stdlib/math/base/special/ceil"),Et=require("@stdlib/assert/is-number").isPrimitive,St=require("@stdlib/math/base/assert/is-nan"),Tt=require("@stdlib/string/format"),D8=require("@stdlib/constants/uint32/max"),Y8=ot();function G8(r,e,t){var i,u;if(!Et(r)||St(r))throw new TypeError(Tt("invalid argument. Start must be numeric. Value: `%s`.",r));if(!Et(e)||St(e))throw new TypeError(Tt("invalid argument. Stop must be numeric. Value: `%s`.",e));if(arguments.length<3)u=1;else if(u=t,!Et(u)||St(u))throw new TypeError(Tt("invalid argument. Increment must be numeric. Value: `%s`.",u));if(i=U8((e-r)/u),i>D8)throw new RangeError("invalid arguments. Generated array exceeds maximum array length.");return Y8(r,e,u)}hm.exports=G8});var Am=l(function(SL,bm){"use strict";var W8=wm();bm.exports=W8});var Sm=l(function(TL,Em){"use strict";var Z8=er(),K8=tr(),X8=dr(),H8=yr(),J8={float64:Z8,float32:K8,complex128:X8,complex64:H8};Em.exports=J8});var km=l(function(kL,Tm){"use strict";var $8=Sm();function Q8(r){return $8[r]||null}Tm.exports=Q8});var kt=l(function(jL,jm){"use strict";var rA=km();jm.exports=rA});var Vm=l(function(CL,Cm){"use strict";function eA(r,e,t,i){var u,o,n,a;if(t===0)return[];if(t===1)return i?[e]:[r];for(u=[r],i?o=t-1:o=t,n=(e-r)/o,a=1;a3&&(o=xA(i,arguments[3]),o))throw o;if(i.dtype==="generic")return v?dA(a,r,s,e,t,i.endpoint):yA(r,e,t,i.endpoint);if(u=mA(i.dtype),u===null)throw new TypeError(Br('invalid option. `%s` option must be a real or complex floating-point data type or "generic". Option: `%s`.',"dtype",i.dtype));if(n=new u(t),i.dtype==="complex64")return Xm(pA(n,0),a,r,s,e,t,i.endpoint),n;if(i.dtype==="complex128")return Xm(gA(n,0),a,r,s,e,t,i.endpoint),n;if(v)throw new TypeError('invalid arguments. If either of the first two arguments are complex numbers, the output array data type must be a complex number data type or "generic".');return qA(n,r,e,t,i.endpoint)}Hm.exports=wA});var ip=l(function(RL,tp){"use strict";var bA=require("@stdlib/complex/float32"),AA=require("@stdlib/complex/float64"),$m=require("@stdlib/complex/real"),Qm=require("@stdlib/complex/imag"),rp=require("@stdlib/complex/realf"),ep=require("@stdlib/complex/imagf");function EA(r,e,t,i,u,o,n){var a,s,v,f,m,c,p,g,y,d,q,b,w,E;if(o===0)return r;if(s=0,e==="float64"?(v=t,m=0):e==="complex64"?(s+=1,v=rp(t),m=ep(t)):(v=$m(t),m=Qm(t)),i==="float64"?(f=u,c=0):i==="complex64"?(s+=1,f=rp(u),c=ep(u)):(f=$m(u),c=Qm(u)),s===2?a=bA:a=AA,g=r.data,p=r.accessors[1],o===1)return n?p(g,0,new a(f,c)):p(g,0,new a(v,m)),r;for(p(g,0,new a(v,m)),n?w=o-1:w=o,q=(f-v)/w,b=(c-m)/w,E=1;E3&&(u=LA(i,arguments[3]),u))throw u;if(s=kA(t),s===null&&(s="generic"),s==="complex64")return fp(jA(t,0),o,r,n,e,t.length,i.endpoint),t;if(s==="complex128")return fp(CA(t,0),o,r,n,e,t.length,i.endpoint),t;if(a){if(s==="generic")return v=lp(t),VA(v,o,r,n,e,t.length,i.endpoint),t;throw new TypeError('invalid arguments. If either of the first two arguments are complex numbers, the output array must be a complex number array or a "generic" array-like object.')}return v=lp(t),v.accessorProtocol?(_A(v,r,e,t.length,i.endpoint),t):(IA(t,r,e,t.length,i.endpoint),t)}cp.exports=FA});var yp=l(function(ML,gp){"use strict";var RA=require("@stdlib/utils/define-nonenumerable-read-only-property"),pp=Jm(),BA=mp();RA(pp,"assign",BA);gp.exports=pp});var hp=l(function(zL,xp){"use strict";var dp=require("@stdlib/assert/is-number").isPrimitive,NA=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Lt=require("@stdlib/string/format"),qp=require("@stdlib/math/base/assert/is-nan"),MA=vt();function zA(r,e,t){if(!dp(r)||qp(r))throw new TypeError(Lt("invalid argument. Exponent of start value must be numeric. Value: `%s`.",r));if(!dp(e)||qp(e))throw new TypeError(Lt("invalid argument. Exponent of stop value must be numeric. Value: `%s`.",e));if(arguments.length<3)t=10;else if(!NA(t))throw new TypeError(Lt("invalid argument. Length must be a nonnegative integer. Value: `%s`.",t));return MA(r,e,t)}xp.exports=zA});var bp=l(function(PL,wp){"use strict";var PA=hp();wp.exports=PA});var jp=l(function(UL,kp){"use strict";var Ep=require("@stdlib/math/base/assert/is-integer"),UA=require("@stdlib/math/base/assert/is-negative-zero"),DA=require("@stdlib/assert/is-complex-like"),Sp=require("@stdlib/constants/float64/pinf"),Tp=require("@stdlib/constants/float64/ninf"),qe=require("@stdlib/constants/float32/smallest-subnormal"),YA=require("@stdlib/constants/float32/max-safe-integer"),GA=require("@stdlib/constants/float32/min-safe-integer"),WA=require("@stdlib/constants/int8/min"),ZA=require("@stdlib/constants/int16/min"),KA=require("@stdlib/constants/int32/min"),XA=require("@stdlib/constants/uint8/max"),HA=require("@stdlib/constants/uint16/max"),JA=require("@stdlib/constants/uint32/max");function Ap(r){return r!==r||r===Sp||r===Tp?"float32":Ep(r)?r>=GA&&r<=YA?"float32":"float64":r>-qe&&r=WA?"int8":r>=ZA?"int16":r>=KA?"int32":"float64":r<=XA?"uint8":r<=HA?"uint16":r<=JA?"uint32":"float64":r>-qe&&r1){if(e=arguments[1],_p.indexOf(e)===-1)throw new TypeError(iE('invalid argument. Second argument must be one of the following: "%s". Value: `%s`.',_p.join('", "'),e))}else e="float64";return e==="complex128"?t=aE:e==="complex64"?t=nE:t=NaN,tE(r,t,e)}Ip.exports=uE});var Fp=l(function(GL,Op){"use strict";var oE=Lp();Op.exports=oE});var Bp=l(function(WL,Rp){"use strict";var sE=F(),vE=jr(),lE=require("@stdlib/complex/float64"),fE=require("@stdlib/complex/float32"),Ot=require("@stdlib/string/format"),cE=new lE(NaN,NaN),mE=new fE(NaN,NaN),xe=["float64","float32","complex128","complex64","generic"];function pE(r){var e,t;if(e=sE(r),e===null)throw new TypeError(Ot("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));if(arguments.length>1){if(e=arguments[1],xe.indexOf(e)===-1)throw new TypeError(Ot('invalid argument. Second argument must be one of the following: "%s". Value: `%s`.',xe.join('", "'),e))}else if(xe.indexOf(e)===-1)throw new TypeError(Ot('invalid argument. First argument must be one of the following data types: "%s". Value: `%s`.',xe.join('", "'),e));return e==="complex128"?t=cE:e==="complex64"?t=mE:t=NaN,vE(r.length,t,e)}Rp.exports=pE});var Mp=l(function(ZL,Np){"use strict";var gE=Bp();Np.exports=gE});var zp=l(function(KL,yE){yE.exports={float64:-1,float32:"float64",int32:-1,int16:"int32",int8:"int16",uint32:-1,uint16:"uint32",uint8:"uint16",uint8c:"uint16",generic:-1,complex64:"complex128",complex128:-1}});var Up=l(function(XL,Pp){"use strict";var dE=require("@stdlib/utils/keys"),qE=require("@stdlib/assert/has-own-property"),he=zp();function xE(){var r,e,t,i;for(t={},r=dE(he),e=r.length,i=0;i1?e=arguments[1]:e="float64",e==="complex128"?t=SE:e==="complex64"?t=TE:t=1,EE(r,t,e)}Gp.exports=kE});var Kp=l(function($L,Zp){"use strict";var jE=Wp();Zp.exports=jE});var Hp=l(function(QL,Xp){"use strict";var CE=F(),VE=jr(),_E=require("@stdlib/complex/float64"),IE=require("@stdlib/complex/float32"),LE=require("@stdlib/string/format"),OE=new _E(1,0),FE=new IE(1,0);function RE(r){var e,t;if(e=CE(r),e===null)throw new TypeError(LE("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>1&&(e=arguments[1]),e==="complex128"?t=OE:e==="complex64"?t=FE:t=1,VE(r.length,t,e)}Xp.exports=RE});var $p=l(function(rO,Jp){"use strict";var BE=Hp();Jp.exports=BE});var rg=l(function(eO,Qp){"use strict";function NE(){return{highWaterMark:9007199254740992}}Qp.exports=NE});var ig=l(function(tO,tg){"use strict";var ME=require("@stdlib/assert/is-plain-object"),zE=require("@stdlib/assert/has-own-property"),PE=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,eg=require("@stdlib/string/format");function UE(r,e){return ME(e)?zE(e,"highWaterMark")&&(r.highWaterMark=e.highWaterMark,!PE(r.highWaterMark))?new TypeError(eg("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","highWaterMark",r.highWaterMark)):null:new TypeError(eg("invalid argument. Options argument must be an object. Value: `%s`.",e))}tg.exports=UE});var ng=l(function(iO,ag){"use strict";function DE(r){var e,t;for(e=[],t=0;ti.highWaterMark?null:(p=new r4(c),e+=c,p)}function a(c,p,g){var y;return p===0?new c(0):(y=n(i4(p)*s4[g]),y===null?y:new c(y,0,p))}function s(){var c,p,g,y,d,q,b,w,E;if(c=arguments.length,c&&GE(arguments[c-1])?(c-=1,p=arguments[c]):p="float64",g=Bt(p),g===null)throw new TypeError(Ft("invalid argument. Must provide a recognized data type. Value: `%s`.",p));if(c<=0)return new g(0);if(WE(arguments[0]))return a(g,arguments[0],p);if(ZE(arguments[0])){if(y=arguments[0],w=y.length,JE(y)?y=sg(y,0):HE(y)?y=og(y,0):/^complex/.test(p)&&(w/=2),d=a(g,w,p),d===null)return d;if(fg(d)||lg(d))return d.set(y),d;for(b=vg(QE(y)).accessors[0],q=vg(p).accessors[1],E=0;E0){for(p=t4(Rt(c.byteLength)),p=a4(t.length-1,p),g=t[p],y=0;y1&&(e.length=Dg(t,e,1,r,t>2)),e}Yg.exports=H4});var Zg=l(function(wO,Wg){"use strict";var J4=Gg();Wg.exports=J4});var Xg=l(function(bO,Kg){"use strict";var $4=typeof SharedArrayBuffer=="function"?SharedArrayBuffer:null;Kg.exports=$4});var Jg=l(function(AO,Hg){"use strict";function Q4(r){throw new Error("not supported. The current environment does not support SharedArrayBuffers, and, unfortunately, SharedArrayBuffers cannot be polyfilled. For shared memory applications, upgrade your runtime environment to one which supports SharedArrayBuffers.")}Hg.exports=Q4});var Qg=l(function(EO,$g){"use strict";var rS=require("@stdlib/assert/has-sharedarraybuffer-support"),eS=Xg(),tS=Jg(),zt;rS()?zt=eS:zt=tS;$g.exports=zt});var ay=l(function(SO,iy){"use strict";var Nr=require("@stdlib/utils/define-nonenumerable-read-only-property"),ry=require("@stdlib/assert/has-own-property"),ey=require("@stdlib/assert/is-function"),iS=require("@stdlib/assert/is-collection"),aS=require("@stdlib/assert/is-plain-object"),nS=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,uS=U(),ty=require("@stdlib/symbol/iterator"),oS=D(),sS=Y(),vS=F(),Hr=require("@stdlib/string/format");function Pt(r){var e,t,i,u,o,n,a,s,v,f;if(!iS(r))throw new TypeError(Hr("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(u={iter:1e308,dir:1},arguments.length>1)if(aS(arguments[1])){if(t=arguments[1],arguments.length>2){if(a=arguments[2],!ey(a))throw new TypeError(Hr("invalid argument. Callback argument must be a function. Value: `%s`.",a));e=arguments[3]}if(ry(t,"iter")&&(u.iter=t.iter,!nS(t.iter)))throw new TypeError(Hr("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",t.iter));if(ry(t,"dir")&&(u.dir=t.dir,t.dir!==1&&t.dir!==-1))throw new TypeError(Hr("invalid option. `%s` option must be either `1` or `-1`. Option: `%s`.","dir",t.dir))}else{if(a=arguments[1],!ey(a))throw new TypeError(Hr("invalid argument. Second argument must be either a function or an options object. Value: `%s`.",a));e=arguments[2]}return i=0,o={},a?u.dir===1?(f=-1,Nr(o,"next",m)):(f=r.length,Nr(o,"next",c)):u.dir===1?(f=-1,Nr(o,"next",p)):(f=r.length,Nr(o,"next",g)),Nr(o,"return",y),ty&&Nr(o,ty,d),v=vS(r),uS(r)?s=oS(v):s=sS(v),o;function m(){return f=(f+1)%r.length,i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:a.call(e,s(r,f),f,i,r),done:!1}}function c(){return f-=1,f<0&&(f+=r.length),i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:a.call(e,s(r,f),f,i,r),done:!1}}function p(){return f=(f+1)%r.length,i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:s(r,f),done:!1}}function g(){return f-=1,f<0&&(f+=r.length),i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:s(r,f),done:!1}}function y(q){return n=!0,arguments.length?{value:q,done:!0}:{done:!0}}function d(){return a?Pt(r,u,a,e):Pt(r,u)}}iy.exports=Pt});var uy=l(function(TO,ny){"use strict";var lS=ay();ny.exports=lS});var ly=l(function(kO,vy){"use strict";var Te=require("@stdlib/utils/define-nonenumerable-read-only-property"),fS=require("@stdlib/assert/is-function"),cS=require("@stdlib/assert/is-collection"),mS=U(),oy=require("@stdlib/symbol/iterator"),pS=D(),gS=Y(),yS=F(),sy=require("@stdlib/string/format");function Ut(r){var e,t,i,u,o,n,a;if(!cS(r))throw new TypeError(sy("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!fS(u))throw new TypeError(sy("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return a=-1,t={},u?Te(t,"next",s):Te(t,"next",v),Te(t,"return",f),oy&&Te(t,oy,m),n=yS(r),mS(r)?o=pS(n):o=gS(n),t;function s(){return a+=1,i||a>=r.length?{done:!0}:{value:u.call(e,o(r,a),a,r),done:!1}}function v(){return a+=1,i||a>=r.length?{done:!0}:{value:o(r,a),done:!1}}function f(c){return i=!0,arguments.length?{value:c,done:!0}:{done:!0}}function m(){return u?Ut(r,u,e):Ut(r)}}vy.exports=Ut});var cy=l(function(jO,fy){"use strict";var dS=ly();fy.exports=dS});var yy=l(function(CO,gy){"use strict";var ke=require("@stdlib/utils/define-nonenumerable-read-only-property"),qS=require("@stdlib/assert/is-function"),xS=require("@stdlib/assert/is-collection"),hS=U(),my=require("@stdlib/symbol/iterator"),wS=D(),bS=Y(),AS=F(),py=require("@stdlib/string/format");function Dt(r){var e,t,i,u,o,n,a,s;if(!xS(r))throw new TypeError(py("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!qS(u))throw new TypeError(py("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return o=r.length,s=o,t={},u?ke(t,"next",v):ke(t,"next",f),ke(t,"return",m),my&&ke(t,my,c),a=AS(r),hS(r)?n=wS(a):n=bS(a),t;function v(){return s+=r.length-o-1,o=r.length,i||s<0?(i=!0,{done:!0}):{value:u.call(e,n(r,s),s,r),done:!1}}function f(){return s+=r.length-o-1,o=r.length,i||s<0?(i=!0,{done:!0}):{value:n(r,s),done:!1}}function m(p){return i=!0,arguments.length?{value:p,done:!0}:{done:!0}}function c(){return u?Dt(r,u,e):Dt(r)}}gy.exports=Dt});var qy=l(function(VO,dy){"use strict";var ES=yy();dy.exports=ES});var hy=l(function(_O,xy){"use strict";var SS=cr(),TS=lr(),kS=fr(),jS=vr(),CS=sr(),VS=or(),_S=ur(),IS=tr(),LS=er(),OS=yr(),FS=dr(),RS=[[LS,"Float64Array"],[IS,"Float32Array"],[VS,"Int32Array"],[_S,"Uint32Array"],[jS,"Int16Array"],[CS,"Uint16Array"],[SS,"Int8Array"],[TS,"Uint8Array"],[kS,"Uint8ClampedArray"],[OS,"Complex64Array"],[FS,"Complex128Array"]];xy.exports=RS});var by=l(function(IO,wy){"use strict";var BS=require("@stdlib/assert/instance-of"),NS=require("@stdlib/utils/constructor-name"),MS=require("@stdlib/utils/get-prototype-of"),Mr=hy();function zS(r){var e,t;for(t=0;t1){if(u=arguments[1],!XS(u))throw new TypeError(jy("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return a=-1,t={},u?je(t,"next",s):je(t,"next",v),je(t,"return",f),ky&&je(t,ky,m),n=rT(r),JS(r)?o=$S(n):o=QS(n),t;function s(){var c;if(i)return{done:!0};for(c=r.length,a+=1;a=c?(i=!0,{done:!0}):{value:u.call(e,o(r,a),a,r),done:!1}}function v(){var c;if(i)return{done:!0};for(c=r.length,a+=1;a=c?(i=!0,{done:!0}):{value:o(r,a),done:!1}}function f(c){return i=!0,arguments.length?{value:c,done:!0}:{done:!0}}function m(){return u?Yt(r,u,e):Yt(r)}}Cy.exports=Yt});var Iy=l(function(RO,_y){"use strict";var eT=Vy();_y.exports=eT});var Ry=l(function(BO,Fy){"use strict";var Ce=require("@stdlib/utils/define-nonenumerable-read-only-property"),tT=require("@stdlib/assert/is-function"),iT=require("@stdlib/assert/is-collection"),aT=U(),Ly=require("@stdlib/symbol/iterator"),nT=D(),uT=Y(),oT=F(),Oy=require("@stdlib/string/format");function Gt(r){var e,t,i,u,o,n,a,s;if(!iT(r))throw new TypeError(Oy("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!tT(u))throw new TypeError(Oy("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return o=r.length,s=o,t={},u?Ce(t,"next",v):Ce(t,"next",f),Ce(t,"return",m),Ly&&Ce(t,Ly,c),a=oT(r),aT(r)?n=nT(a):n=uT(a),t;function v(){if(i)return{done:!0};for(s+=r.length-o-1,o=r.length;s>=0&&n(r,s)===void 0;)s-=1;return s<0?(i=!0,{done:!0}):{value:u.call(e,n(r,s),s,r),done:!1}}function f(){if(i)return{done:!0};for(s+=r.length-o-1,o=r.length;s>=0&&n(r,s)===void 0;)s-=1;return s<0?(i=!0,{done:!0}):{value:n(r,s),done:!1}}function m(p){return i=!0,arguments.length?{value:p,done:!0}:{done:!0}}function c(){return u?Gt(r,u,e):Gt(r)}}Fy.exports=Gt});var Ny=l(function(NO,By){"use strict";var sT=Ry();By.exports=sT});var Uy=l(function(MO,Py){"use strict";var Ve=require("@stdlib/utils/define-nonenumerable-read-only-property"),vT=require("@stdlib/assert/is-function"),lT=require("@stdlib/assert/is-collection"),My=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,fT=require("@stdlib/assert/is-integer").isPrimitive,cT=U(),zy=require("@stdlib/symbol/iterator"),mT=D(),pT=Y(),gT=F(),Jr=require("@stdlib/string/format");function Wt(r,e,t,i){var u,o,n,a,s,v,f,m;if(!My(r))throw new TypeError(Jr("invalid argument. First argument must be a nonnegative integer. Value: `%s`.",r));if(!lT(e))throw new TypeError(Jr("invalid argument. Second argument must be an array-like object. Value: `%s`.",e));if(!fT(t))throw new TypeError(Jr("invalid argument. Third argument must be an integer. Value: `%s`.",t));if(!My(i))throw new TypeError(Jr("invalid argument. Fourth argument must be a nonnegative integer. Value: `%s`.",i));if(arguments.length>4){if(a=arguments[4],!vT(a))throw new TypeError(Jr("invalid argument. Fifth argument must be a function. Value: `%s`.",a));u=arguments[5]}return s=i,m=-1,o={},a?Ve(o,"next",c):Ve(o,"next",p),Ve(o,"return",g),zy&&Ve(o,zy,y),f=gT(e),cT(e)?v=mT(f):v=pT(f),o;function c(){var d;return m+=1,n||m>=r?{done:!0}:(d=a.call(u,v(e,s),s,m,e),s+=t,{value:d,done:!1})}function p(){var d;return m+=1,n||m>=r?{done:!0}:(d=v(e,s),s+=t,{value:d,done:!1})}function g(d){return n=!0,arguments.length?{value:d,done:!0}:{done:!0}}function y(){return a?Wt(r,e,t,i,a,u):Wt(r,e,t,i)}}Py.exports=Wt});var Yy=l(function(zO,Dy){"use strict";var yT=Uy();Dy.exports=yT});var Ky=l(function(PO,Zy){"use strict";var _e=require("@stdlib/utils/define-nonenumerable-read-only-property"),Ie=require("@stdlib/assert/is-function"),dT=require("@stdlib/assert/is-collection"),Gy=require("@stdlib/assert/is-integer").isPrimitive,qT=U(),Wy=require("@stdlib/symbol/iterator"),xT=D(),hT=Y(),wT=F(),Le=require("@stdlib/string/format");function Zt(r){var e,t,i,u,o,n,a,s,v,f;if(!dT(r))throw new TypeError(Le("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(i=arguments.length,i===1)t=0,a=r.length;else if(i===2)Ie(arguments[1])?(t=0,n=arguments[1]):t=arguments[1],a=r.length;else if(i===3)Ie(arguments[1])?(t=0,a=r.length,n=arguments[1],e=arguments[2]):Ie(arguments[2])?(t=arguments[1],a=r.length,n=arguments[2]):(t=arguments[1],a=arguments[2]);else{if(t=arguments[1],a=arguments[2],n=arguments[3],!Ie(n))throw new TypeError(Le("invalid argument. Fourth argument must be a function. Value: `%s`.",n));e=arguments[4]}if(!Gy(t))throw new TypeError(Le("invalid argument. Second argument must be either an integer (starting index) or a function. Value: `%s`.",t));if(!Gy(a))throw new TypeError(Le("invalid argument. Third argument must be either an integer (ending index) or a function. Value: `%s`.",a));return a<0?(a=r.length+a,a<0&&(a=0)):a>r.length&&(a=r.length),t<0&&(t=r.length+t,t<0&&(t=0)),f=t-1,u={},n?_e(u,"next",m):_e(u,"next",c),_e(u,"return",p),Wy&&_e(u,Wy,g),v=wT(r),qT(r)?s=xT(v):s=hT(v),u;function m(){return f+=1,o||f>=a?{done:!0}:{value:n.call(e,s(r,f),f,f-t,r),done:!1}}function c(){return f+=1,o||f>=a?{done:!0}:{value:s(r,f),done:!1}}function p(y){return o=!0,arguments.length?{value:y,done:!0}:{done:!0}}function g(){return n?Zt(r,t,a,n,e):Zt(r,t,a)}}Zy.exports=Zt});var Hy=l(function(UO,Xy){"use strict";var bT=Ky();Xy.exports=bT});var r0=l(function(DO,Qy){"use strict";var Oe=require("@stdlib/utils/define-nonenumerable-read-only-property"),Fe=require("@stdlib/assert/is-function"),AT=require("@stdlib/assert/is-collection"),Jy=require("@stdlib/assert/is-integer").isPrimitive,ET=U(),$y=require("@stdlib/symbol/iterator"),ST=D(),TT=Y(),kT=F(),Re=require("@stdlib/string/format");function Kt(r){var e,t,i,u,o,n,a,s,v,f;if(!AT(r))throw new TypeError(Re("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(i=arguments.length,i===1)t=0,a=r.length;else if(i===2)Fe(arguments[1])?(t=0,n=arguments[1]):t=arguments[1],a=r.length;else if(i===3)Fe(arguments[1])?(t=0,a=r.length,n=arguments[1],e=arguments[2]):Fe(arguments[2])?(t=arguments[1],a=r.length,n=arguments[2]):(t=arguments[1],a=arguments[2]);else{if(t=arguments[1],a=arguments[2],n=arguments[3],!Fe(n))throw new TypeError(Re("invalid argument. Fourth argument must be a function. Value: `%s`.",n));e=arguments[4]}if(!Jy(t))throw new TypeError(Re("invalid argument. Second argument must be either an integer (starting view index) or a function. Value: `%s`.",t));if(!Jy(a))throw new TypeError(Re("invalid argument. Third argument must be either an integer (ending view index) or a function. Value: `%s`.",a));return a<0?(a=r.length+a,a<0&&(a=0)):a>r.length&&(a=r.length),t<0&&(t=r.length+t,t<0&&(t=0)),f=a,u={},n?Oe(u,"next",m):Oe(u,"next",c),Oe(u,"return",p),$y&&Oe(u,$y,g),v=kT(r),ET(r)?s=ST(v):s=TT(v),u;function m(){return f-=1,o||f1&&(e=arguments[1]),Ej(r.length,e)}R1.exports=Sj});var M1=l(function(zF,N1){"use strict";var Tj=B1();N1.exports=Tj});var S=require("@stdlib/utils/define-read-only-property"),A={};S(A,"base",Bf());S(A,"ArrayBuffer",ft());S(A,"Complex64Array",yr());S(A,"Complex128Array",dr());S(A,"convertArray",yt());S(A,"convertArraySame",ec());S(A,"arrayCtors",Sr());S(A,"DataView",oc());S(A,"datespace",pc());S(A,"arrayDataType",F());S(A,"arrayDataTypes",xc());S(A,"aempty",xt());S(A,"aemptyLike",Uc());S(A,"filledarray",Hc());S(A,"filledarrayBy",um());S(A,"Float32Array",tr());S(A,"Float64Array",er());S(A,"iterator2array",fm());S(A,"afull",jr());S(A,"afullLike",xm());S(A,"incrspace",Am());S(A,"Int8Array",cr());S(A,"Int16Array",vr());S(A,"Int32Array",or());S(A,"linspace",yp());S(A,"logspace",bp());S(A,"arrayMinDataType",Vp());S(A,"anans",Fp());S(A,"anansLike",Mp());S(A,"arrayNextDataType",Yp());S(A,"aones",Kp());S(A,"aonesLike",$p());S(A,"typedarraypool",dg());S(A,"arrayPromotionRules",Ag());S(A,"reviveTypedArray",Cg());S(A,"arraySafeCasts",Fg());S(A,"arraySameKindCasts",Pg());S(A,"arrayShape",Zg());S(A,"SharedArrayBuffer",Qg());S(A,"circarray2iterator",uy());S(A,"array2iterator",cy());S(A,"array2iteratorRight",qy());S(A,"typedarray2json",Ty());S(A,"sparsearray2iterator",Iy());S(A,"sparsearray2iteratorRight",Ny());S(A,"stridedarray2iterator",Yy());S(A,"arrayview2iterator",Hy());S(A,"arrayview2iteratorRight",t0());S(A,"typedarray",u0());S(A,"complexarray",g0());S(A,"complexarrayCtors",Ht());S(A,"complexarrayDataTypes",h0());S(A,"typedarrayCtors",Rr());S(A,"typedarrayDataTypes",S0());S(A,"floatarrayCtors",kt());S(A,"floatarrayDataTypes",V0());S(A,"intarrayCtors",R0());S(A,"intarrayDataTypes",P0());S(A,"realarray",G0());S(A,"realarrayCtors",J0());S(A,"realarrayDataTypes",t1());S(A,"realarrayFloatCtors",s1());S(A,"realarrayFloatDataTypes",m1());S(A,"intarraySignedCtors",x1());S(A,"intarraySignedDataTypes",E1());S(A,"intarrayUnsignedCtors",V1());S(A,"intarrayUnsignedDataTypes",F1());S(A,"Uint8Array",lr());S(A,"Uint8ClampedArray",fr());S(A,"Uint16Array",sr());S(A,"Uint32Array",ur());S(A,"azeros",pe());S(A,"azerosLike",M1());S(A,"constants",require("@stdlib/constants/array"));module.exports=A; +"use strict";var l=function(r,e){return function(){return e||r((e={exports:{}}).exports,e),e.exports}};var ni=l(function(Oj,ai){"use strict";var ii="function";function Y1(r){return typeof r.get===ii&&typeof r.set===ii}ai.exports=Y1});var U=l(function(Fj,ui){"use strict";var G1=ni();ui.exports=G1});var vi=l(function(Rj,si){"use strict";var oi={float64:W1,float32:Z1,int32:K1,int16:X1,int8:H1,uint32:J1,uint16:$1,uint8:Q1,uint8c:rd,generic:ed,default:td};function W1(r,e){return r[e]}function Z1(r,e){return r[e]}function K1(r,e){return r[e]}function X1(r,e){return r[e]}function H1(r,e){return r[e]}function J1(r,e){return r[e]}function $1(r,e){return r[e]}function Q1(r,e){return r[e]}function rd(r,e){return r[e]}function ed(r,e){return r[e]}function td(r,e){return r[e]}function id(r){var e=oi[r];return typeof e=="function"?e:oi.default}si.exports=id});var Y=l(function(Bj,li){"use strict";var ad=vi();li.exports=ad});var mi=l(function(Nj,ci){"use strict";var fi={float64:nd,float32:ud,int32:od,int16:sd,int8:vd,uint32:ld,uint16:fd,uint8:cd,uint8c:md,generic:pd,default:gd};function nd(r,e,t){r[e]=t}function ud(r,e,t){r[e]=t}function od(r,e,t){r[e]=t}function sd(r,e,t){r[e]=t}function vd(r,e,t){r[e]=t}function ld(r,e,t){r[e]=t}function fd(r,e,t){r[e]=t}function cd(r,e,t){r[e]=t}function md(r,e,t){r[e]=t}function pd(r,e,t){r[e]=t}function gd(r,e,t){r[e]=t}function yd(r){var e=fi[r];return typeof e=="function"?e:fi.default}ci.exports=yd});var $r=l(function(Mj,pi){"use strict";var dd=mi();pi.exports=dd});var di=l(function(zj,yi){"use strict";var gi={complex128:qd,complex64:xd,default:hd};function qd(r,e){return r.get(e)}function xd(r,e){return r.get(e)}function hd(r,e){return r.get(e)}function wd(r){var e=gi[r];return typeof e=="function"?e:gi.default}yi.exports=wd});var D=l(function(Pj,qi){"use strict";var bd=di();qi.exports=bd});var wi=l(function(Uj,hi){"use strict";var xi={complex128:Ad,complex64:Ed,default:Sd};function Ad(r,e,t){r.set(t,e)}function Ed(r,e,t){r.set(t,e)}function Sd(r,e,t){r.set(t,e)}function Td(r){var e=xi[r];return typeof e=="function"?e:xi.default}hi.exports=Td});var Qr=l(function(Dj,bi){"use strict";var kd=wi();bi.exports=kd});var Ei=l(function(Yj,Ai){"use strict";var jd={Float32Array:"float32",Float64Array:"float64",Array:"generic",Int16Array:"int16",Int32Array:"int32",Int8Array:"int8",Uint16Array:"uint16",Uint32Array:"uint32",Uint8Array:"uint8",Uint8ClampedArray:"uint8c",Complex64Array:"complex64",Complex128Array:"complex128"};Ai.exports=jd});var Ti=l(function(Gj,Si){"use strict";var Cd=typeof Float64Array=="function"?Float64Array:void 0;Si.exports=Cd});var ji=l(function(Wj,ki){"use strict";function Vd(){throw new Error("not implemented")}ki.exports=Vd});var er=l(function(Zj,Ci){"use strict";var _d=require("@stdlib/assert/has-float64array-support"),Id=Ti(),Ld=ji(),Be;_d()?Be=Id:Be=Ld;Ci.exports=Be});var _i=l(function(Kj,Vi){"use strict";var Od=typeof Float32Array=="function"?Float32Array:void 0;Vi.exports=Od});var Li=l(function(Xj,Ii){"use strict";function Fd(){throw new Error("not implemented")}Ii.exports=Fd});var tr=l(function(Hj,Oi){"use strict";var Rd=require("@stdlib/assert/has-float32array-support"),Bd=_i(),Nd=Li(),Ne;Rd()?Ne=Bd:Ne=Nd;Oi.exports=Ne});var Ri=l(function(Jj,Fi){"use strict";var Md=typeof Uint32Array=="function"?Uint32Array:void 0;Fi.exports=Md});var Ni=l(function($j,Bi){"use strict";function zd(){throw new Error("not implemented")}Bi.exports=zd});var ur=l(function(Qj,Mi){"use strict";var Pd=require("@stdlib/assert/has-uint32array-support"),Ud=Ri(),Dd=Ni(),Me;Pd()?Me=Ud:Me=Dd;Mi.exports=Me});var Pi=l(function(rC,zi){"use strict";var Yd=typeof Int32Array=="function"?Int32Array:void 0;zi.exports=Yd});var Di=l(function(eC,Ui){"use strict";function Gd(){throw new Error("not implemented")}Ui.exports=Gd});var or=l(function(tC,Yi){"use strict";var Wd=require("@stdlib/assert/has-int32array-support"),Zd=Pi(),Kd=Di(),ze;Wd()?ze=Zd:ze=Kd;Yi.exports=ze});var Wi=l(function(iC,Gi){"use strict";var Xd=typeof Uint16Array=="function"?Uint16Array:void 0;Gi.exports=Xd});var Ki=l(function(aC,Zi){"use strict";function Hd(){throw new Error("not implemented")}Zi.exports=Hd});var sr=l(function(nC,Xi){"use strict";var Jd=require("@stdlib/assert/has-uint16array-support"),$d=Wi(),Qd=Ki(),Pe;Jd()?Pe=$d:Pe=Qd;Xi.exports=Pe});var Ji=l(function(uC,Hi){"use strict";var rq=typeof Int16Array=="function"?Int16Array:void 0;Hi.exports=rq});var Qi=l(function(oC,$i){"use strict";function eq(){throw new Error("not implemented")}$i.exports=eq});var vr=l(function(sC,ra){"use strict";var tq=require("@stdlib/assert/has-int16array-support"),iq=Ji(),aq=Qi(),Ue;tq()?Ue=iq:Ue=aq;ra.exports=Ue});var ta=l(function(vC,ea){"use strict";var nq=typeof Uint8Array=="function"?Uint8Array:void 0;ea.exports=nq});var aa=l(function(lC,ia){"use strict";function uq(){throw new Error("not implemented")}ia.exports=uq});var lr=l(function(fC,na){"use strict";var oq=require("@stdlib/assert/has-uint8array-support"),sq=ta(),vq=aa(),De;oq()?De=sq:De=vq;na.exports=De});var oa=l(function(cC,ua){"use strict";var lq=typeof Uint8ClampedArray=="function"?Uint8ClampedArray:void 0;ua.exports=lq});var va=l(function(mC,sa){"use strict";function fq(){throw new Error("not implemented")}sa.exports=fq});var fr=l(function(pC,la){"use strict";var cq=require("@stdlib/assert/has-uint8clampedarray-support"),mq=oa(),pq=va(),Ye;cq()?Ye=mq:Ye=pq;la.exports=Ye});var ca=l(function(gC,fa){"use strict";var gq=typeof Int8Array=="function"?Int8Array:void 0;fa.exports=gq});var pa=l(function(yC,ma){"use strict";function yq(){throw new Error("not implemented")}ma.exports=yq});var cr=l(function(dC,ga){"use strict";var dq=require("@stdlib/assert/has-int8array-support"),qq=ca(),xq=pa(),Ge;dq()?Ge=qq:Ge=xq;ga.exports=Ge});var da=l(function(qC,ya){"use strict";var hq=require("@stdlib/assert/is-array-like-object"),wq=require("@stdlib/assert/is-complex-like"),bq=require("@stdlib/complex/realf"),Aq=require("@stdlib/complex/imagf"),Eq=require("@stdlib/string/format");function Sq(r){var e,t,i;for(e=[];t=r.next(),!t.done;)if(i=t.value,hq(i)&&i.length>=2)e.push(i[0],i[1]);else if(wq(i))e.push(bq(i),Aq(i));else return new TypeError(Eq("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",i));return e}ya.exports=Sq});var xa=l(function(xC,qa){"use strict";var Tq=require("@stdlib/assert/is-array-like-object"),kq=require("@stdlib/assert/is-complex-like"),jq=require("@stdlib/complex/realf"),Cq=require("@stdlib/complex/imagf"),Vq=require("@stdlib/string/format");function _q(r,e,t){var i,u,o,n;for(i=[],n=-1;u=r.next(),!u.done;)if(n+=1,o=e.call(t,u.value,n),Tq(o)&&o.length>=2)i.push(o[0],o[1]);else if(kq(o))i.push(jq(o),Cq(o));else return new TypeError(Vq("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));return i}qa.exports=_q});var wa=l(function(hC,ha){"use strict";var Iq=require("@stdlib/assert/is-complex-like"),Lq=require("@stdlib/complex/realf"),Oq=require("@stdlib/complex/imagf");function Fq(r,e){var t,i,u,o;for(t=e.length,o=0,u=0;ut.byteLength-r)throw new RangeError(R("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*X));t=new $(t,r,i*2)}}return W(this,"_buffer",t),W(this,"_length",t.length/2),this}W(N,"BYTES_PER_ELEMENT",X);W(N,"name","Complex64Array");W(N,"from",function(e){var t,i,u,o,n,a,s,v,f,m,c,p;if(!br(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!ja(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(i=arguments.length,i>1){if(u=arguments[1],!br(u))throw new TypeError(R("invalid argument. Second argument must be a function. Value: `%s`.",u));i>2&&(t=arguments[2])}if(Ir(e)){if(v=e.length,u){for(o=new this(v),n=o._buffer,p=0,c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(R("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Ze(e)){if(u){for(v=e.length,e.get&&e.set?s=Pq("default"):s=zq("default"),c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(R("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Ea(e)&&ka&&br(e[_r])){if(n=e[_r](),!br(n.next))throw new TypeError(R("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",e));if(u?a=Uq(n,u,t):a=Ta(n),a instanceof Error)throw a;for(v=a.length/2,o=new this(v),n=o._buffer,c=0;c=u?{done:!0}:(a+=2,m=new Sa(e[a],e[a+1]),{value:[n,m],done:!1})}function v(m){return o=!0,arguments.length?{value:m,done:!0}:{done:!0}}function f(){return t.entries()}});W(N.prototype,"get",function(e){var t;if(!Ir(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Dr(e))throw new TypeError(R("invalid argument. Must provide a nonnegative integer. Value: `%s`.",e));if(!(e>=this._length))return t=this._buffer,e*=2,new Sa(t[e],t[e+1])});ie(N.prototype,"length",function(){return this._length});W(N.prototype,"set",function(e){var t,i,u,o,n,a,s,v,f;if(!Ir(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(u=this._buffer,arguments.length>1){if(i=arguments[1],!Dr(i))throw new TypeError(R("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(Vr(e)){if(i>=this._length)throw new RangeError(R("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));i*=2,u[i]=ee(e),u[i+1]=te(e);return}if(Ir(e)){if(a=e._length,i+a>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e._buffer,f=u.byteOffset+i*X,t.buffer===u.buffer&&t.byteOffsetf){for(o=new $(t.length),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e,f=u.byteOffset+i*X,t.buffer===u.buffer&&t.byteOffsetf){for(o=new $(a),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(i*=2,v=0;v=2)e.push(i[0],i[1]);else if(Kq(i))e.push(Hq(i),Jq(i));else return new TypeError(Xq("invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",i));return e}Ia.exports=$q});var Fa=l(function(EC,Oa){"use strict";var Qq=require("@stdlib/assert/is-array-like-object"),r2=require("@stdlib/assert/is-complex-like"),e2=require("@stdlib/string/format"),t2=require("@stdlib/complex/real"),i2=require("@stdlib/complex/imag");function a2(r,e,t){var i,u,o,n;for(i=[],n=-1;u=r.next(),!u.done;)if(n+=1,o=e.call(t,u.value,n),Qq(o)&&o.length>=2)i.push(o[0],o[1]);else if(r2(o))i.push(t2(o),i2(o));else return new TypeError(e2("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",o));return i}Oa.exports=a2});var Ba=l(function(SC,Ra){"use strict";var n2=require("@stdlib/assert/is-complex-like"),u2=require("@stdlib/complex/real"),o2=require("@stdlib/complex/imag");function s2(r,e){var t,i,u,o;for(t=e.length,o=0,u=0;ut.byteLength-r)throw new RangeError(B("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*H));t=new Q(t,r,i*2)}}return Z(this,"_buffer",t),Z(this,"_length",t.length/2),this}Z(M,"BYTES_PER_ELEMENT",H);Z(M,"name","Complex128Array");Z(M,"from",function(e){var t,i,u,o,n,a,s,v,f,m,c,p;if(!Ar(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!Ya(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(i=arguments.length,i>1){if(u=arguments[1],!Ar(u))throw new TypeError(B("invalid argument. Second argument must be a function. Value: `%s`.",u));i>2&&(t=arguments[2])}if(Fr(e)){if(v=e.length,u){for(o=new this(v),n=o._buffer,p=0,c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(B("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(Xe(e)){if(u){for(v=e.length,e.get&&e.set?s=p2("default"):s=m2("default"),c=0;c=2)n[p]=m[0],n[p+1]=m[1];else throw new TypeError(B("invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.",m));p+=2}return o}return new this(e)}if(za(e)&&Da&&Ar(e[Or])){if(n=e[Or](),!Ar(n.next))throw new TypeError(B("invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.",e));if(u?a=g2(n,u,t):a=Ua(n),a instanceof Error)throw a;for(v=a.length/2,o=new this(v),n=o._buffer,c=0;c=u?{done:!0}:(a+=2,m=new Pa(e[a],e[a+1]),{value:[n,m],done:!1})}function v(m){return o=!0,arguments.length?{value:m,done:!0}:{done:!0}}function f(){return t.entries()}});Z(M.prototype,"get",function(e){var t;if(!Fr(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(!Yr(e))throw new TypeError(B("invalid argument. Must provide a nonnegative integer. Value: `%s`.",e));if(!(e>=this._length))return t=this._buffer,e*=2,new Pa(t[e],t[e+1])});oe(M.prototype,"length",function(){return this._length});Z(M.prototype,"set",function(e){var t,i,u,o,n,a,s,v,f;if(!Fr(this))throw new TypeError("invalid invocation. `this` is not a complex number array.");if(u=this._buffer,arguments.length>1){if(i=arguments[1],!Yr(i))throw new TypeError(B("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(Lr(e)){if(i>=this._length)throw new RangeError(B("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));i*=2,u[i]=ne(e),u[i+1]=ue(e);return}if(Fr(e)){if(a=e._length,i+a>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e._buffer,f=u.byteOffset+i*H,t.buffer===u.buffer&&t.byteOffsetf){for(o=new Q(t.length),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(t=e,f=u.byteOffset+i*H,t.buffer===u.buffer&&t.byteOffsetf){for(o=new Q(a),v=0;vthis._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");for(i*=2,v=0;v=0;v--)if(f=a-n+v,!(f<0)){if(s=e[f],u=t[v],u!==0&&u=0;v--)a=f%n,f-=a,f/=n,u[v]=a;for(i=[],v=0;v=0;c--)f=p%i[c],p-=f,p/=i[c],s[c]=f;for(n=[],c=0;c4&&(u=arguments[4]),m=r[0],c=r[1],s=0;s2){if(arguments.length===3?cc(t)?u=t:(o=t,n=!1):(u=i,o=t),o===0)return[];if(!p3(o)||o<0)throw new TypeError(Tr("invalid argument. Length must be a positive integer. Value: `%s`.",o));if(n){if(!cc(u))throw new TypeError(Tr("invalid argument. Options argument must be an object. Value: `%s`.",u));if(m3(u,"round")){if(!g3(u.round))throw new TypeError(Tr("invalid option. `%s` option must be a string. Option: `%s`.","round",u.round));if(mc.indexOf(u.round)===-1)throw new Error(Tr('invalid option. `%s` option must be one of the following: "%s". Option: `%s`.',"round",mc.join('", "'),u.round))}}}switch(u.round){case"round":v=d3;break;case"ceil":v=q3;break;case"floor":default:v=y3;break}for(s=o-1,m=(e.getTime()-r.getTime())/s,a=new Array(o),f=r,a[0]=f,f=f.getTime(),c=1;c1?i=arguments[1]:i="float64",i==="generic")return W3(r);if(e=Z3(i),e===null)throw new TypeError(Ic("invalid argument. Second argument must be a supported data type. Value: `%s`.",i));return u=G3(i),a=e*r,i==="complex128"&&(a+=8),o=Y3(a),t=o.byteOffset,i==="complex128"&&(_c(t/e)||(t+=8)),n=new u(o.buffer,t,r),n}Lc.exports=K3});var Bc=l(function(yL,Rc){"use strict";var X3=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,H3=Sr(),J3=qr(),Fc=require("@stdlib/string/format");function $3(r){var e,t;if(!X3(r))throw new TypeError(Fc("invalid argument. First argument must be a nonnegative integer. Value: `%s`.",r));if(arguments.length>1?e=arguments[1]:e="float64",e==="generic")return J3(r);if(t=H3(e),t===null)throw new TypeError(Fc("invalid argument. Second argument must be a recognized data type. Value: `%s`.",e));return new t(r)}Rc.exports=$3});var pe=l(function(dL,Nc){"use strict";var Q3=Bc();Nc.exports=Q3});var Pc=l(function(qL,zc){"use strict";var Mc=pe();function r8(r){return arguments.length>1?Mc(r,arguments[1]):Mc(r)}zc.exports=r8});var xt=l(function(xL,Uc){"use strict";var e8=Sc(),t8=Oc(),i8=Pc(),qt;e8()?qt=t8:qt=i8;Uc.exports=qt});var Yc=l(function(hL,Dc){"use strict";var a8=F(),n8=xt(),u8=require("@stdlib/string/format");function o8(r){var e=a8(r);if(e===null)throw new TypeError(u8("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>1&&(e=arguments[1]),n8(r.length,e)}Dc.exports=o8});var Wc=l(function(wL,Gc){"use strict";var s8=Yc();Gc.exports=s8});var $c=l(function(bL,Jc){"use strict";var v8=require("@stdlib/assert/is-string").isPrimitive,Zc=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Kc=require("@stdlib/assert/is-collection"),ht=require("@stdlib/assert/is-arraybuffer"),Xc=require("@stdlib/assert/is-object"),ge=require("@stdlib/assert/is-function"),l8=Sr(),f8=require("@stdlib/blas/ext/base/gfill"),c8=ir(),m8=require("@stdlib/assert/has-iterator-symbol-support"),ye=require("@stdlib/symbol/iterator"),p8=require("@stdlib/iter/length"),mr=require("@stdlib/string/format"),Hc=m8();function g8(r,e){var t,i;for(t=[];i=r.next(),!i.done;)t.push(e);return t}function y8(r,e){var t;for(t=0;t=0&&v8(arguments[e])?(t=arguments[e],e-=1):t="float64",i=l8(t),i===null)throw new TypeError(mr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));if(t==="generic"){if(e<=0)return[];if(r=arguments[0],n=arguments[1],e===1){if(Zc(n)?o=n:Kc(n)&&(o=n.length),o!==void 0)return c8(r,o);if(ht(n))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");if(Xc(n)){if(Hc===!1)throw new TypeError(mr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",n));if(!ge(n[ye]))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));if(n=n[ye](),!ge(n.next))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));return g8(n,r)}throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n))}else if(ht(n))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n))}if(e<=0)return new i(0);if(e===1)if(n=arguments[1],Kc(n))u=new i(n.length);else if(ht(n))u=new i(n);else if(Zc(n))u=new i(n);else if(Xc(n)){if(Hc===!1)throw new TypeError(mr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",n));if(!ge(n[ye]))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));if(n=n[ye](),!ge(n.next))throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));u=new i(p8(n))}else throw new TypeError(mr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",n));else e===2?u=new i(arguments[1],arguments[2]):u=new i(arguments[1],arguments[2],arguments[3]);return u.length>0&&(/^complex/.test(t)?y8(u,arguments[0]):f8(u.length,arguments[0],u,1)),u}Jc.exports=d8});var rm=l(function(AL,Qc){"use strict";var q8=$c();Qc.exports=q8});var sm=l(function(EL,om){"use strict";var em=require("@stdlib/assert/is-string").isPrimitive,tm=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,im=require("@stdlib/assert/is-collection"),wt=require("@stdlib/assert/is-arraybuffer"),am=require("@stdlib/assert/is-object"),kr=require("@stdlib/assert/is-function"),bt=Sr(),x8=require("@stdlib/blas/ext/base/gfill-by"),h8=tt(),w8=require("@stdlib/assert/has-iterator-symbol-support"),de=require("@stdlib/symbol/iterator"),b8=require("@stdlib/iter/length"),rr=require("@stdlib/string/format"),nm=w8(),um="float64";function A8(r,e,t){var i,u,o;for(i=[],u=-1;o=r.next(),!o.done;)u+=1,i.push(e.call(t,u));return i}function E8(r,e,t){var i;for(i=0;i1)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(u=bt(t),u===null)throw new TypeError(rr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));return new u(0)}if(e<2)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(e-=1,kr(arguments[e]))if(kr(arguments[e-1])){if(r=arguments[e],e-=1,i=arguments[e],e===0)throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.")}else i=arguments[e];else if(e>=2){if(r=arguments[e],e-=1,i=arguments[e],!kr(i))throw new TypeError(rr("invalid argument. Callback argument must be a function. Value: `%s`.",i))}else throw new TypeError("invalid arguments. Must provide a length, typed array, array-like object, or an iterable.");if(e-=1,e>=0&&em(arguments[e])?(t=arguments[e],e-=1):t=um,u=bt(t),u===null)throw new TypeError(rr("invalid argument. Must provide a recognized data type. Value: `%s`.",t));if(t==="generic"){if(a=arguments[0],e===0){if(tm(a)?n=a:im(a)&&(n=a.length),n!==void 0)return h8(n,i,r);if(wt(a))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");if(am(a)){if(nm===!1)throw new TypeError(rr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",a));if(!kr(a[de]))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));if(a=a[de](),!kr(a.next))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));return A8(a,i,r)}throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a))}else if(wt(a))throw new Error("invalid arguments. Creating a generic array from an ArrayBuffer is not supported.");throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a))}if(e===0)if(a=arguments[0],im(a))o=new u(a.length);else if(wt(a))o=new u(a);else if(tm(a))o=new u(a);else if(am(a)){if(nm===!1)throw new TypeError(rr("invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.",a));if(!kr(a[de]))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));if(a=a[de](),!kr(a.next))throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));o=new u(b8(a))}else throw new TypeError(rr("invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.",a));else e===1?o=new u(arguments[0],arguments[1]):o=new u(arguments[0],arguments[1],arguments[2]);return o.length>0&&(/^complex/.test(t)?E8(o,i,r):x8(o.length,o,1,s)),o;function s(v,f){return i.call(r,f)}}om.exports=S8});var lm=l(function(SL,vm){"use strict";var T8=sm();vm.exports=T8});var mm=l(function(TL,cm){"use strict";var fm=require("@stdlib/assert/is-function"),k8=require("@stdlib/assert/is-collection"),j8=require("@stdlib/assert/is-iterator-like"),C8=U(),V8=Qr(),_8=$r(),I8=F(),At=require("@stdlib/string/format");function L8(){var r,e,t,i,u,o,n,a,s;if(r=arguments[0],arguments.length>1)if(k8(arguments[1])){if(i=arguments[1],arguments.length>2){if(t=arguments[2],!fm(t))throw new TypeError(At("invalid argument. Callback argument must be a function. Value: `%s`.",t));e=arguments[3]}}else{if(t=arguments[1],!fm(t))throw new TypeError(At("invalid argument. Callback argument must be a function. Value: `%s`.",t));e=arguments[2]}if(!j8(r))throw new TypeError(At("invalid argument. Iterator argument must be an iterator protocol-compliant object. Value: `%s`.",r));if(a=-1,i===void 0){if(i=[],t){for(;a+=1,s=r.next(),!s.done;)i.push(t.call(e,s.value,a));return i}for(;s=r.next(),!s.done;)i.push(s.value);return i}if(u=i.length,n=I8(i),C8(i)?o=V8(n):o=_8(n),t){for(;a2?t=arguments[2]:t="float64",t==="generic")return B8(e,r);if(i=R8(t),i===null)throw new TypeError(ym("invalid argument. Third argument must be a recognized data type. Value: `%s`.",t));return u=new i(r),N8(r,e,u,1),u}dm.exports=M8});var jr=l(function(CL,xm){"use strict";var z8=qm();xm.exports=z8});var wm=l(function(VL,hm){"use strict";var P8=require("@stdlib/string/format"),U8=F(),D8=jr(),Y8=require("@stdlib/complex/float64"),G8=require("@stdlib/complex/float32");function W8(r,e){var t,i;if(t=U8(r),t===null)throw new TypeError(P8("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>2&&(t=arguments[2]),typeof e=="number"?t==="complex128"?i=new Y8(e,0):t==="complex64"?i=new G8(e,0):i=e:i=e,D8(r.length,i,t)}hm.exports=W8});var Am=l(function(_L,bm){"use strict";var Z8=wm();bm.exports=Z8});var Sm=l(function(IL,Em){"use strict";var K8=require("@stdlib/math/base/special/ceil"),Et=require("@stdlib/assert/is-number").isPrimitive,St=require("@stdlib/math/base/assert/is-nan"),Tt=require("@stdlib/string/format"),X8=require("@stdlib/constants/uint32/max"),H8=ot();function J8(r,e,t){var i,u;if(!Et(r)||St(r))throw new TypeError(Tt("invalid argument. Start must be numeric. Value: `%s`.",r));if(!Et(e)||St(e))throw new TypeError(Tt("invalid argument. Stop must be numeric. Value: `%s`.",e));if(arguments.length<3)u=1;else if(u=t,!Et(u)||St(u))throw new TypeError(Tt("invalid argument. Increment must be numeric. Value: `%s`.",u));if(i=K8((e-r)/u),i>X8)throw new RangeError("invalid arguments. Generated array exceeds maximum array length.");return H8(r,e,u)}Em.exports=J8});var km=l(function(LL,Tm){"use strict";var $8=Sm();Tm.exports=$8});var Cm=l(function(OL,jm){"use strict";var Q8=er(),rA=tr(),eA=dr(),tA=yr(),iA={float64:Q8,float32:rA,complex128:eA,complex64:tA};jm.exports=iA});var _m=l(function(FL,Vm){"use strict";var aA=Cm();function nA(r){return aA[r]||null}Vm.exports=nA});var kt=l(function(RL,Im){"use strict";var uA=_m();Im.exports=uA});var Om=l(function(BL,Lm){"use strict";function oA(r,e,t,i){var u,o,n,a;if(t===0)return[];if(t===1)return i?[e]:[r];for(u=[r],i?o=t-1:o=t,n=(e-r)/o,a=1;a3&&(o=SA(i,arguments[3]),o))throw o;if(i.dtype==="generic")return v?AA(a,r,s,e,t,i.endpoint):bA(r,e,t,i.endpoint);if(u=xA(i.dtype),u===null)throw new TypeError(Br('invalid option. `%s` option must be a real or complex floating-point data type or "generic". Option: `%s`.',"dtype",i.dtype));if(n=new u(t),i.dtype==="complex64")return Qm(hA(n,0),a,r,s,e,t,i.endpoint),n;if(i.dtype==="complex128")return Qm(wA(n,0),a,r,s,e,t,i.endpoint),n;if(v)throw new TypeError('invalid arguments. If either of the first two arguments are complex numbers, the output array data type must be a complex number data type or "generic".');return EA(n,r,e,t,i.endpoint)}rp.exports=kA});var op=l(function(YL,up){"use strict";var jA=require("@stdlib/complex/float32"),CA=require("@stdlib/complex/float64"),tp=require("@stdlib/complex/real"),ip=require("@stdlib/complex/imag"),ap=require("@stdlib/complex/realf"),np=require("@stdlib/complex/imagf");function VA(r,e,t,i,u,o,n){var a,s,v,f,m,c,p,g,y,d,q,b,w,E;if(o===0)return r;if(s=0,e==="float64"?(v=t,m=0):e==="complex64"?(s+=1,v=ap(t),m=np(t)):(v=tp(t),m=ip(t)),i==="float64"?(f=u,c=0):i==="complex64"?(s+=1,f=ap(u),c=np(u)):(f=tp(u),c=ip(u)),s===2?a=jA:a=CA,g=r.data,p=r.accessors[1],o===1)return n?p(g,0,new a(f,c)):p(g,0,new a(v,m)),r;for(p(g,0,new a(v,m)),n?w=o-1:w=o,q=(f-v)/w,b=(c-m)/w,E=1;E3&&(u=MA(i,arguments[3]),u))throw u;if(s=LA(t),s===null&&(s="generic"),s==="complex64")return gp(OA(t,0),o,r,n,e,t.length,i.endpoint),t;if(s==="complex128")return gp(FA(t,0),o,r,n,e,t.length,i.endpoint),t;if(a){if(s==="generic")return v=pp(t),RA(v,o,r,n,e,t.length,i.endpoint),t;throw new TypeError('invalid arguments. If either of the first two arguments are complex numbers, the output array must be a complex number array or a "generic" array-like object.')}return v=pp(t),v.accessorProtocol?(BA(v,r,e,t.length,i.endpoint),t):(NA(t,r,e,t.length,i.endpoint),t)}yp.exports=PA});var hp=l(function(ZL,xp){"use strict";var UA=require("@stdlib/utils/define-nonenumerable-read-only-property"),qp=ep(),DA=dp();UA(qp,"assign",DA);xp.exports=qp});var Ep=l(function(KL,Ap){"use strict";var wp=require("@stdlib/assert/is-number").isPrimitive,YA=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Lt=require("@stdlib/string/format"),bp=require("@stdlib/math/base/assert/is-nan"),GA=vt();function WA(r,e,t){if(!wp(r)||bp(r))throw new TypeError(Lt("invalid argument. Exponent of start value must be numeric. Value: `%s`.",r));if(!wp(e)||bp(e))throw new TypeError(Lt("invalid argument. Exponent of stop value must be numeric. Value: `%s`.",e));if(arguments.length<3)t=10;else if(!YA(t))throw new TypeError(Lt("invalid argument. Length must be a nonnegative integer. Value: `%s`.",t));return GA(r,e,t)}Ap.exports=WA});var Tp=l(function(XL,Sp){"use strict";var ZA=Ep();Sp.exports=ZA});var Ip=l(function(HL,_p){"use strict";var jp=require("@stdlib/math/base/assert/is-integer"),KA=require("@stdlib/math/base/assert/is-negative-zero"),XA=require("@stdlib/assert/is-complex-like"),Cp=require("@stdlib/constants/float64/pinf"),Vp=require("@stdlib/constants/float64/ninf"),qe=require("@stdlib/constants/float32/smallest-subnormal"),HA=require("@stdlib/constants/float32/max-safe-integer"),JA=require("@stdlib/constants/float32/min-safe-integer"),$A=require("@stdlib/constants/int8/min"),QA=require("@stdlib/constants/int16/min"),rE=require("@stdlib/constants/int32/min"),eE=require("@stdlib/constants/uint8/max"),tE=require("@stdlib/constants/uint16/max"),iE=require("@stdlib/constants/uint32/max");function kp(r){return r!==r||r===Cp||r===Vp?"float32":jp(r)?r>=JA&&r<=HA?"float32":"float64":r>-qe&&r=$A?"int8":r>=QA?"int16":r>=rE?"int32":"float64":r<=eE?"uint8":r<=tE?"uint16":r<=iE?"uint32":"float64":r>-qe&&r1){if(e=arguments[1],Fp.indexOf(e)===-1)throw new TypeError(vE('invalid argument. Second argument must be one of the following: "%s". Value: `%s`.',Fp.join('", "'),e))}else e="float64";return e==="complex128"?t=lE:e==="complex64"?t=fE:t=NaN,sE(r,t,e)}Rp.exports=cE});var Mp=l(function(QL,Np){"use strict";var mE=Bp();Np.exports=mE});var Pp=l(function(rO,zp){"use strict";var pE=F(),gE=jr(),yE=require("@stdlib/complex/float64"),dE=require("@stdlib/complex/float32"),Ot=require("@stdlib/string/format"),qE=new yE(NaN,NaN),xE=new dE(NaN,NaN),xe=["float64","float32","complex128","complex64","generic"];function hE(r){var e,t;if(e=pE(r),e===null)throw new TypeError(Ot("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));if(arguments.length>1){if(e=arguments[1],xe.indexOf(e)===-1)throw new TypeError(Ot('invalid argument. Second argument must be one of the following: "%s". Value: `%s`.',xe.join('", "'),e))}else if(xe.indexOf(e)===-1)throw new TypeError(Ot('invalid argument. First argument must be one of the following data types: "%s". Value: `%s`.',xe.join('", "'),e));return e==="complex128"?t=qE:e==="complex64"?t=xE:t=NaN,gE(r.length,t,e)}zp.exports=hE});var Dp=l(function(eO,Up){"use strict";var wE=Pp();Up.exports=wE});var Yp=l(function(tO,bE){bE.exports={float64:-1,float32:"float64",int32:-1,int16:"int32",int8:"int16",uint32:-1,uint16:"uint32",uint8:"uint16",uint8c:"uint16",generic:-1,complex64:"complex128",complex128:-1}});var Wp=l(function(iO,Gp){"use strict";var AE=require("@stdlib/utils/keys"),EE=require("@stdlib/assert/has-own-property"),he=Yp();function SE(){var r,e,t,i;for(t={},r=AE(he),e=r.length,i=0;i1?e=arguments[1]:e="float64",e==="complex128"?t=_E:e==="complex64"?t=IE:t=1,VE(r,t,e)}Xp.exports=LE});var $p=l(function(uO,Jp){"use strict";var OE=Hp();Jp.exports=OE});var rg=l(function(oO,Qp){"use strict";var FE=F(),RE=jr(),BE=require("@stdlib/complex/float64"),NE=require("@stdlib/complex/float32"),ME=require("@stdlib/string/format"),zE=new BE(1,0),PE=new NE(1,0);function UE(r){var e,t;if(e=FE(r),e===null)throw new TypeError(ME("invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.",r));return arguments.length>1&&(e=arguments[1]),e==="complex128"?t=zE:e==="complex64"?t=PE:t=1,RE(r.length,t,e)}Qp.exports=UE});var tg=l(function(sO,eg){"use strict";var DE=rg();eg.exports=DE});var ag=l(function(vO,ig){"use strict";function YE(){return{highWaterMark:9007199254740992}}ig.exports=YE});var og=l(function(lO,ug){"use strict";var GE=require("@stdlib/assert/is-plain-object"),WE=require("@stdlib/assert/has-own-property"),ZE=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,ng=require("@stdlib/string/format");function KE(r,e){return GE(e)?WE(e,"highWaterMark")&&(r.highWaterMark=e.highWaterMark,!ZE(r.highWaterMark))?new TypeError(ng("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","highWaterMark",r.highWaterMark)):null:new TypeError(ng("invalid argument. Options argument must be an object. Value: `%s`.",e))}ug.exports=KE});var vg=l(function(fO,sg){"use strict";function XE(r){var e,t;for(e=[],t=0;ti.highWaterMark?null:(p=new u4(c),e+=c,p)}function a(c,p,g){var y;return p===0?new c(0):(y=n(v4(p)*p4[g]),y===null?y:new c(y,0,p))}function s(){var c,p,g,y,d,q,b,w,E;if(c=arguments.length,c&&JE(arguments[c-1])?(c-=1,p=arguments[c]):p="float64",g=Bt(p),g===null)throw new TypeError(Ft("invalid argument. Must provide a recognized data type. Value: `%s`.",p));if(c<=0)return new g(0);if($E(arguments[0]))return a(g,arguments[0],p);if(QE(arguments[0])){if(y=arguments[0],w=y.length,i4(y)?y=cg(y,0):t4(y)?y=fg(y,0):/^complex/.test(p)&&(w/=2),d=a(g,w,p),d===null)return d;if(gg(d)||pg(d))return d.set(y),d;for(b=mg(n4(y)).accessors[0],q=mg(p).accessors[1],E=0;E0){for(p=s4(Rt(c.byteLength)),p=l4(t.length-1,p),g=t[p],y=0;y1&&(e.length=Zg(t,e,1,r,t>2)),e}Kg.exports=tS});var Jg=l(function(CO,Hg){"use strict";var iS=Xg();Hg.exports=iS});var Qg=l(function(VO,$g){"use strict";var aS=typeof SharedArrayBuffer=="function"?SharedArrayBuffer:null;$g.exports=aS});var e0=l(function(_O,r0){"use strict";function nS(r){throw new Error("not supported. The current environment does not support SharedArrayBuffers, and, unfortunately, SharedArrayBuffers cannot be polyfilled. For shared memory applications, upgrade your runtime environment to one which supports SharedArrayBuffers.")}r0.exports=nS});var i0=l(function(IO,t0){"use strict";var uS=require("@stdlib/assert/has-sharedarraybuffer-support"),oS=Qg(),sS=e0(),zt;uS()?zt=oS:zt=sS;t0.exports=zt});var s0=l(function(LO,o0){"use strict";var Nr=require("@stdlib/utils/define-nonenumerable-read-only-property"),a0=require("@stdlib/assert/has-own-property"),n0=require("@stdlib/assert/is-function"),vS=require("@stdlib/assert/is-collection"),lS=require("@stdlib/assert/is-plain-object"),fS=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,cS=U(),u0=require("@stdlib/symbol/iterator"),mS=D(),pS=Y(),gS=F(),Hr=require("@stdlib/string/format");function Pt(r){var e,t,i,u,o,n,a,s,v,f;if(!vS(r))throw new TypeError(Hr("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(u={iter:1e308,dir:1},arguments.length>1)if(lS(arguments[1])){if(t=arguments[1],arguments.length>2){if(a=arguments[2],!n0(a))throw new TypeError(Hr("invalid argument. Callback argument must be a function. Value: `%s`.",a));e=arguments[3]}if(a0(t,"iter")&&(u.iter=t.iter,!fS(t.iter)))throw new TypeError(Hr("invalid option. `%s` option must be a nonnegative integer. Option: `%s`.","iter",t.iter));if(a0(t,"dir")&&(u.dir=t.dir,t.dir!==1&&t.dir!==-1))throw new TypeError(Hr("invalid option. `%s` option must be either `1` or `-1`. Option: `%s`.","dir",t.dir))}else{if(a=arguments[1],!n0(a))throw new TypeError(Hr("invalid argument. Second argument must be either a function or an options object. Value: `%s`.",a));e=arguments[2]}return i=0,o={},a?u.dir===1?(f=-1,Nr(o,"next",m)):(f=r.length,Nr(o,"next",c)):u.dir===1?(f=-1,Nr(o,"next",p)):(f=r.length,Nr(o,"next",g)),Nr(o,"return",y),u0&&Nr(o,u0,d),v=gS(r),cS(r)?s=mS(v):s=pS(v),o;function m(){return f=(f+1)%r.length,i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:a.call(e,s(r,f),f,i,r),done:!1}}function c(){return f-=1,f<0&&(f+=r.length),i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:a.call(e,s(r,f),f,i,r),done:!1}}function p(){return f=(f+1)%r.length,i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:s(r,f),done:!1}}function g(){return f-=1,f<0&&(f+=r.length),i+=1,n||i>u.iter||r.length===0?{done:!0}:{value:s(r,f),done:!1}}function y(q){return n=!0,arguments.length?{value:q,done:!0}:{done:!0}}function d(){return a?Pt(r,u,a,e):Pt(r,u)}}o0.exports=Pt});var l0=l(function(OO,v0){"use strict";var yS=s0();v0.exports=yS});var p0=l(function(FO,m0){"use strict";var Te=require("@stdlib/utils/define-nonenumerable-read-only-property"),dS=require("@stdlib/assert/is-function"),qS=require("@stdlib/assert/is-collection"),xS=U(),f0=require("@stdlib/symbol/iterator"),hS=D(),wS=Y(),bS=F(),c0=require("@stdlib/string/format");function Ut(r){var e,t,i,u,o,n,a;if(!qS(r))throw new TypeError(c0("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!dS(u))throw new TypeError(c0("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return a=-1,t={},u?Te(t,"next",s):Te(t,"next",v),Te(t,"return",f),f0&&Te(t,f0,m),n=bS(r),xS(r)?o=hS(n):o=wS(n),t;function s(){return a+=1,i||a>=r.length?{done:!0}:{value:u.call(e,o(r,a),a,r),done:!1}}function v(){return a+=1,i||a>=r.length?{done:!0}:{value:o(r,a),done:!1}}function f(c){return i=!0,arguments.length?{value:c,done:!0}:{done:!0}}function m(){return u?Ut(r,u,e):Ut(r)}}m0.exports=Ut});var y0=l(function(RO,g0){"use strict";var AS=p0();g0.exports=AS});var h0=l(function(BO,x0){"use strict";var ke=require("@stdlib/utils/define-nonenumerable-read-only-property"),ES=require("@stdlib/assert/is-function"),SS=require("@stdlib/assert/is-collection"),TS=U(),d0=require("@stdlib/symbol/iterator"),kS=D(),jS=Y(),CS=F(),q0=require("@stdlib/string/format");function Dt(r){var e,t,i,u,o,n,a,s;if(!SS(r))throw new TypeError(q0("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!ES(u))throw new TypeError(q0("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return o=r.length,s=o,t={},u?ke(t,"next",v):ke(t,"next",f),ke(t,"return",m),d0&&ke(t,d0,c),a=CS(r),TS(r)?n=kS(a):n=jS(a),t;function v(){return s+=r.length-o-1,o=r.length,i||s<0?(i=!0,{done:!0}):{value:u.call(e,n(r,s),s,r),done:!1}}function f(){return s+=r.length-o-1,o=r.length,i||s<0?(i=!0,{done:!0}):{value:n(r,s),done:!1}}function m(p){return i=!0,arguments.length?{value:p,done:!0}:{done:!0}}function c(){return u?Dt(r,u,e):Dt(r)}}x0.exports=Dt});var b0=l(function(NO,w0){"use strict";var VS=h0();w0.exports=VS});var E0=l(function(MO,A0){"use strict";var _S=cr(),IS=lr(),LS=fr(),OS=vr(),FS=sr(),RS=or(),BS=ur(),NS=tr(),MS=er(),zS=yr(),PS=dr(),US=[[MS,"Float64Array"],[NS,"Float32Array"],[RS,"Int32Array"],[BS,"Uint32Array"],[OS,"Int16Array"],[FS,"Uint16Array"],[_S,"Int8Array"],[IS,"Uint8Array"],[LS,"Uint8ClampedArray"],[zS,"Complex64Array"],[PS,"Complex128Array"]];A0.exports=US});var T0=l(function(zO,S0){"use strict";var DS=require("@stdlib/assert/instance-of"),YS=require("@stdlib/utils/constructor-name"),GS=require("@stdlib/utils/get-prototype-of"),Mr=E0();function WS(r){var e,t;for(t=0;t1){if(u=arguments[1],!eT(u))throw new TypeError(I0("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return a=-1,t={},u?je(t,"next",s):je(t,"next",v),je(t,"return",f),_0&&je(t,_0,m),n=uT(r),iT(r)?o=aT(n):o=nT(n),t;function s(){var c;if(i)return{done:!0};for(c=r.length,a+=1;a=c?(i=!0,{done:!0}):{value:u.call(e,o(r,a),a,r),done:!1}}function v(){var c;if(i)return{done:!0};for(c=r.length,a+=1;a=c?(i=!0,{done:!0}):{value:o(r,a),done:!1}}function f(c){return i=!0,arguments.length?{value:c,done:!0}:{done:!0}}function m(){return u?Yt(r,u,e):Yt(r)}}L0.exports=Yt});var R0=l(function(YO,F0){"use strict";var oT=O0();F0.exports=oT});var z0=l(function(GO,M0){"use strict";var Ce=require("@stdlib/utils/define-nonenumerable-read-only-property"),sT=require("@stdlib/assert/is-function"),vT=require("@stdlib/assert/is-collection"),lT=U(),B0=require("@stdlib/symbol/iterator"),fT=D(),cT=Y(),mT=F(),N0=require("@stdlib/string/format");function Gt(r){var e,t,i,u,o,n,a,s;if(!vT(r))throw new TypeError(N0("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(arguments.length>1){if(u=arguments[1],!sT(u))throw new TypeError(N0("invalid argument. Second argument must be a function. Value: `%s`.",u));e=arguments[2]}return o=r.length,s=o,t={},u?Ce(t,"next",v):Ce(t,"next",f),Ce(t,"return",m),B0&&Ce(t,B0,c),a=mT(r),lT(r)?n=fT(a):n=cT(a),t;function v(){if(i)return{done:!0};for(s+=r.length-o-1,o=r.length;s>=0&&n(r,s)===void 0;)s-=1;return s<0?(i=!0,{done:!0}):{value:u.call(e,n(r,s),s,r),done:!1}}function f(){if(i)return{done:!0};for(s+=r.length-o-1,o=r.length;s>=0&&n(r,s)===void 0;)s-=1;return s<0?(i=!0,{done:!0}):{value:n(r,s),done:!1}}function m(p){return i=!0,arguments.length?{value:p,done:!0}:{done:!0}}function c(){return u?Gt(r,u,e):Gt(r)}}M0.exports=Gt});var U0=l(function(WO,P0){"use strict";var pT=z0();P0.exports=pT});var W0=l(function(ZO,G0){"use strict";var Ve=require("@stdlib/utils/define-nonenumerable-read-only-property"),gT=require("@stdlib/assert/is-function"),yT=require("@stdlib/assert/is-collection"),D0=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,dT=require("@stdlib/assert/is-integer").isPrimitive,qT=U(),Y0=require("@stdlib/symbol/iterator"),xT=D(),hT=Y(),wT=F(),Jr=require("@stdlib/string/format");function Wt(r,e,t,i){var u,o,n,a,s,v,f,m;if(!D0(r))throw new TypeError(Jr("invalid argument. First argument must be a nonnegative integer. Value: `%s`.",r));if(!yT(e))throw new TypeError(Jr("invalid argument. Second argument must be an array-like object. Value: `%s`.",e));if(!dT(t))throw new TypeError(Jr("invalid argument. Third argument must be an integer. Value: `%s`.",t));if(!D0(i))throw new TypeError(Jr("invalid argument. Fourth argument must be a nonnegative integer. Value: `%s`.",i));if(arguments.length>4){if(a=arguments[4],!gT(a))throw new TypeError(Jr("invalid argument. Fifth argument must be a function. Value: `%s`.",a));u=arguments[5]}return s=i,m=-1,o={},a?Ve(o,"next",c):Ve(o,"next",p),Ve(o,"return",g),Y0&&Ve(o,Y0,y),f=wT(e),qT(e)?v=xT(f):v=hT(f),o;function c(){var d;return m+=1,n||m>=r?{done:!0}:(d=a.call(u,v(e,s),s,m,e),s+=t,{value:d,done:!1})}function p(){var d;return m+=1,n||m>=r?{done:!0}:(d=v(e,s),s+=t,{value:d,done:!1})}function g(d){return n=!0,arguments.length?{value:d,done:!0}:{done:!0}}function y(){return a?Wt(r,e,t,i,a,u):Wt(r,e,t,i)}}G0.exports=Wt});var K0=l(function(KO,Z0){"use strict";var bT=W0();Z0.exports=bT});var $0=l(function(XO,J0){"use strict";var _e=require("@stdlib/utils/define-nonenumerable-read-only-property"),Ie=require("@stdlib/assert/is-function"),AT=require("@stdlib/assert/is-collection"),X0=require("@stdlib/assert/is-integer").isPrimitive,ET=U(),H0=require("@stdlib/symbol/iterator"),ST=D(),TT=Y(),kT=F(),Le=require("@stdlib/string/format");function Zt(r){var e,t,i,u,o,n,a,s,v,f;if(!AT(r))throw new TypeError(Le("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(i=arguments.length,i===1)t=0,a=r.length;else if(i===2)Ie(arguments[1])?(t=0,n=arguments[1]):t=arguments[1],a=r.length;else if(i===3)Ie(arguments[1])?(t=0,a=r.length,n=arguments[1],e=arguments[2]):Ie(arguments[2])?(t=arguments[1],a=r.length,n=arguments[2]):(t=arguments[1],a=arguments[2]);else{if(t=arguments[1],a=arguments[2],n=arguments[3],!Ie(n))throw new TypeError(Le("invalid argument. Fourth argument must be a function. Value: `%s`.",n));e=arguments[4]}if(!X0(t))throw new TypeError(Le("invalid argument. Second argument must be either an integer (starting index) or a function. Value: `%s`.",t));if(!X0(a))throw new TypeError(Le("invalid argument. Third argument must be either an integer (ending index) or a function. Value: `%s`.",a));return a<0?(a=r.length+a,a<0&&(a=0)):a>r.length&&(a=r.length),t<0&&(t=r.length+t,t<0&&(t=0)),f=t-1,u={},n?_e(u,"next",m):_e(u,"next",c),_e(u,"return",p),H0&&_e(u,H0,g),v=kT(r),ET(r)?s=ST(v):s=TT(v),u;function m(){return f+=1,o||f>=a?{done:!0}:{value:n.call(e,s(r,f),f,f-t,r),done:!1}}function c(){return f+=1,o||f>=a?{done:!0}:{value:s(r,f),done:!1}}function p(y){return o=!0,arguments.length?{value:y,done:!0}:{done:!0}}function g(){return n?Zt(r,t,a,n,e):Zt(r,t,a)}}J0.exports=Zt});var ry=l(function(HO,Q0){"use strict";var jT=$0();Q0.exports=jT});var ay=l(function(JO,iy){"use strict";var Oe=require("@stdlib/utils/define-nonenumerable-read-only-property"),Fe=require("@stdlib/assert/is-function"),CT=require("@stdlib/assert/is-collection"),ey=require("@stdlib/assert/is-integer").isPrimitive,VT=U(),ty=require("@stdlib/symbol/iterator"),_T=D(),IT=Y(),LT=F(),Re=require("@stdlib/string/format");function Kt(r){var e,t,i,u,o,n,a,s,v,f;if(!CT(r))throw new TypeError(Re("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(i=arguments.length,i===1)t=0,a=r.length;else if(i===2)Fe(arguments[1])?(t=0,n=arguments[1]):t=arguments[1],a=r.length;else if(i===3)Fe(arguments[1])?(t=0,a=r.length,n=arguments[1],e=arguments[2]):Fe(arguments[2])?(t=arguments[1],a=r.length,n=arguments[2]):(t=arguments[1],a=arguments[2]);else{if(t=arguments[1],a=arguments[2],n=arguments[3],!Fe(n))throw new TypeError(Re("invalid argument. Fourth argument must be a function. Value: `%s`.",n));e=arguments[4]}if(!ey(t))throw new TypeError(Re("invalid argument. Second argument must be either an integer (starting view index) or a function. Value: `%s`.",t));if(!ey(a))throw new TypeError(Re("invalid argument. Third argument must be either an integer (ending view index) or a function. Value: `%s`.",a));return a<0?(a=r.length+a,a<0&&(a=0)):a>r.length&&(a=r.length),t<0&&(t=r.length+t,t<0&&(t=0)),f=a,u={},n?Oe(u,"next",m):Oe(u,"next",c),Oe(u,"return",p),ty&&Oe(u,ty,g),v=LT(r),VT(r)?s=_T(v):s=IT(v),u;function m(){return f-=1,o||f1&&(e=arguments[1]),Vj(r.length,e)}z1.exports=_j});var D1=l(function(KF,U1){"use strict";var Ij=P1();U1.exports=Ij});var S=require("@stdlib/utils/define-read-only-property"),A={};S(A,"base",Pf());S(A,"ArrayBuffer",ft());S(A,"Complex64Array",yr());S(A,"Complex128Array",dr());S(A,"convertArray",yt());S(A,"convertArraySame",nc());S(A,"arrayCtors",Sr());S(A,"DataView",fc());S(A,"datespace",qc());S(A,"arrayDataType",F());S(A,"arrayDataTypes",Ac());S(A,"aempty",xt());S(A,"aemptyLike",Wc());S(A,"filledarray",rm());S(A,"filledarrayBy",lm());S(A,"Float32Array",tr());S(A,"Float64Array",er());S(A,"iterator2array",gm());S(A,"afull",jr());S(A,"afullLike",Am());S(A,"incrspace",km());S(A,"Int8Array",cr());S(A,"Int16Array",vr());S(A,"Int32Array",or());S(A,"linspace",hp());S(A,"logspace",Tp());S(A,"arrayMinDataType",Op());S(A,"anans",Mp());S(A,"anansLike",Dp());S(A,"arrayNextDataType",Kp());S(A,"aones",$p());S(A,"aonesLike",tg());S(A,"typedarraypool",wg());S(A,"arrayPromotionRules",kg());S(A,"reviveTypedArray",Lg());S(A,"arraySafeCasts",Mg());S(A,"arraySameKindCasts",Gg());S(A,"arrayShape",Jg());S(A,"SharedArrayBuffer",i0());S(A,"circarray2iterator",l0());S(A,"array2iterator",y0());S(A,"array2iteratorRight",b0());S(A,"typedarray2json",V0());S(A,"sparsearray2iterator",R0());S(A,"sparsearray2iteratorRight",U0());S(A,"stridedarray2iterator",K0());S(A,"arrayview2iterator",ry());S(A,"arrayview2iteratorRight",uy());S(A,"typedarray",ly());S(A,"complexarray",xy());S(A,"complexarrayCtors",Ht());S(A,"complexarrayDataTypes",Ey());S(A,"typedarrayCtors",Rr());S(A,"typedarrayDataTypes",Cy());S(A,"floatarrayCtors",kt());S(A,"floatarrayDataTypes",Oy());S(A,"intarrayCtors",zy());S(A,"intarrayDataTypes",Gy());S(A,"realarray",Xy());S(A,"realarrayCtors",e1());S(A,"realarrayDataTypes",u1());S(A,"realarrayFloatCtors",c1());S(A,"realarrayFloatDataTypes",d1());S(A,"intarraySignedCtors",A1());S(A,"intarraySignedDataTypes",j1());S(A,"intarrayUnsignedCtors",O1());S(A,"intarrayUnsignedDataTypes",M1());S(A,"Uint8Array",lr());S(A,"Uint8ClampedArray",fr());S(A,"Uint16Array",sr());S(A,"Uint32Array",ur());S(A,"azeros",pe());S(A,"azerosLike",D1());S(A,"constants",require("@stdlib/constants/array"));module.exports=A; /** * @license Apache-2.0 * diff --git a/dist/index.js.map b/dist/index.js.map index 368821a5..bea4a8ff 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../base/assert/is-accessor-array/lib/main.js", "../base/assert/is-accessor-array/lib/index.js", "../base/getter/lib/main.js", "../base/getter/lib/index.js", "../base/setter/lib/main.js", "../base/setter/lib/index.js", "../base/accessor-getter/lib/main.js", "../base/accessor-getter/lib/index.js", "../base/accessor-setter/lib/main.js", "../base/accessor-setter/lib/index.js", "../dtype/lib/ctor2dtype.js", "../float64/lib/main.js", "../float64/lib/polyfill.js", "../float64/lib/index.js", "../float32/lib/main.js", "../float32/lib/polyfill.js", "../float32/lib/index.js", "../uint32/lib/main.js", "../uint32/lib/polyfill.js", "../uint32/lib/index.js", "../int32/lib/main.js", "../int32/lib/polyfill.js", "../int32/lib/index.js", "../uint16/lib/main.js", "../uint16/lib/polyfill.js", "../uint16/lib/index.js", "../int16/lib/main.js", "../int16/lib/polyfill.js", "../int16/lib/index.js", "../uint8/lib/main.js", "../uint8/lib/polyfill.js", "../uint8/lib/index.js", "../uint8c/lib/main.js", "../uint8c/lib/polyfill.js", "../uint8c/lib/index.js", "../int8/lib/main.js", "../int8/lib/polyfill.js", "../int8/lib/index.js", "../complex64/lib/from_iterator.js", "../complex64/lib/from_iterator_map.js", "../complex64/lib/from_array.js", "../complex64/lib/main.js", "../complex64/lib/index.js", "../complex128/lib/from_iterator.js", "../complex128/lib/from_iterator_map.js", "../complex128/lib/from_array.js", "../complex128/lib/main.js", "../complex128/lib/index.js", "../dtype/lib/ctors.js", "../dtype/lib/dtypes.js", "../dtype/lib/main.js", "../dtype/lib/index.js", "../base/accessors/lib/main.js", "../base/accessors/lib/index.js", "../base/accessor/lib/main.js", "../base/accessor/lib/index.js", "../base/arraylike2object/lib/main.js", "../base/arraylike2object/lib/index.js", "../base/assert/contains/lib/main.js", "../base/assert/contains/lib/factory.js", "../base/assert/contains/lib/index.js", "../base/assert/lib/index.js", "../base/binary2d/lib/main.js", "../base/binary2d/lib/index.js", "../base/binary3d/lib/main.js", "../base/binary3d/lib/index.js", "../base/binary4d/lib/main.js", "../base/binary4d/lib/index.js", "../base/binary5d/lib/main.js", "../base/binary5d/lib/index.js", "../base/binarynd/lib/main.js", "../base/binarynd/lib/index.js", "../base/copy-indexed/lib/main.js", "../base/copy-indexed/lib/index.js", "../base/filled/lib/main.js", "../base/filled/lib/index.js", "../base/zeros/lib/main.js", "../base/zeros/lib/index.js", "../base/broadcast-array/lib/main.js", "../base/broadcast-array/lib/index.js", "../base/broadcasted-binary2d/lib/main.js", "../base/broadcasted-binary2d/lib/index.js", "../base/broadcasted-binary3d/lib/main.js", "../base/broadcasted-binary3d/lib/index.js", "../base/broadcasted-binary4d/lib/main.js", "../base/broadcasted-binary4d/lib/index.js", "../base/broadcasted-binary5d/lib/main.js", "../base/broadcasted-binary5d/lib/index.js", "../base/broadcasted-ternary2d/lib/main.js", "../base/broadcasted-ternary2d/lib/index.js", "../base/broadcasted-unary2d/lib/main.js", "../base/broadcasted-unary2d/lib/index.js", "../base/broadcasted-unary3d/lib/main.js", "../base/broadcasted-unary3d/lib/index.js", "../base/broadcasted-unary4d/lib/main.js", "../base/broadcasted-unary4d/lib/index.js", "../base/broadcasted-unary5d/lib/main.js", "../base/broadcasted-unary5d/lib/index.js", "../base/cartesian-power/lib/main.js", "../base/cartesian-power/lib/index.js", "../base/cartesian-product/lib/main.js", "../base/cartesian-product/lib/index.js", "../base/cartesian-square/lib/main.js", "../base/cartesian-square/lib/index.js", "../base/copy/lib/main.js", "../base/copy/lib/index.js", "../base/filled-by/lib/main.js", "../base/filled-by/lib/index.js", "../base/filled2d/lib/main.js", "../base/filled2d/lib/index.js", "../base/filled2d-by/lib/main.js", "../base/filled2d-by/lib/index.js", "../base/filled3d/lib/main.js", "../base/filled3d/lib/index.js", "../base/filled3d-by/lib/main.js", "../base/filled3d-by/lib/index.js", "../base/filled4d/lib/main.js", "../base/filled4d/lib/index.js", "../base/filled4d-by/lib/main.js", "../base/filled4d-by/lib/index.js", "../base/filled5d/lib/main.js", "../base/filled5d/lib/index.js", "../base/filled5d-by/lib/main.js", "../base/filled5d-by/lib/index.js", "../base/fillednd/lib/main.js", "../base/fillednd/lib/index.js", "../base/fillednd-by/lib/main.js", "../base/fillednd-by/lib/index.js", "../base/flatten/lib/assign.js", "../base/flatten/lib/main.js", "../base/flatten/lib/index.js", "../base/flatten-by/lib/assign.js", "../base/flatten-by/lib/main.js", "../base/flatten-by/lib/index.js", "../base/flatten2d/lib/main.js", "../base/flatten2d/lib/assign.js", "../base/flatten2d/lib/index.js", "../base/flatten2d-by/lib/main.js", "../base/flatten2d-by/lib/assign.js", "../base/flatten2d-by/lib/index.js", "../base/flatten3d/lib/main.js", "../base/flatten3d/lib/assign.js", "../base/flatten3d/lib/index.js", "../base/flatten3d-by/lib/main.js", "../base/flatten3d-by/lib/assign.js", "../base/flatten3d-by/lib/index.js", "../base/flatten4d/lib/main.js", "../base/flatten4d/lib/assign.js", "../base/flatten4d/lib/index.js", "../base/flatten4d-by/lib/main.js", "../base/flatten4d-by/lib/assign.js", "../base/flatten4d-by/lib/index.js", "../base/flatten5d/lib/main.js", "../base/flatten5d/lib/assign.js", "../base/flatten5d/lib/index.js", "../base/flatten5d-by/lib/main.js", "../base/flatten5d-by/lib/assign.js", "../base/flatten5d-by/lib/index.js", "../base/incrspace/lib/main.js", "../base/incrspace/lib/index.js", "../base/last/lib/main.js", "../base/last/lib/index.js", "../base/linspace/lib/main.js", "../base/linspace/lib/index.js", "../base/logspace/lib/main.js", "../base/logspace/lib/index.js", "../base/mskbinary2d/lib/main.js", "../base/mskbinary2d/lib/index.js", "../base/mskunary2d/lib/main.js", "../base/mskunary2d/lib/index.js", "../base/mskunary3d/lib/main.js", "../base/mskunary3d/lib/index.js", "../base/n-cartesian-product/lib/main.js", "../base/n-cartesian-product/lib/index.js", "../base/one-to/lib/main.js", "../base/one-to/lib/index.js", "../base/ones/lib/main.js", "../base/ones/lib/index.js", "../base/ones2d/lib/main.js", "../base/ones2d/lib/index.js", "../base/ones3d/lib/main.js", "../base/ones3d/lib/index.js", "../base/ones4d/lib/main.js", "../base/ones4d/lib/index.js", "../base/ones5d/lib/main.js", "../base/ones5d/lib/index.js", "../base/onesnd/lib/main.js", "../base/onesnd/lib/index.js", "../base/take/lib/main.js", "../base/take/lib/index.js", "../base/ternary2d/lib/main.js", "../base/ternary2d/lib/index.js", "../base/ternary3d/lib/main.js", "../base/ternary3d/lib/index.js", "../base/ternary4d/lib/main.js", "../base/ternary4d/lib/index.js", "../base/ternary5d/lib/main.js", "../base/ternary5d/lib/index.js", "../base/to-accessor-array/lib/main.js", "../base/to-accessor-array/lib/index.js", "../base/unary2d/lib/main.js", "../base/unary2d/lib/index.js", "../base/unary2d-by/lib/main.js", "../base/unary2d-by/lib/index.js", "../base/unary3d/lib/main.js", "../base/unary3d/lib/index.js", "../base/unary4d/lib/main.js", "../base/unary4d/lib/index.js", "../base/unary5d/lib/main.js", "../base/unary5d/lib/index.js", "../base/unarynd/lib/main.js", "../base/unarynd/lib/index.js", "../base/unitspace/lib/main.js", "../base/unitspace/lib/index.js", "../base/zero-to/lib/main.js", "../base/zero-to/lib/index.js", "../base/zeros2d/lib/main.js", "../base/zeros2d/lib/index.js", "../base/zeros3d/lib/main.js", "../base/zeros3d/lib/index.js", "../base/zeros4d/lib/main.js", "../base/zeros4d/lib/index.js", "../base/zeros5d/lib/main.js", "../base/zeros5d/lib/index.js", "../base/zerosnd/lib/main.js", "../base/zerosnd/lib/index.js", "../base/lib/index.js", "../buffer/lib/main.js", "../buffer/lib/polyfill.js", "../buffer/lib/index.js", "../ctors/lib/ctors.js", "../ctors/lib/main.js", "../ctors/lib/index.js", "../convert/lib/main.js", "../convert/lib/index.js", "../convert-same/lib/main.js", "../convert-same/lib/index.js", "../dataview/lib/main.js", "../dataview/lib/polyfill.js", "../dataview/lib/index.js", "../datespace/lib/main.js", "../datespace/lib/index.js", "../dtypes/lib/dtypes.json", "../dtypes/lib/main.js", "../dtypes/lib/index.js", "../empty/lib/is_buffer_uint8array.js", "../typed-ctors/lib/ctors.js", "../typed-ctors/lib/main.js", "../typed-ctors/lib/index.js", "../empty/lib/main.js", "../zeros/lib/main.js", "../zeros/lib/index.js", "../empty/lib/polyfill.js", "../empty/lib/index.js", "../empty-like/lib/main.js", "../empty-like/lib/index.js", "../filled/lib/main.js", "../filled/lib/index.js", "../filled-by/lib/main.js", "../filled-by/lib/index.js", "../from-iterator/lib/main.js", "../from-iterator/lib/index.js", "../full/lib/main.js", "../full/lib/index.js", "../full-like/lib/main.js", "../full-like/lib/index.js", "../incrspace/lib/main.js", "../incrspace/lib/index.js", "../typed-float-ctors/lib/ctors.js", "../typed-float-ctors/lib/main.js", "../typed-float-ctors/lib/index.js", "../linspace/lib/generic_real.js", "../linspace/lib/generic_complex.js", "../linspace/lib/typed_real.js", "../linspace/lib/typed_complex.js", "../linspace/lib/validate.js", "../linspace/lib/defaults.json", "../linspace/lib/main.js", "../linspace/lib/accessors_complex.js", "../linspace/lib/accessors_real.js", "../linspace/lib/assign.js", "../linspace/lib/index.js", "../logspace/lib/main.js", "../logspace/lib/index.js", "../min-dtype/lib/main.js", "../min-dtype/lib/index.js", "../nans/lib/main.js", "../nans/lib/index.js", "../nans-like/lib/main.js", "../nans-like/lib/index.js", "../next-dtype/lib/next_dtypes.json", "../next-dtype/lib/main.js", "../next-dtype/lib/index.js", "../ones/lib/main.js", "../ones/lib/index.js", "../ones-like/lib/main.js", "../ones-like/lib/index.js", "../pool/lib/defaults.js", "../pool/lib/validate.js", "../pool/lib/pool.js", "../pool/lib/bytes_per_element.json", "../pool/lib/factory.js", "../pool/lib/main.js", "../pool/lib/index.js", "../promotion-rules/lib/promotion_rules.json", "../promotion-rules/lib/main.js", "../promotion-rules/lib/index.js", "../reviver/lib/ctors.js", "../reviver/lib/main.js", "../reviver/lib/index.js", "../safe-casts/lib/safe_casts.json", "../safe-casts/lib/main.js", "../safe-casts/lib/index.js", "../same-kind-casts/lib/same_kind_casts.json", "../same-kind-casts/lib/main.js", "../same-kind-casts/lib/index.js", "../shape/lib/main.js", "../shape/lib/index.js", "../shared-buffer/lib/main.js", "../shared-buffer/lib/polyfill.js", "../shared-buffer/lib/index.js", "../to-circular-iterator/lib/main.js", "../to-circular-iterator/lib/index.js", "../to-iterator/lib/main.js", "../to-iterator/lib/index.js", "../to-iterator-right/lib/main.js", "../to-iterator-right/lib/index.js", "../to-json/lib/ctors.js", "../to-json/lib/type.js", "../to-json/lib/main.js", "../to-json/lib/index.js", "../to-sparse-iterator/lib/main.js", "../to-sparse-iterator/lib/index.js", "../to-sparse-iterator-right/lib/main.js", "../to-sparse-iterator-right/lib/index.js", "../to-strided-iterator/lib/main.js", "../to-strided-iterator/lib/index.js", "../to-view-iterator/lib/main.js", "../to-view-iterator/lib/index.js", "../to-view-iterator-right/lib/main.js", "../to-view-iterator-right/lib/index.js", "../typed/lib/main.js", "../typed/lib/index.js", "../typed-complex-ctors/lib/ctors.js", "../typed-complex-ctors/lib/main.js", "../typed-complex-ctors/lib/index.js", "../typed-complex/lib/main.js", "../typed-complex/lib/index.js", "../typed-complex-dtypes/lib/dtypes.json", "../typed-complex-dtypes/lib/main.js", "../typed-complex-dtypes/lib/index.js", "../typed-dtypes/lib/dtypes.json", "../typed-dtypes/lib/main.js", "../typed-dtypes/lib/index.js", "../typed-float-dtypes/lib/dtypes.json", "../typed-float-dtypes/lib/main.js", "../typed-float-dtypes/lib/index.js", "../typed-integer-ctors/lib/ctors.js", "../typed-integer-ctors/lib/main.js", "../typed-integer-ctors/lib/index.js", "../typed-integer-dtypes/lib/dtypes.json", "../typed-integer-dtypes/lib/main.js", "../typed-integer-dtypes/lib/index.js", "../typed-real/lib/main.js", "../typed-real/lib/index.js", "../typed-real-ctors/lib/ctors.js", "../typed-real-ctors/lib/main.js", "../typed-real-ctors/lib/index.js", "../typed-real-dtypes/lib/dtypes.json", "../typed-real-dtypes/lib/main.js", "../typed-real-dtypes/lib/index.js", "../typed-real-float-ctors/lib/ctors.js", "../typed-real-float-ctors/lib/main.js", "../typed-real-float-ctors/lib/index.js", "../typed-real-float-dtypes/lib/dtypes.json", "../typed-real-float-dtypes/lib/main.js", "../typed-real-float-dtypes/lib/index.js", "../typed-signed-integer-ctors/lib/ctors.js", "../typed-signed-integer-ctors/lib/main.js", "../typed-signed-integer-ctors/lib/index.js", "../typed-signed-integer-dtypes/lib/dtypes.json", "../typed-signed-integer-dtypes/lib/main.js", "../typed-signed-integer-dtypes/lib/index.js", "../typed-unsigned-integer-ctors/lib/ctors.js", "../typed-unsigned-integer-ctors/lib/main.js", "../typed-unsigned-integer-ctors/lib/index.js", "../typed-unsigned-integer-dtypes/lib/dtypes.json", "../typed-unsigned-integer-dtypes/lib/main.js", "../typed-unsigned-integer-dtypes/lib/index.js", "../zeros-like/lib/main.js", "../zeros-like/lib/index.js", "../lib/index.js"], - "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nmodule.exports = isAccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array-like object supports the accessor (get/set) protocol.\n*\n* @module @stdlib/array/base/assert/is-accessor-array\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128array' );\n* var isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isAccessorArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array/int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array/int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array/int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array/uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array/uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array/uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array/base/getter\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n* var get = require( '@stdlib/array/base/getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int32Array = require( '@stdlib/array/int32' );\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int16Array = require( '@stdlib/array/int16' );\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int8Array = require( '@stdlib/array/int8' );\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint32Array = require( '@stdlib/array/uint32' );\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint16Array = require( '@stdlib/array/uint16' );\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array/uint8c' );\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for setting an element in an indexed array-like object.\n*\n* @module @stdlib/array/base/setter\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n* var set = require( '@stdlib/array/base/setter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 3.0\n*\n* var im = imag( v );\n* // returns 4.0\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @module @stdlib/array/base/accessor-getter\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n* var get = require( '@stdlib/array/base/accessor-getter' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 11.0\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @module @stdlib/array/base/accessor-setter\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n* var setter = require( '@stdlib/array/base/accessor-setter' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128'\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctor2dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float64\n*\n* @example\n* var ctor = require( '@stdlib/array/float64' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasFloat64ArraySupport = require( '@stdlib/assert/has-float64array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float32\n*\n* @example\n* var ctor = require( '@stdlib/array/float32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasFloat32ArraySupport = require( '@stdlib/assert/has-float32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint32\n*\n* @example\n* var ctor = require( '@stdlib/array/uint32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint32ArraySupport = require( '@stdlib/assert/has-uint32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int32\n*\n* @example\n* var ctor = require( '@stdlib/array/int32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt32ArraySupport = require( '@stdlib/assert/has-int32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint16\n*\n* @example\n* var ctor = require( '@stdlib/array/uint16' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint16ArraySupport = require( '@stdlib/assert/has-uint16array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int16\n*\n* @example\n* var ctor = require( '@stdlib/array/int16' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt16ArraySupport = require( '@stdlib/assert/has-int16array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint8\n*\n* @example\n* var ctor = require( '@stdlib/array/uint8' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint8ArraySupport = require( '@stdlib/assert/has-uint8array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array/uint8c\n*\n* @example\n* var ctor = require( '@stdlib/array/uint8c' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint8ClampedArraySupport = require( '@stdlib/assert/has-uint8clampedarray-support' ); // eslint-disable-line id-length\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int8\n*\n* @example\n* var ctor = require( '@stdlib/array/int8' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt8ArraySupport = require( '@stdlib/assert/has-int8array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIteratorMap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromArray;\n", "/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isEven = require( '@stdlib/math/base/assert/is-even' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar Float32Array = require( './../../float32' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar getter = require( './../../base/getter' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar fromIterator = require( './from_iterator.js' );\nvar fromIteratorMap = require( './from_iterator_map.js' );\nvar fromArray = require( './from_array.js' );\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*/\nfunction isComplex64Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*/\nfunction isComplex128Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT*2\n\t);\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex64( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tvar buf;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\tbuf = this._buffer;\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n\n// EXPORTS //\n\nmodule.exports = Complex64Array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* 64-bit complex number array.\n*\n* @module @stdlib/array/complex64\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar format = require( '@stdlib/string/format' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar format = require( '@stdlib/string/format' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIteratorMap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromArray;\n", "/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isEven = require( '@stdlib/math/base/assert/is-even' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar Float64Array = require( './../../float64' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar getter = require( './../../base/getter' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar format = require( '@stdlib/string/format' );\nvar fromIterator = require( './from_iterator.js' );\nvar fromIteratorMap = require( './from_iterator_map.js' );\nvar fromArray = require( './from_array.js' );\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*/\nfunction isComplex64Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT/2\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*/\nfunction isComplex128Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tvar buf;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\tbuf = this._buffer;\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n\n// EXPORTS //\n\nmodule.exports = Complex128Array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* 128-bit complex number array.\n*\n* @module @stdlib/array/complex128\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Uint32Array = require( './../../uint32' );\nvar Int32Array = require( './../../int32' );\nvar Uint16Array = require( './../../uint16' );\nvar Int16Array = require( './../../int16' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Int8Array = require( './../../int8' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array\n];\n\n\n// EXPORTS //\n\nmodule.exports = CTORS;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128'\n];\n\n\n// EXPORTS //\n\nmodule.exports = DTYPES;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isBuffer = require( '@stdlib/assert/is-buffer' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar constructorName = require( '@stdlib/utils/constructor-name' );\nvar ctor2dtype = require( './ctor2dtype.js' );\nvar CTORS = require( './ctors.js' );\nvar DTYPES = require( './dtypes.js' );\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the data type of an array.\n*\n* @module @stdlib/array/dtype\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Float64Array( 10 );\n*\n* var dt = dtype( arr );\n* // returns 'float64'\n*\n* dt = dtype( {} );\n* // returns null\n*\n* dt = dtype( 'beep' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar getter = require( './../../../base/getter' );\nvar setter = require( './../../../base/setter' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar accessorSetter = require( './../../../base/accessor-setter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Returns element accessors for a provided array-like object.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **accessorProtocol**: `boolean` indicating whether the provided array-like object supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing accessor data\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var obj = accessors( x );\n* // returns {...}\n*\n* var bool = obj.accessorProtocol;\n* // returns false\n*\n* var fcns = obj.accessors;\n* // returns [ , ]\n*\n* var v = fcns[ 0 ]( x, 2 );\n* // returns 3\n*/\nfunction accessors( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = accessors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return element accessors for a provided array-like object.\n*\n* @module @stdlib/array/base/accessors\n*\n* @example\n* var accessors = require( '@stdlib/array/base/accessors' );\n*\n* var x = [ 1, 2, 3, 4 ];\n* var obj = accessors( x );\n* // returns {...}\n*\n* var bool = obj.accessorProtocol;\n* // returns false\n*\n* var fcns = obj.accessors;\n* // returns [ , ]\n*\n* var v = fcns[ 0 ]( x, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar setReadWriteAccessor = require( '@stdlib/utils/define-nonenumerable-read-write-accessor' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar accessors = require( './../../../base/accessors' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Sets the length of an array-like object.\n*\n* @private\n* @param {NonNegativeInteger} len - length\n*/\nfunction setLength( len ) {\n\tthis._buffer.length = len;\n}\n\n/**\n* Returns the length of an array-like object.\n*\n* @private\n* @returns {NonNegativeInteger} length\n*/\nfunction getLength() {\n\treturn this._buffer.length;\n}\n\n\n// MAIN //\n\n/**\n* Creates a minimal array-like object supporting the accessor protocol from another array-like object.\n*\n* @constructor\n* @param {Collection} arr - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {AccessorArray} accessor array instance\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\nfunction AccessorArray( arr ) {\n\tvar o;\n\tif ( !(this instanceof AccessorArray) ) {\n\t\treturn new AccessorArray( arr );\n\t}\n\tif ( !isCollection( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', arr ) );\n\t}\n\to = accessors( arr );\n\tthis._buffer = arr;\n\tthis._getter = o.accessors[ 0 ];\n\tthis._setter = o.accessors[ 1 ];\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof AccessorArray\n* @readonly\n* @type {string}\n* @default 'AccessorArray'\n*\n* @example\n* var name = AccessorArray.name;\n* // returns 'AccessorArray'\n*/\nsetReadOnly( AccessorArray, 'name', 'AccessorArray' );\n\n/**\n* Read/write accessor for getting/setting the number of elements.\n*\n* @name length\n* @memberof AccessorArray.prototype\n* @type {NonNegativeInteger}\n*/\nsetReadWriteAccessor( AccessorArray.prototype, 'length', getLength, setLength );\n\n/**\n* Returns an element.\n*\n* @name get\n* @memberof AccessorArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @returns {*} element\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\nsetReadOnly( AccessorArray.prototype, 'get', function get( idx ) {\n\treturn this._getter( this._buffer, idx );\n});\n\n/**\n* Sets one or more elements.\n*\n* @name set\n* @memberof AccessorArray.prototype\n* @type {Function}\n* @param {*} value - value to set\n* @param {integer} [idx] - element index\n* @returns {void}\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*\n* arr.set( 5, 0 );\n*\n* v = arr.get( 0 );\n* // returns 5\n*/\nsetReadOnly( AccessorArray.prototype, 'set', function set( value, idx ) {\n\tif ( arguments.length < 2 ) {\n\t\tthis._setter( this._buffer, 0, value );\n\t\treturn;\n\t}\n\tthis._setter( this._buffer, idx, value );\n});\n\n\n// EXPORTS //\n\nmodule.exports = AccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a minimal array-like object supporting the accessor protocol from another array-like object.\n*\n* @module @stdlib/array/base/accessor\n*\n* @example\n* var AccessorArray = require( '@stdlib/array/base/accessor' );\n*\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar accessors = require( './../../../base/accessors' );\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar o = accessors( x );\n\treturn {\n\t\t'data': x,\n\t\t'accessorProtocol': o.accessorProtocol,\n\t\t'accessors': o.accessors\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = arraylike2object;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array-like object to an object likely to have the same \"shape\".\n*\n* @module @stdlib/array/base/arraylike2object\n*\n* @example\n* var arraylike2object = require( '@stdlib/array/base/arraylike2object' );\n*\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../../base/accessor-getter' );\nvar getter = require( './../../../../base/getter' );\nvar dtype = require( './../../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = contains;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../../base/accessor-getter' );\nvar dtype = require( './../../../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array/base/assert/contains\n*\n* @example\n* var contains = require( '@stdlib/array/base/assert/contains' );\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n\n// exports: { \"factory\": \"main.factory\" }\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name contains\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/assert/contains}\n*/\nsetReadOnly( ns, 'contains', require( './../../../base/assert/contains' ) );\n\n/**\n* @name isAccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/assert/is-accessor-array}\n*/\nsetReadOnly( ns, 'isAccessorArray', require( './../../../base/assert/is-accessor-array' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* binary2d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction binary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary2d = require( '@stdlib/array/base/binary2d' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* binary2d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two three-dimensional nested input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = zeros3d( shape );\n*\n* binary3d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\nfunction binary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar z0;\n\tvar z1;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tz1 = z[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two three-dimensional nested input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary3d = require( '@stdlib/array/base/binary3d' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = zeros3d( shape );\n*\n* binary3d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two four-dimensional nested input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 1, 2, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = zeros4d( shape );\n*\n* binary4d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\nfunction binary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tz2 = z[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two four-dimensional nested input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary4d = require( '@stdlib/array/base/binary4d' );\n*\n* var shape = [ 1, 2, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = zeros4d( shape );\n*\n* binary4d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two five-dimensional nested input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = zeros5d( shape );\n*\n* binary5d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\nfunction binary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar z3;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tz3 = z[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two five-dimensional nested input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary5d = require( '@stdlib/array/base/binary5d' );\n*\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = zeros5d( shape );\n*\n* binary5d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursively applies a binary callback.\n*\n* @private\n* @param {ArrayLikeObject} x - input array\n* @param {ArrayLikeObject} y - input array\n* @param {ArrayLikeObject} z - output array\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*/\nfunction recurse( x, y, z, ndims, shape, dim, fcn ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we've reached the innermost dimension:\n\td = dim + 1;\n\n\tif ( d === ndims ) {\n\t\t// Apply the provided callback...\n\t\tfor ( i = 0; i < S; i++ ) {\n\t\t\tz[ i ] = fcn( x[ i ], y[ i ] );\n\t\t}\n\t\treturn;\n\t}\n\t// Continue recursing into the nested arrays...\n\tfor ( i = 0; i < S; i++ ) {\n\t\trecurse( x[ i ], y[ i ], z[ i ], ndims, shape, d, fcn );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two n-dimensional nested input arrays and assigns results to elements in an n-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = onesnd( shape );\n* var z = zerosnd( shape );\n*\n* binarynd( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction binarynd( arrays, shape, fcn ) {\n\treturn recurse( arrays[ 0 ], arrays[ 1 ], arrays[ 2 ], shape.length, shape, 0, fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = binarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in an n-dimensional nested input array and assign results to elements in an n-dimensional nested output array.\n*\n* @module @stdlib/array/base/binarynd\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n* var binarynd = require( '@stdlib/array/base/binarynd' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = onesnd( shape );\n* var z = zerosnd( shape );\n*\n* binarynd( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @module @stdlib/array/base/copy-indexed\n*\n* @example\n* var copy = require( '@stdlib/array/base/copy-indexed' );\n*\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled \"generic\" array.\n*\n* @module @stdlib/array/base/filled\n*\n* @example\n* var filled = require( '@stdlib/array/base/filled' );\n*\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var filled = require( '@stdlib/array/base/filled' );\n*\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled \"generic\" array.\n*\n* @module @stdlib/array/base/zeros\n*\n* @example\n* var zeros = require( '@stdlib/array/base/zeros' );\n*\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar copy = require( './../../../base/copy-indexed' );\nvar zeros = require( './../../../base/zeros' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an array to a specified shape.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} inShape - input array shape\n* @param {NonNegativeIntegerArray} outShape - output array shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided output shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {Object} broadcast object\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 2 ] );\n* // returns {...}\n*\n* var shape = out.shape;\n* // returns [ 2, 2 ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1 ]\n*\n* var ref = out.ref;\n* // returns [ 1, 2 ]\n*\n* var bool = ( x === ref );\n* // returns true\n*\n* var data = out.data;\n* // returns [ [ 1, 2 ] ]\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 1, 2 ] );\n* // returns {...}\n*\n* var data = out.data;\n* // returns [ [ [ 1, 2 ] ] ]\n*\n* var strides = out.strides;\n* // returns [ 0, 0, 1 ]\n*\n* @example\n* var x = [ [ 1 ], [ 2 ] ];\n*\n* var out = broadcastArray( x, [ 2, 1 ], [ 3, 2, 2 ] );\n* // returns {...}\n*\n* var data = out.data;\n* // returns [ [ [ 1 ], [ 2 ] ] ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1, 0 ]\n*/\nfunction broadcastArray( x, inShape, outShape ) {\n\tvar data;\n\tvar dim;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = outShape.length;\n\tM = inShape.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Prepend additional dimensions...\n\tdata = x;\n\tfor ( i = M; i < N; i++ ) {\n\t\tdata = [ data ];\n\t}\n\n\t// Initialize a strides array:\n\tst = zeros( N );\n\n\t// Determine the output array strides...\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = inShape[ j ];\n\t\tdim = outShape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( inShape ).join( ', ' ), copy( outShape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\t// As the dimension sizes are equal, the stride is one, meaning that each element in the array should be iterated over as normal...\n\t\t\tst[ i ] = 1;\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast a dimension, we set the stride for that dimension to zero...\n\t\t\tst[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( inShape ).join( ', ' ), copy( outShape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\t// Return broadcast results:\n\treturn {\n\t\t'ref': x, // reference to the original input array\n\t\t'data': data, // broadcasted array\n\t\t'shape': copy( outShape ), // copy in order to prevent mutation\n\t\t'strides': st\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Broadcast an array to a specified shape.\n*\n* @module @stdlib/array/base/broadcast-array\n*\n* @example\n* var broadcastArray = require( '@stdlib/array/base/broadcast-array' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 2 ] );\n* // returns {...}\n*\n* var shape = out.shape;\n* // returns [ 2, 2 ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1 ]\n*\n* var ref = out.ref;\n* // returns [ 1, 2 ]\n*\n* var bool = ( x === ref );\n* // returns true\n*\n* var data = out.data;\n* // returns [ [ 1, 2 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = zeros2d( shapes[ 2 ] );\n*\n* bbinary2d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction bbinary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar k0;\n\tvar k1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 1 ];\n\tdy1 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj1 = 0;\n\tk1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tk0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ k1 ];\n\t\tz0 = z[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\tj0 += dx0;\n\t\t\tk0 += dy0;\n\t\t}\n\t\tj1 += dx1;\n\t\tk1 += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary2d = require( '@stdlib/array/base/broadcasted-binary2d' );\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = zeros2d( shapes[ 2 ] );\n*\n* bbinary2d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 2, 1, 1 ],\n* [ 2, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = ones3d( shapes[ 1 ] );\n* var z = zeros3d( shapes[ 2 ] );\n*\n* bbinary3d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\nfunction bbinary3d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar z0;\n\tvar z1;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 2 ];\n\tS1 = sh[ 1 ];\n\tS2 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 2 ];\n\tdx1 = st[ 1 ];\n\tdx2 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 2 ];\n\tdy1 = st[ 1 ];\n\tdy2 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj2 = 0;\n\tk2 = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tj1 = 0;\n\t\tk1 = 0;\n\t\tx1 = x[ j2 ];\n\t\ty1 = y[ k2 ];\n\t\tz1 = z[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tj0 = 0;\n\t\t\tk0 = 0;\n\t\t\tx0 = x1[ j1 ];\n\t\t\ty0 = y1[ k1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\tj0 += dx0;\n\t\t\t\tk0 += dy0;\n\t\t\t}\n\t\t\tj1 += dx1;\n\t\t\tk1 += dy1;\n\t\t}\n\t\tj2 += dx2;\n\t\tk2 += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary3d = require( '@stdlib/array/base/broadcasted-binary3d' );\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 2, 1, 1 ],\n* [ 2, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = ones3d( shapes[ 1 ] );\n* var z = zeros3d( shapes[ 2 ] );\n*\n* bbinary3d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 2, 1, 1 ],\n* [ 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = ones4d( shapes[ 1 ] );\n* var z = zeros4d( shapes[ 2 ] );\n*\n* bbinary4d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\nfunction bbinary4d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar k3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 3 ];\n\tS1 = sh[ 2 ];\n\tS2 = sh[ 1 ];\n\tS3 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 3 ];\n\tdx1 = st[ 2 ];\n\tdx2 = st[ 1 ];\n\tdx3 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 3 ];\n\tdy1 = st[ 2 ];\n\tdy2 = st[ 1 ];\n\tdy3 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj3 = 0;\n\tk3 = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tj2 = 0;\n\t\tk2 = 0;\n\t\tx2 = x[ j3 ];\n\t\ty2 = y[ k3 ];\n\t\tz2 = z[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tj1 = 0;\n\t\t\tk1 = 0;\n\t\t\tx1 = x2[ j2 ];\n\t\t\ty1 = y2[ k2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tj0 = 0;\n\t\t\t\tk0 = 0;\n\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\ty0 = y1[ k1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\t\tj0 += dx0;\n\t\t\t\t\tk0 += dy0;\n\t\t\t\t}\n\t\t\t\tj1 += dx1;\n\t\t\t\tk1 += dy1;\n\t\t\t}\n\t\t\tj2 += dx2;\n\t\t\tk2 += dy2;\n\t\t}\n\t\tj3 += dx3;\n\t\tk3 += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary4d = require( '@stdlib/array/base/broadcasted-binary4d' );\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 2, 1, 1 ],\n* [ 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = ones4d( shapes[ 1 ] );\n* var z = zeros4d( shapes[ 2 ] );\n*\n* bbinary4d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 2, 1, 1 ],\n* [ 1, 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = ones5d( shapes[ 1 ] );\n* var z = zeros5d( shapes[ 2 ] );\n*\n* bbinary5d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\nfunction bbinary5d( arrays, shapes, fcn ) { // eslint-disable-line max-statements\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar k3;\n\tvar k4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar z3;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 4 ];\n\tS1 = sh[ 3 ];\n\tS2 = sh[ 2 ];\n\tS3 = sh[ 1 ];\n\tS4 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 4 ];\n\tdx1 = st[ 3 ];\n\tdx2 = st[ 2 ];\n\tdx3 = st[ 1 ];\n\tdx4 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 4 ];\n\tdy1 = st[ 3 ];\n\tdy2 = st[ 2 ];\n\tdy3 = st[ 1 ];\n\tdy4 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj4 = 0;\n\tk4 = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tj3 = 0;\n\t\tk3 = 0;\n\t\tx3 = x[ j4 ];\n\t\ty3 = y[ k4 ];\n\t\tz3 = z[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tj2 = 0;\n\t\t\tk2 = 0;\n\t\t\tx2 = x3[ j3 ];\n\t\t\ty2 = y3[ k3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tj1 = 0;\n\t\t\t\tk1 = 0;\n\t\t\t\tx1 = x2[ j2 ];\n\t\t\t\ty1 = y2[ k2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tj0 = 0;\n\t\t\t\t\tk0 = 0;\n\t\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\t\ty0 = y1[ k1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\t\t\tj0 += dx0;\n\t\t\t\t\t\tk0 += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tj1 += dx1;\n\t\t\t\t\tk1 += dy1;\n\t\t\t\t}\n\t\t\t\tj2 += dx2;\n\t\t\t\tk2 += dy2;\n\t\t\t}\n\t\t\tj3 += dx3;\n\t\t\tk3 += dy3;\n\t\t}\n\t\tj4 += dx4;\n\t\tk4 += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary5d = require( '@stdlib/array/base/broadcasted-binary5d' );\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 2, 1, 1 ],\n* [ 1, 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = ones5d( shapes[ 1 ] );\n* var z = zeros5d( shapes[ 2 ] );\n*\n* bbinary5d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three broadcasted input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 1, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = ones2d( shapes[ 2 ] );\n* var out = zeros2d( shapes[ 3 ] );\n*\n* bternary2d( [ x, y, z, out ], shapes, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\nfunction bternary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar k0;\n\tvar k1;\n\tvar m0;\n\tvar m1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tsh = shapes[ 3 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 1 ];\n\tdy1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 2 ], shapes[ 2 ], sh );\n\tz = o.data;\n\tst = o.strides;\n\tdz0 = st[ 1 ];\n\tdz1 = st[ 0 ];\n\n\tw = arrays[ 3 ];\n\n\tj1 = 0;\n\tk1 = 0;\n\tm1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tk0 = 0;\n\t\tm0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ k1 ];\n\t\tz0 = z[ m1 ];\n\t\tw0 = w[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tw0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ], z0[ m0 ] );\n\t\t\tj0 += dx0;\n\t\t\tk0 += dy0;\n\t\t\tm0 += dz0;\n\t\t}\n\t\tj1 += dx1;\n\t\tk1 += dy1;\n\t\tm1 += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bternary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three broadcasted input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-ternary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var bternary2d = require( '@stdlib/array/base/broadcasted-ternary2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 1, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = ones2d( shapes[ 2 ] );\n* var out = zeros2d( shapes[ 3 ] );\n*\n* bternary2d( [ x, y, z, out ], shapes, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = zeros2d( shapes[ 1 ] );\n*\n* bunary2d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction bunary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar x0;\n\tvar y0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\n\tj1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\tj0 += dx0;\n\t\t}\n\t\tj1 += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var bunary2d = require( '@stdlib/array/base/broadcasted-unary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = zeros2d( shapes[ 1 ] );\n*\n* bunary2d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a three-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 1, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = zeros3d( shapes[ 1 ] );\n*\n* bunary3d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction bunary3d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 2 ];\n\tS1 = sh[ 1 ];\n\tS2 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 2 ];\n\tdx1 = st[ 1 ];\n\tdx2 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj2 = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tj1 = 0;\n\t\tx1 = x[ j2 ];\n\t\ty1 = y[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tj0 = 0;\n\t\t\tx0 = x1[ j1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\tj0 += dx0;\n\t\t\t}\n\t\t\tj1 += dx1;\n\t\t}\n\t\tj2 += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var bunary3d = require( '@stdlib/array/base/broadcasted-unary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 1, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = zeros3d( shapes[ 1 ] );\n*\n* bunary3d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a four-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = zeros4d( shapes[ 1 ] );\n*\n* bunary4d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\nfunction bunary4d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 3 ];\n\tS1 = sh[ 2 ];\n\tS2 = sh[ 1 ];\n\tS3 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 3 ];\n\tdx1 = st[ 2 ];\n\tdx2 = st[ 1 ];\n\tdx3 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj3 = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tj2 = 0;\n\t\tx2 = x[ j3 ];\n\t\ty2 = y[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tj1 = 0;\n\t\t\tx1 = x2[ j2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tj0 = 0;\n\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\t\tj0 += dx0;\n\t\t\t\t}\n\t\t\t\tj1 += dx1;\n\t\t\t}\n\t\t\tj2 += dx2;\n\t\t}\n\t\tj3 += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var bunary4d = require( '@stdlib/array/base/broadcasted-unary4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = zeros4d( shapes[ 1 ] );\n*\n* bunary4d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a five-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = zeros5d( shapes[ 1 ] );\n*\n* bunary5d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\nfunction bunary5d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 4 ];\n\tS1 = sh[ 3 ];\n\tS2 = sh[ 2 ];\n\tS3 = sh[ 1 ];\n\tS4 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 4 ];\n\tdx1 = st[ 3 ];\n\tdx2 = st[ 2 ];\n\tdx3 = st[ 1 ];\n\tdx4 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj4 = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tj3 = 0;\n\t\tx3 = x[ j4 ];\n\t\ty3 = y[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tj2 = 0;\n\t\t\tx2 = x3[ j3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tj1 = 0;\n\t\t\t\tx1 = x2[ j2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tj0 = 0;\n\t\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\t\t\tj0 += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tj1 += dx1;\n\t\t\t\t}\n\t\t\t\tj2 += dx2;\n\t\t\t}\n\t\t\tj3 += dx3;\n\t\t}\n\t\tj4 += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var bunary5d = require( '@stdlib/array/base/broadcasted-unary5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = zeros5d( shapes[ 1 ] );\n*\n* bunary5d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar pow = require( '@stdlib/math/base/special/pow' );\n\n\n// MAIN //\n\n/**\n* Returns the Cartesian power.\n*\n* ## Notes\n*\n* - The Cartesian power is an n-fold Cartesian product involving a single array. The main insight of this implementation is that the n-fold Cartesian product can be presented as an n-dimensional array stored in row-major order. As such, we can\n*\n* - Compute the total number of tuples, which is simply the size of the provided array (set) raised to the specified power `n`. For n-dimensional arrays, this is the equivalent of computing the product of array dimensions to determine the total number of elements.\n* - Initialize an array for storing indices for indexing into the provided array. For n-dimensional arrays, the index array is equivalent to an array of subscripts for indexing into each dimension.\n* - For the outermost loop, treat the loop index as a linear index into an n-dimensional array and resolve the corresponding subscripts.\n* - Continue iterating until all tuples have been generated.\n*\n* @param {ArrayLikeObject} x - input array\n* @param {NonNegativeInteger} n - power\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = cartesianPower( x, 2 );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\nfunction cartesianPower( x, n ) {\n\tvar out;\n\tvar tmp;\n\tvar idx;\n\tvar len;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tN = x.length;\n\tif ( N <= 0 || n <= 0 ) {\n\t\treturn [];\n\t}\n\t// Compute the total number of ordered tuples:\n\tlen = pow( N, n );\n\n\t// Initialize a list of indices for indexing into the array (equivalent to ndarray subscripts):\n\tidx = [];\n\tfor ( i = 0; i < n; i++ ) {\n\t\tidx.push( 0 );\n\t}\n\t// Compute the n-fold Cartesian product...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\t// Resolve a linear index to array indices (logic is equivalent to what is found in ndarray/base/ind2sub for an ndarray stored in row-major order; see https://github.com/stdlib-js/stdlib/blob/215ca5355f3404f15996fd0ced58a98e46f22be6/lib/node_modules/%40stdlib/ndarray/base/ind2sub/lib/assign.js)...\n\t\tk = i;\n\t\tfor ( j = n-1; j >= 0; j-- ) {\n\t\t\ts = k % N;\n\t\t\tk -= s;\n\t\t\tk /= N;\n\t\t\tidx[ j ] = s;\n\t\t}\n\t\t// Generate the next ordered tuple...\n\t\ttmp = [];\n\t\tfor ( j = 0; j < n; j++ ) {\n\t\t\ttmp.push( x[ idx[ j ] ] );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianPower;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian power.\n*\n* @module @stdlib/array/base/cartesian-power\n*\n* @example\n* var cartesianPower = require( '@stdlib/array/base/cartesian-power' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = cartesianPower( x, 2 );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the Cartesian product.\n*\n* @param {ArrayLikeObject} x1 - first input array\n* @param {ArrayLikeObject} x2 - second input array\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = cartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\nfunction cartesianProduct( x1, x2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tM = x1.length;\n\tN = x2.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv = x1[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tout.push( [ v, x2[ j ] ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianProduct;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian product.\n*\n* @module @stdlib/array/base/cartesian-product\n*\n* @example\n* var cartesianProduct = require( '@stdlib/array/base/cartesian-product' );\n*\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = cartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the Cartesian square.\n*\n* @param {ArrayLikeObject} x - input array\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = cartesianSquare( x );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\nfunction cartesianSquare( x ) {\n\tvar out;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = x.length;\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = x[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tout.push( [ v, x[ j ] ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianSquare;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian square.\n*\n* @module @stdlib/array/base/cartesian-square\n*\n* @example\n* var cartesianSquare = require( '@stdlib/array/base/cartesian-square' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = cartesianSquare( x );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar getter = require( './../../../base/getter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Copies the elements of an array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements to copy:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( get( x, i ) ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy the elements of an array-like object to a new \"generic\" array.\n*\n* @module @stdlib/array/base/copy\n*\n* @example\n* var copy = require( '@stdlib/array/base/copy' );\n*\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array according to a provided callback function.\n*\n* @param {NonNegativeInteger} len - array length\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filledBy( 3, constantFunction( 'beep' ) );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filledBy( len, clbk, thisArg ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( clbk.call( thisArg, i ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled \"generic\" array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filledBy = require( '@stdlib/array/base/filled-by' );\n*\n* var out = filledBy( 3, constantFunction( 'beep' ) );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled2d( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var out = filled2d( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction filled2d( value, shape ) {\n\tvar arr;\n\tvar S0;\n\tvar S1;\n\tvar i;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < S1; i++ ) {\n\t\tarr.push( filled( value, S0 ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled two-dimensional nested array.\n*\n* @module @stdlib/array/base/filled2d\n*\n* @example\n* var filled2d = require( '@stdlib/array/base/filled2d' );\n*\n* var out = filled2d( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var filled2d = require( '@stdlib/array/base/filled2d' );\n*\n* var out = filled2d( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled2dBy( [ 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep', 'beep', 'beep' ] ]\n*/\nfunction filled2dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar S0;\n\tvar S1;\n\tvar i;\n\tvar j;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < S1; i++ ) {\n\t\ta0 = [];\n\t\tfor ( j = 0; j < S0; j++ ) {\n\t\t\ta0.push( clbk.call( thisArg, [ i, j ] ) );\n\t\t}\n\t\tarr.push( a0 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled two-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled2d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled2dBy = require( '@stdlib/array/base/filled2d-by' );\n*\n* var out = filled2dBy( [ 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep', 'beep', 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled three-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled3d( 0.0, [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*\n* @example\n* var out = filled3d( 'beep', [ 1, 3, 1 ] );\n* // returns [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ]\n*/\nfunction filled3d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i2;\n\tvar i1;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = [];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta1.push( filled( value, S0 ) );\n\t\t}\n\t\tout.push( a1 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled three-dimensional nested array.\n*\n* @module @stdlib/array/base/filled3d\n*\n* @example\n* var filled3d = require( '@stdlib/array/base/filled3d' );\n*\n* var out = filled3d( 0.0, [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*\n* @example\n* var filled3d = require( '@stdlib/array/base/filled3d' );\n*\n* var out = filled3d( 'beep', [ 1, 3, 1 ] );\n* // returns [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled three-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled3dBy( [ 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ 'beep', 'beep', 'beep' ] ] ]\n*/\nfunction filled3dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = [];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = [];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ta0.push( clbk.call( thisArg, [ i2, i1, i0 ] ) );\n\t\t\t}\n\t\t\ta1.push( a0 );\n\t\t}\n\t\tarr.push( a1 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled three-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled3d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled3dBy = require( '@stdlib/array/base/filled3d-by' );\n*\n* var out = filled3dBy( [ 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ 'beep', 'beep', 'beep' ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled four-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled4d( 0.0, [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*\n* @example\n* var out = filled4d( 'beep', [ 1, 1, 3, 1 ] );\n* // returns [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ]\n*/\nfunction filled4d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar a2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = [];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = [];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta1.push( filled( value, S0 ) );\n\t\t\t}\n\t\t\ta2.push( a1 );\n\t\t}\n\t\tout.push( a2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled four-dimensional nested array.\n*\n* @module @stdlib/array/base/filled4d\n*\n* @example\n* var filled4d = require( '@stdlib/array/base/filled4d' );\n*\n* var out = filled4d( 0.0, [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*\n* @example\n* var filled4d = require( '@stdlib/array/base/filled4d' );\n*\n* var out = filled4d( 'beep', [ 1, 1, 3, 1 ] );\n* // returns [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled four-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled4dBy( [ 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ]\n*/\nfunction filled4dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = [];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = [];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = [];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ta0.push( clbk.call( thisArg, [ i3, i2, i1, i0 ] ) );\n\t\t\t\t}\n\t\t\t\ta1.push( a0 );\n\t\t\t}\n\t\t\ta2.push( a1 );\n\t\t}\n\t\tarr.push( a2 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled four-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled4d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled4dBy = require( '@stdlib/array/base/filled4d-by' );\n*\n* var out = filled4dBy( [ 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled five-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled5d( 0.0, [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*\n* @example\n* var out = filled5d( 'beep', [ 1, 1, 1, 3, 1 ] );\n* // returns [ [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ] ]\n*/\nfunction filled5d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = [];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = [];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = [];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta1.push( filled( value, S0 ) );\n\t\t\t\t}\n\t\t\t\ta2.push( a1 );\n\t\t\t}\n\t\t\ta3.push( a2 );\n\t\t}\n\t\tout.push( a3 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled five-dimensional nested array.\n*\n* @module @stdlib/array/base/filled5d\n*\n* @example\n* var filled5d = require( '@stdlib/array/base/filled5d' );\n*\n* var out = filled5d( 0.0, [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*\n* @example\n* var filled5d = require( '@stdlib/array/base/filled5d' );\n*\n* var out = filled5d( 'beep', [ 1, 1, 1, 3, 1 ] );\n* // returns [ [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled five-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled5dBy( [ 1, 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ] ]\n*/\nfunction filled5dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = [];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = [];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = [];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = [];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ta0.push( clbk.call( thisArg, [ i4, i3, i2, i1, i0 ] ) );\n\t\t\t\t\t}\n\t\t\t\t\ta1.push( a0 );\n\t\t\t\t}\n\t\t\t\ta2.push( a1 );\n\t\t\t}\n\t\t\ta3.push( a2 );\n\t\t}\n\t\tarr.push( a3 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled five-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled5d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled5dBy = require( '@stdlib/array/base/filled5d-by' );\n*\n* var out = filled5dBy( [ 1, 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// FUNCTIONS //\n\n/**\n* Recursive fills an array.\n*\n* @private\n* @param {*} value - fill value\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction recurse( value, ndims, shape, dim, out ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we're filling the last dimension:\n\td = dim + 1;\n\tif ( d === ndims ) {\n\t\treturn filled( value, S );\n\t}\n\n\t// Fill nested dimensions...\n\tfor ( i = 0; i < S; i++ ) {\n\t\tout.push( recurse( value, ndims, shape, d, [] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = fillednd( 0.0, [ 3 ] );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = fillednd( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var out = fillednd( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction fillednd( value, shape ) {\n\treturn recurse( value, shape.length, shape, 0, [] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fillednd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled n-dimensional nested array.\n*\n* @module @stdlib/array/base/fillednd\n*\n* @example\n* var fillednd = require( '@stdlib/array/base/fillednd' );\n*\n* var out = fillednd( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var fillednd = require( '@stdlib/array/base/fillednd' );\n*\n* var out = fillednd( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursive fills an array.\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {NonNegativeIntegerArray} indices - outer array element indices\n* @param {Array} out - output array\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} output array\n*/\nfunction recurse( ndims, shape, dim, indices, out, clbk, thisArg ) {\n\tvar idx;\n\tvar FLG;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we're filling the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tidx = indices.slice(); // we explicitly copy in order to avoid potential mutation when calling `clbk`\n\t\tidx.push( i );\n\t\tif ( FLG ) {\n\t\t\tout.push( clbk.call( thisArg, idx ) );\n\t\t} else {\n\t\t\tout.push( recurse( ndims, shape, d, idx, [], clbk, thisArg ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filledndBy( [ 3, 1 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction filledndBy( shape, clbk, thisArg ) {\n\treturn recurse( shape.length, shape, 0, [], [], clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledndBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled n-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/fillednd-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filledndBy = require( '@stdlib/array/base/fillednd-by' );\n*\n* var out = filledndBy( [ 3, 1 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\nvar vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar grev = require( '@stdlib/blas/ext/base/grev' );\nvar zeros = require( './../../../base/zeros' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// FUNCTIONS //\n\n/**\n* Copies a specified number of array elements to a provided array.\n*\n* @private\n* @param {Array} x - input array\n* @param {NonNegativeInteger} N - number of elements to copy\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* copy( x, 3, out, 1, 0 );\n*\n* var o = out;\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x, N, out, stride, offset ) {\n\tvar i;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout[ offset ] = x[ i ];\n\t\toffset += stride;\n\t}\n}\n\n/**\n* Recursively flattens an array in lexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {NonNegativeInteger} offset for next output array element\n*/\nfunction recurseLexicographic( x, ndims, shape, dim, out, stride, offset ) {\n\tvar FLG;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we've reached the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tif ( FLG ) {\n\t\t\tout[ offset ] = x[ i ];\n\t\t\toffset += stride;\n\t\t} else {\n\t\t\toffset = recurseLexicographic( x[ i ], ndims, shape, d, out, stride, offset ); // eslint-disable-line max-len\n\t\t}\n\t}\n\treturn offset;\n}\n\n/**\n* Flattens an array in colexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n*/\nfunction flattenColexicographic( x, ndims, shape, out, stride, offset ) {\n\tvar len;\n\tvar tmp;\n\tvar ord;\n\tvar sh;\n\tvar sx;\n\tvar j;\n\tvar i;\n\n\t// Note that, in contrast to lexicographic iteration, we cannot readily define a straightforward recursive definition for colexicographic iteration. Accordingly, we have to perform a workaround in which we first flatten in lexicographic order and then perform an out-of-place transposition to return an array in colexicographic order.\n\n\t// Determine how many elements will be in the output array:\n\tlen = numel( shape );\n\n\t// For input arrays having an arbitrary number of dimensions, first flatten in lexicographic order:\n\ttmp = zeros( len );\n\trecurseLexicographic( x, ndims, shape, 0, tmp, 1, 0 );\n\n\t// Define the memory layout:\n\tord = 'row-major';\n\n\t// Generate a stride array for lexicographic order:\n\tsx = shape2strides( shape, ord );\n\n\t// Reverse the dimensions and strides (i.e., define the shape and strides of the transpose):\n\tsh = zeros( ndims );\n\tcopy( shape, ndims, sh, 1, 0 );\n\tgrev( ndims, sh, 1 );\n\tgrev( ndims, sx, 1 );\n\n\t// Iterate over each element based on the linear **view** index (note: this has negative performance implications due to lack of data locality)...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = vind2bind( sh, sx, 0, ord, i, MODE );\n\t\tout[ offset ] = tmp[ j ];\n\t\toffset += stride;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten( x, shape, colexicographic, out, stride, offset ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) { // 0-dimensional array\n\t\treturn out;\n\t}\n\tif ( ndims === 1 ) { // 1-dimensional array\n\t\t// For 1-dimensional arrays, we can perform a simple copy:\n\t\tcopy( x, shape[ 0 ], out, stride, offset );\n\t\treturn out;\n\t}\n\tif ( colexicographic ) {\n\t\tflattenColexicographic( x, ndims, shape, out, stride, offset );\n\t\treturn out;\n\t}\n\trecurseLexicographic( x, ndims, shape, 0, out, stride, offset );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar zeros = require( './../../../base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten( x, shape, colexicographic ) {\n\tvar out = zeros( numel( shape ) );\n\treturn assign( x, shape, colexicographic, out, 1, 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten an n-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten\n*\n* @example\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten.assign( x, [ 2, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\nvar vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar grev = require( '@stdlib/blas/ext/base/grev' );\nvar zeros = require( './../../../base/zeros' );\nvar copy = require( './../../../base/copy-indexed' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// FUNCTIONS //\n\n/**\n* Copies a specified number of array elements to a provided array according to a callback function.\n*\n* @private\n* @param {Array} x - input array\n* @param {NonNegativeInteger} N - number of elements to copy\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* copyBy( x, 3, out, 1, 0, scale );\n*\n* var o = out;\n* // returns [ 2, 4, 6 ]\n*/\nfunction copyBy( x, N, out, stride, offset, clbk, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout[ offset ] = clbk.call( thisArg, x[ i ], [ i ], x );\n\t\toffset += stride;\n\t}\n}\n\n/**\n* Recursively flattens an array in lexicographic order.\n*\n* @private\n* @param {Array} orig - original input array\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {NonNegativeInteger} dim - dimension index\n* @param {NonNegativeIntegerArray} indices - outer array element indices\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {NonNegativeInteger} offset for next output array element\n*/\nfunction recurseLexicographic( orig, x, ndims, shape, dim, indices, out, stride, offset, clbk, thisArg ) { // eslint-disable-line max-params\n\tvar FLG;\n\tvar idx;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we've reached the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tidx = indices.slice(); // we explicitly copy in order to avoid potential mutation when calling `clbk`\n\t\tidx.push( i );\n\t\tif ( FLG ) {\n\t\t\tout[ offset ] = clbk.call( thisArg, x[ i ], idx, orig );\n\t\t\toffset += stride;\n\t\t} else {\n\t\t\toffset = recurseLexicographic( orig, x[ i ], ndims, shape, d, idx, out, stride, offset, clbk, thisArg );\n\t\t}\n\t}\n\treturn offset;\n}\n\n/**\n* Flattens an array in colexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n*/\nfunction flattenColexicographic( x, ndims, shape, out, stride, offset, clbk, thisArg ) {\n\tvar len;\n\tvar tmp;\n\tvar ord;\n\tvar sh;\n\tvar sx;\n\tvar j;\n\tvar i;\n\n\t// Note that, in contrast to lexicographic iteration, we cannot readily define a straightforward recursive definition for colexicographic iteration. Accordingly, we have to perform a workaround in which we first flatten in lexicographic order and then perform an out-of-place transposition to return an array in colexicographic order.\n\n\t// Determine how many elements will be in the output array:\n\tlen = numel( shape );\n\n\t// For input arrays having an arbitrary number of dimensions, first flatten in lexicographic order:\n\ttmp = zeros( len );\n\trecurseLexicographic( x, x, ndims, shape, 0, [], tmp, 1, 0, clbk, thisArg );\n\n\t// Define the memory layout:\n\tord = 'row-major';\n\n\t// Generate a stride array for lexicographic order:\n\tsx = shape2strides( shape, ord );\n\n\t// Reverse the dimensions and strides (i.e., define the shape and strides of the transpose):\n\tsh = copy( shape );\n\tgrev( ndims, sh, 1 );\n\tgrev( ndims, sx, 1 );\n\n\t// Iterate over each element based on the linear **view** index (note: this has negative performance implications due to lack of data locality)...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = vind2bind( sh, sx, 0, ord, i, MODE );\n\t\tout[ offset ] = tmp[ j ];\n\t\toffset += stride;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flattenBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) { // 0-dimensional array\n\t\treturn out;\n\t}\n\tif ( ndims === 1 ) { // 1-dimensional array\n\t\t// For 1-dimensional arrays, we can perform simple iteration:\n\t\tcopyBy( x, shape[ 0 ], out, stride, offset, clbk, thisArg );\n\t\treturn out;\n\t}\n\tif ( colexicographic ) {\n\t\tflattenColexicographic( x, ndims, shape, out, stride, offset, clbk, thisArg );\n\t\treturn out;\n\t}\n\trecurseLexicographic( x, x, ndims, shape, 0, [], out, stride, offset, clbk, thisArg );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flattenBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar zeros = require( './../../../base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flattenBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out = zeros( numel( shape ) );\n\treturn assign( x, shape, colexicographic, out, 1, 0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flattenBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten an n-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten-by\n*\n* @example\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flattenBy.assign( x, [ 2, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten2d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout.push( x[ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten2d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout[ io ] = x[ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\tio += stride;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a two-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten2d\n*\n* @example\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten2d.assign( x, [ 2, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten2dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout.push( clbk.call( thisArg, x[ i1 ][ i0 ], [ i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten2dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i1 ][ i0 ], [ i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\tio += stride;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a two-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten2d-by\n*\n* @example\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten2dBy( x, [ 2, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten3d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout.push( x[ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten3d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout[ io ] = x[ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a three-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten3d\n*\n* @example\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten3d.assign( x, [ 2, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten3dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout.push( clbk.call( thisArg, x[ i2 ][ i1 ][ i0 ], [ i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten3dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i2 ][ i1 ][ i0 ], [ i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a three-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten3d-by\n*\n* @example\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten3dBy.assign( x, [ 2, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten4d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout.push( x[ i3 ][ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten4d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout[ io ] = x[ i3 ][ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a four-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten4d\n*\n* @example\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten4d.assign( x, [ 2, 1, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten4dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout.push( clbk.call( thisArg, x[ i3 ][ i2 ][ i1 ][ i0 ], [ i3, i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i3, i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten4dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i3 ][ i2 ][ i1 ][ i0 ], [ i3, i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i3, i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a four-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten4d-by\n*\n* @example\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten4dBy.assign( x, [ 2, 1, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten5d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout.push( x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten5d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout[ io ] = x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t\tio += stride;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a five-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten5d\n*\n* @example\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten5d.assign( x, [ 2, 1, 1, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten5dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout.push( clbk.call( thisArg, x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ], [ i4, i3, i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i4, i3, i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten5dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ], [ i4, i3, i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t\tio += stride;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i4, i3, i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a five-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten5d-by\n*\n* @example\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten5dBy.assign( x, [ 2, 1, 1, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ceil = require( '@stdlib/math/base/special/ceil' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array according to a provided increment.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @param {number} increment - increment\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\nfunction incrspace( x1, x2, increment ) {\n\tvar arr;\n\tvar len;\n\tvar i;\n\n\tlen = ceil( ( x2-x1 ) / increment );\n\tif ( len <= 1 ) {\n\t\treturn [ x1 ];\n\t}\n\tarr = [ x1 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tarr.push( x1 + (increment*i) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = incrspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array according to a provided increment.\n*\n* @module @stdlib/array/base/incrspace\n*\n* @example\n* var incrspace = require( '@stdlib/array/base/incrspace' );\n*\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar getter = require( './../../../base/getter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Returns the last element of an array-like object.\n*\n* @param {Collection} arr - input array\n* @returns {*} - last element\n*\n* @example\n* var out = last( [ 1, 2, 3 ] );\n* // returns 3\n*/\nfunction last( arr ) {\n\tvar get;\n\tvar idx;\n\tvar dt;\n\n\t// Resolve the input array data type:\n\tdt = dtype( arr );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( arr ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Resolve the last index:\n\tidx = arr.length - 1;\n\n\t// Return the last element:\n\tif ( idx < 0 ) {\n\t\treturn;\n\t}\n\treturn get( arr, idx );\n}\n\n\n// EXPORTS //\n\nmodule.exports = last;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the last element of an array-like object.\n*\n* @module @stdlib/array/base/last\n*\n* @example\n* var last = require( '@stdlib/array/base/last' );\n*\n* var out = last( [ 1, 2, 3 ] );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - last array value\n* @param {NonNegativeInteger} len - length of output array\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\nfunction linspace( x1, x2, len ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Calculate the increment:\n\tN = len - 1;\n\td = ( x2-x1 ) / N;\n\n\t// Build the output array...\n\tarr = [ x1 ];\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( x1 + (d*i) );\n\t}\n\tarr.push( x2 );\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array.\n*\n* @module @stdlib/array/base/linspace\n*\n* @example\n* var linspace = require( '@stdlib/array/base/linspace' );\n*\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar pow = require( '@stdlib/math/base/special/pow' );\n\n\n// MAIN //\n\n/**\n* Generates a logarithmically spaced numeric array.\n*\n* @param {number} a - exponent of start value\n* @param {number} b - exponent of end value\n* @param {NonNegativeInteger} len - length of output array\n* @returns {Array} logarithmically spaced numeric array\n*\n* @example\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\nfunction logspace( a, b, len ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Calculate the increment:\n\tN = len - 1;\n\td = ( b-a ) / N;\n\n\t// Build the output array...\n\tarr = [ pow( 10, a ) ];\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( pow( 10, a+(d*i) ) );\n\t}\n\tarr.push( pow( 10, b ) );\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = logspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a logarithmically spaced numeric array.\n*\n* @module @stdlib/array/base/logspace\n*\n* @example\n* var logspace = require( '@stdlib/array/base/logspace' );\n*\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two two-dimensional nested input arrays according to elements in a two-dimensional nested mask array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskbinary2d( [ x, y, mask, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 0.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction mskbinary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar m0;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar m;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 3 ];\n\tm = arrays[ 2 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tm0 = m[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskbinary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two two-dimensional nested input arrays according to elements in a two-dimensional nested mask array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskbinary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var mskbinary2d = require( '@stdlib/array/base/mskbinary2d' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskbinary2d( [ x, y, mask, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 0.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional nested input array according to elements in a two-dimensional nested mask array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskunary2d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction mskunary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar m0;\n\tvar x;\n\tvar y;\n\tvar m;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 2 ];\n\tm = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tm0 = m[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a two-dimensional nested input array according to elements in a two-dimensional nested mask array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskunary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var mskunary2d = require( '@stdlib/array/base/mskunary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskunary2d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional nested input array according to elements in a three-dimensional nested mask array and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* var mask = [ [ [ 0, 1 ], [ 0, 0 ] ] ];\n*\n* mskunary3d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction mskunary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar m0;\n\tvar m1;\n\tvar x;\n\tvar y;\n\tvar m;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 2 ];\n\tm = arrays[ 1 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tm1 = m[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tm0 = m1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a three-dimensional nested input array according to elements in a three-dimensional nested mask array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskunary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var mskunary3d = require( '@stdlib/array/base/mskunary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* var mask = [ [ [ 0, 1 ], [ 0, 0 ] ] ];\n*\n* mskunary3d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the n-fold Cartesian product.\n*\n* ## Notes\n*\n* - The main insight of this implementation is that the n-fold Cartesian product can be presented as an n-dimensional array stored in row-major order. As such, we can\n*\n* - Compute the total number of tuples, which is simply the product of the size of each provided array (set). For n-dimensional arrays, this is the equivalent of computing the product of array dimensions to determine the total number of elements.\n* - Initialize an array for storing indices for indexing into each provided array. For n-dimensional arrays, the index array is equivalent to an array of subscripts for indexing into each dimension.\n* - For the outermost loop, treat the loop index as a linear index into an n-dimensional array and resolve the corresponding subscripts.\n* - Continue iterating until all tuples have been generated.\n*\n* @param {ArrayLikeObject} x1 - first input array\n* @param {ArrayLikeObject} x2 - second input array\n* @param {ArrayLikeObject} [...args] - additional input arrays\n* @returns {Array} list of ordered tuples comprising the n-fold Cartesian product\n*\n* @example\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = nCartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\nfunction nCartesianProduct( x1, x2 ) {\n\tvar nargs;\n\tvar dims;\n\tvar arr;\n\tvar out;\n\tvar tmp;\n\tvar arg;\n\tvar idx;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tnargs = arguments.length;\n\n\t// Initialize the list of arrays:\n\tarr = [ x1, x2 ];\n\n\t// Initialize the list of array dimensions (equivalent to ndarray shape):\n\tdims = [ x1.length, x2.length ];\n\n\t// Initialize a list of indices for indexing into each array (equivalent to ndarray subscripts):\n\tidx = [ 0, 0 ];\n\n\t// Compute the total number of ordered tuples:\n\tN = dims[ 0 ] * dims[ 1 ];\n\n\t// Update loop variables for any additional arrays...\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\targ = arguments[ i ];\n\t\tarr.push( arg );\n\t\tdims.push( arg.length );\n\t\tidx.push( 0 );\n\t\tN *= dims[ i ];\n\t}\n\t// Compute the n-fold Cartesian product...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\t// Resolve a linear index to array indices (logic is equivalent to what is found in ndarray/base/ind2sub for an ndarray stored in row-major order; see https://github.com/stdlib-js/stdlib/blob/215ca5355f3404f15996fd0ced58a98e46f22be6/lib/node_modules/%40stdlib/ndarray/base/ind2sub/lib/assign.js)...\n\t\tk = i;\n\t\tfor ( j = nargs-1; j >= 0; j-- ) {\n\t\t\ts = k % dims[ j ];\n\t\t\tk -= s;\n\t\t\tk /= dims[ j ];\n\t\t\tidx[ j ] = s;\n\t\t}\n\t\t// Generate the next ordered tuple...\n\t\ttmp = [];\n\t\tfor ( j = 0; j < nargs; j++ ) {\n\t\t\ttmp.push( arr[ j ][ idx[ j ] ] );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nCartesianProduct;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the n-fold Cartesian product.\n*\n* @module @stdlib/array/base/n-cartesian-product\n*\n* @example\n* var nCartesianProduct = require( '@stdlib/array/base/n-cartesian-product' );\n*\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = nCartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from one.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = oneTo( 6 );\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nfunction oneTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 1; i < n+1; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = oneTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from one.\n*\n* @module @stdlib/array/base/one-to\n*\n* @example\n* var oneTo = require( '@stdlib/array/base/one-to' );\n*\n* var arr = oneTo( 6 );\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with ones.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\nfunction ones( len ) {\n\treturn filled( 1.0, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a \"generic\" array filled with ones.\n*\n* @module @stdlib/array/base/ones\n*\n* @example\n* var ones = require( '@stdlib/array/base/ones' );\n*\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled2d = require( './../../../base/filled2d' );\n\n\n// MAIN //\n\n/**\n* Returns a two-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {ArrayArray} filled array\n*\n* @example\n* var out = ones2d( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\nfunction ones2d( shape ) {\n\treturn filled2d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a two-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n*\n* var out = ones2d( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled3d = require( './../../../base/filled3d' );\n\n\n// MAIN //\n\n/**\n* Returns a three-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 1.0, 1.0, 1.0 ] ] ]\n*/\nfunction ones3d( shape ) {\n\treturn filled3d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a three-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n*\n* var out = ones3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 1.0, 1.0, 1.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled4d = require( './../../../base/filled4d' );\n\n\n// MAIN //\n\n/**\n* Returns a four-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ]\n*/\nfunction ones4d( shape ) {\n\treturn filled4d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a four-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n*\n* var out = ones4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled5d = require( './../../../base/filled5d' );\n\n\n// MAIN //\n\n/**\n* Returns a five-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ] ]\n*/\nfunction ones5d( shape ) {\n\treturn filled5d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a five-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n*\n* var out = ones5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar fillednd = require( './../../../base/fillednd' );\n\n\n// MAIN //\n\n/**\n* Returns an n-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = onesnd( [ 3 ] );\n* // returns [ 1.0, 1.0, 1.0 ]\n*\n* @example\n* var out = onesnd( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\nfunction onesnd( shape ) {\n\treturn fillednd( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = onesnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an n-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/onesnd\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n*\n* var out = onesnd( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Takes elements from an array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = take;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Take elements from an array.\n*\n* @module @stdlib/array/base/take\n*\n* @example\n* var take = require( '@stdlib/array/base/take' );\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 0, 0, 1, 1, 3, 3 ];\n* var y = take( x, indices );\n* // returns [ 1, 1, 2, 2, 4, 4 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* ternary2d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\nfunction ternary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tw0 = w[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var ternary2d = require( '@stdlib/array/base/ternary2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* ternary2d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three three-dimensional nested input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = ones3d( shape );\n* var out = zeros3d( shape );\n*\n* ternary3d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ]\n*/\nfunction ternary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tz1 = z[ i2 ];\n\t\tw1 = w[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tw0 = w1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three three-dimensional nested input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var ternary3d = require( '@stdlib/array/base/ternary3d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = ones3d( shape );\n* var out = zeros3d( shape );\n*\n* ternary3d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three four-dimensional nested input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = ones4d( shape );\n* var out = zeros4d( shape );\n*\n* ternary4d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ]\n*/\nfunction ternary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x2;\n\tvar y2;\n\tvar z2;\n\tvar w2;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tz2 = z[ i3 ];\n\t\tw2 = w[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tw1 = w2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tw0 = w1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three four-dimensional nested input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var ternary4d = require( '@stdlib/array/base/ternary4d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = ones4d( shape );\n* var out = zeros4d( shape );\n*\n* ternary4d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three five-dimensional nested input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = ones5d( shape );\n* var out = zeros5d( shape );\n*\n* ternary5d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ] ]\n*/\nfunction ternary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x2;\n\tvar y2;\n\tvar z2;\n\tvar w2;\n\tvar x3;\n\tvar y3;\n\tvar z3;\n\tvar w3;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tz3 = z[ i4 ];\n\t\tw3 = w[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tw2 = w3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tw1 = w2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tw0 = w1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three five-dimensional nested input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var ternary5d = require( '@stdlib/array/base/ternary5d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = ones5d( shape );\n* var out = zeros5d( shape );\n*\n* ternary5d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar AccessorArray = require( './../../../base/accessor' );\n\n\n// MAIN //\n\n/**\n* Converts an array-like object to a minimal array-like object supporting the accessor protocol.\n*\n* ## Notes\n*\n* - If a provided array-like object already supports the accessor protocol, the function returns the provided array-like object; otherwise, the function wraps the provided value in a object which uses accessors for getting and setting elements.\n*\n* @param {Collection} arr - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {(Collection|AccessorArray)} array-like object supporting the accessor protocol\n*\n* @example\n* var o = toAccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = o.get( 0 );\n* // returns 1\n*/\nfunction toAccessorArray( arr ) {\n\tif ( arr && typeof arr === 'object' && isAccessorArray( arr ) ) {\n\t\treturn arr;\n\t}\n\treturn new AccessorArray( arr );\n}\n\n\n// EXPORTS //\n\nmodule.exports = toAccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array-like object to a minimal array-like object supporting the accessor protocol.\n*\n* @module @stdlib/array/base/to-accessor-array\n*\n* @example\n* var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );\n*\n* var o = toAccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = o.get( 0 );\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional nested input array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction unary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a two-dimensional nested input array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var unary2d = require( '@stdlib/array/base/unary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional nested input array according to a callback function and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function accessor( v ) {\n* return v - 2.0;\n* }\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2dBy( [ x, y ], shape, scale, accessor );\n*\n* console.log( y );\n* // => [ [ -10.0, -10.0 ], [ -10.0, -10.0 ] ]\n*/\nfunction unary2dBy( arrays, shape, fcn, clbk ) {\n\tvar thisArg;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar x;\n\tvar y;\n\tvar v;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tif ( arguments.length > 4 ) {\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, x0[ i0 ], [ i1, i0 ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\ty0[ i0 ] = fcn( v );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to each element retrieved from a two-dimensional nested input array according to a callback function and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary2d-by\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var unary2dBy = require( '@stdlib/array/base/unary2d-by' );\n*\n* function accessor( v ) {\n* return v - 2.0;\n* }\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2dBy( [ x, y ], shape, scale, accessor );\n*\n* console.log( y );\n* // => [ [ -10.0, -10.0 ], [ -10.0, -10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional nested input array and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* unary3d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction unary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a three-dimensional nested input array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var unary3d = require( '@stdlib/array/base/unary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* unary3d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional nested input array and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = zeros4d( shape );\n*\n* unary4d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\nfunction unary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a four-dimensional nested input array and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var unary4d = require( '@stdlib/array/base/unary4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = zeros4d( shape );\n*\n* unary4d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional nested input array and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = zeros5d( shape );\n*\n* unary5d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\nfunction unary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a five-dimensional nested input array and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var unary5d = require( '@stdlib/array/base/unary5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = zeros5d( shape );\n*\n* unary5d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursively applies a unary callback.\n*\n* @private\n* @param {ArrayLikeObject} x - input array\n* @param {ArrayLikeObject} y - output array\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*/\nfunction recurse( x, y, ndims, shape, dim, fcn ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we've reached the innermost dimension:\n\td = dim + 1;\n\n\tif ( d === ndims ) {\n\t\t// Apply the provided callback...\n\t\tfor ( i = 0; i < S; i++ ) {\n\t\t\ty[ i ] = fcn( x[ i ] );\n\t\t}\n\t\treturn;\n\t}\n\t// Continue recursing into the nested arrays...\n\tfor ( i = 0; i < S; i++ ) {\n\t\trecurse( x[ i ], y[ i ], ndims, shape, d, fcn );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional nested input array and assigns results to elements in an n-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = zerosnd( shape );\n*\n* unarynd( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction unarynd( arrays, shape, fcn ) {\n\treturn recurse( arrays[ 0 ], arrays[ 1 ], shape.length, shape, 0, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in an n-dimensional nested input array and assign results to elements in an n-dimensional nested output array.\n*\n* @module @stdlib/array/base/unarynd\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n* var unarynd = require( '@stdlib/array/base/unarynd' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = zerosnd( shape );\n*\n* unarynd( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = unitspace( 0, 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction unitspace( x1, x2 ) {\n\tvar arr;\n\tvar len;\n\tvar i;\n\n\tlen = x2 - x1;\n\tif ( len <= 1 ) {\n\t\treturn [ x1 ];\n\t}\n\tarr = [ x1 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tarr.push( x1 + i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = unitspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1.\n*\n* @module @stdlib/array/base/unitspace\n*\n* @example\n* var unitspace = require( '@stdlib/array/base/unitspace' );\n*\n* var arr = unitspace( 0, 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeroTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array/base/zero-to\n*\n* @example\n* var zeroTo = require( '@stdlib/array/base/zero-to' );\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled2d = require( './../../../base/filled2d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled two-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {ArrayArray} filled array\n*\n* @example\n* var out = zeros2d( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\nfunction zeros2d( shape ) {\n\treturn filled2d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled two-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros2d\n*\n* @example\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* var out = zeros2d( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled3d = require( './../../../base/filled3d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled three-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*/\nfunction zeros3d( shape ) {\n\treturn filled3d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled three-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros3d\n*\n* @example\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* var out = zeros3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled4d = require( './../../../base/filled4d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled four-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*/\nfunction zeros4d( shape ) {\n\treturn filled4d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled four-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros4d\n*\n* @example\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* var out = zeros4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled5d = require( './../../../base/filled5d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled five-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*/\nfunction zeros5d( shape ) {\n\treturn filled5d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled five-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros5d\n*\n* @example\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* var out = zeros5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar fillednd = require( './../../../base/fillednd' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled n-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zerosnd( [ 3 ] );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = zerosnd( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\nfunction zerosnd( shape ) {\n\treturn fillednd( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zerosnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled n-dimensional nested array.\n*\n* @module @stdlib/array/base/zerosnd\n*\n* @example\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* var out = zerosnd( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name AccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor}\n*/\nsetReadOnly( ns, 'AccessorArray', require( './../../base/accessor' ) );\n\n/**\n* @name accessorGetter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor-getter}\n*/\nsetReadOnly( ns, 'accessorGetter', require( './../../base/accessor-getter' ) );\n\n/**\n* @name accessorSetter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor-setter}\n*/\nsetReadOnly( ns, 'accessorSetter', require( './../../base/accessor-setter' ) );\n\n/**\n* @name accessors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessors}\n*/\nsetReadOnly( ns, 'accessors', require( './../../base/accessors' ) );\n\n/**\n* @name arraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/arraylike2object}\n*/\nsetReadOnly( ns, 'arraylike2object', require( './../../base/arraylike2object' ) );\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/array/base/assert}\n*/\nsetReadOnly( ns, 'assert', require( './../../base/assert' ) );\n\n/**\n* @name binary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary2d}\n*/\nsetReadOnly( ns, 'binary2d', require( './../../base/binary2d' ) );\n\n/**\n* @name binary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary3d}\n*/\nsetReadOnly( ns, 'binary3d', require( './../../base/binary3d' ) );\n\n/**\n* @name binary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary4d}\n*/\nsetReadOnly( ns, 'binary4d', require( './../../base/binary4d' ) );\n\n/**\n* @name binary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary5d}\n*/\nsetReadOnly( ns, 'binary5d', require( './../../base/binary5d' ) );\n\n/**\n* @name binarynd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binarynd}\n*/\nsetReadOnly( ns, 'binarynd', require( './../../base/binarynd' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../../base/broadcast-array' ) );\n\n/**\n* @name bbinary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary2d}\n*/\nsetReadOnly( ns, 'bbinary2d', require( './../../base/broadcasted-binary2d' ) );\n\n/**\n* @name bbinary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary3d}\n*/\nsetReadOnly( ns, 'bbinary3d', require( './../../base/broadcasted-binary3d' ) );\n\n/**\n* @name bbinary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary4d}\n*/\nsetReadOnly( ns, 'bbinary4d', require( './../../base/broadcasted-binary4d' ) );\n\n/**\n* @name bbinary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary5d}\n*/\nsetReadOnly( ns, 'bbinary5d', require( './../../base/broadcasted-binary5d' ) );\n\n/**\n* @name bternary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-ternary2d}\n*/\nsetReadOnly( ns, 'bternary2d', require( './../../base/broadcasted-ternary2d' ) );\n\n/**\n* @name bunary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary2d}\n*/\nsetReadOnly( ns, 'bunary2d', require( './../../base/broadcasted-unary2d' ) );\n\n/**\n* @name bunary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary3d}\n*/\nsetReadOnly( ns, 'bunary3d', require( './../../base/broadcasted-unary3d' ) );\n\n/**\n* @name bunary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary4d}\n*/\nsetReadOnly( ns, 'bunary4d', require( './../../base/broadcasted-unary4d' ) );\n\n/**\n* @name bunary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary5d}\n*/\nsetReadOnly( ns, 'bunary5d', require( './../../base/broadcasted-unary5d' ) );\n\n/**\n* @name cartesianPower\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-power}\n*/\nsetReadOnly( ns, 'cartesianPower', require( './../../base/cartesian-power' ) );\n\n/**\n* @name cartesianProduct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-product}\n*/\nsetReadOnly( ns, 'cartesianProduct', require( './../../base/cartesian-product' ) );\n\n/**\n* @name cartesianSquare\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-square}\n*/\nsetReadOnly( ns, 'cartesianSquare', require( './../../base/cartesian-square' ) );\n\n/**\n* @name copy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/copy}\n*/\nsetReadOnly( ns, 'copy', require( './../../base/copy' ) );\n\n/**\n* @name copyIndexed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/copy-indexed}\n*/\nsetReadOnly( ns, 'copyIndexed', require( './../../base/copy-indexed' ) );\n\n/**\n* @name filled\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled}\n*/\nsetReadOnly( ns, 'filled', require( './../../base/filled' ) );\n\n/**\n* @name filledBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled-by}\n*/\nsetReadOnly( ns, 'filledBy', require( './../../base/filled-by' ) );\n\n/**\n* @name filled2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled2d}\n*/\nsetReadOnly( ns, 'filled2d', require( './../../base/filled2d' ) );\n\n/**\n* @name filled2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled2d-by}\n*/\nsetReadOnly( ns, 'filled2dBy', require( './../../base/filled2d-by' ) );\n\n/**\n* @name filled3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled3d}\n*/\nsetReadOnly( ns, 'filled3d', require( './../../base/filled3d' ) );\n\n/**\n* @name filled3dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled3d-by}\n*/\nsetReadOnly( ns, 'filled3dBy', require( './../../base/filled3d-by' ) );\n\n/**\n* @name filled4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled4d}\n*/\nsetReadOnly( ns, 'filled4d', require( './../../base/filled4d' ) );\n\n/**\n* @name filled4dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled4d-by}\n*/\nsetReadOnly( ns, 'filled4dBy', require( './../../base/filled4d-by' ) );\n\n/**\n* @name filled5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled5d}\n*/\nsetReadOnly( ns, 'filled5d', require( './../../base/filled5d' ) );\n\n/**\n* @name filled5dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled5d-by}\n*/\nsetReadOnly( ns, 'filled5dBy', require( './../../base/filled5d-by' ) );\n\n/**\n* @name fillednd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/fillednd}\n*/\nsetReadOnly( ns, 'fillednd', require( './../../base/fillednd' ) );\n\n/**\n* @name filledndBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/fillednd-by}\n*/\nsetReadOnly( ns, 'filledndBy', require( './../../base/fillednd-by' ) );\n\n/**\n* @name flatten\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten}\n*/\nsetReadOnly( ns, 'flatten', require( './../../base/flatten' ) );\n\n/**\n* @name flattenBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten-by}\n*/\nsetReadOnly( ns, 'flattenBy', require( './../../base/flatten-by' ) );\n\n/**\n* @name flatten2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten2d}\n*/\nsetReadOnly( ns, 'flatten2d', require( './../../base/flatten2d' ) );\n\n/**\n* @name flatten2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten2d-by}\n*/\nsetReadOnly( ns, 'flatten2dBy', require( './../../base/flatten2d-by' ) );\n\n/**\n* @name flatten3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten3d}\n*/\nsetReadOnly( ns, 'flatten3d', require( './../../base/flatten3d' ) );\n\n/**\n* @name flatten3dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten3d-by}\n*/\nsetReadOnly( ns, 'flatten3dBy', require( './../../base/flatten3d-by' ) );\n\n/**\n* @name flatten4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten4d}\n*/\nsetReadOnly( ns, 'flatten4d', require( './../../base/flatten4d' ) );\n\n/**\n* @name flatten4dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten4d-by}\n*/\nsetReadOnly( ns, 'flatten4dBy', require( './../../base/flatten4d-by' ) );\n\n/**\n* @name flatten5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten5d}\n*/\nsetReadOnly( ns, 'flatten5d', require( './../../base/flatten5d' ) );\n\n/**\n* @name flatten5dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten5d-by}\n*/\nsetReadOnly( ns, 'flatten5dBy', require( './../../base/flatten5d-by' ) );\n\n/**\n* @name getter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/getter}\n*/\nsetReadOnly( ns, 'getter', require( './../../base/getter' ) );\n\n/**\n* @name incrspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/incrspace}\n*/\nsetReadOnly( ns, 'incrspace', require( './../../base/incrspace' ) );\n\n/**\n* @name last\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/last}\n*/\nsetReadOnly( ns, 'last', require( './../../base/last' ) );\n\n/**\n* @name linspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/linspace}\n*/\nsetReadOnly( ns, 'linspace', require( './../../base/linspace' ) );\n\n/**\n* @name logspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/logspace}\n*/\nsetReadOnly( ns, 'logspace', require( './../../base/logspace' ) );\n\n/**\n* @name mskbinary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskbinary2d}\n*/\nsetReadOnly( ns, 'mskbinary2d', require( './../../base/mskbinary2d' ) );\n\n/**\n* @name mskunary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskunary2d}\n*/\nsetReadOnly( ns, 'mskunary2d', require( './../../base/mskunary2d' ) );\n\n/**\n* @name mskunary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskunary3d}\n*/\nsetReadOnly( ns, 'mskunary3d', require( './../../base/mskunary3d' ) );\n\n/**\n* @name nCartesianProduct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/n-cartesian-product}\n*/\nsetReadOnly( ns, 'nCartesianProduct', require( './../../base/n-cartesian-product' ) );\n\n/**\n* @name oneTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/one-to}\n*/\nsetReadOnly( ns, 'oneTo', require( './../../base/one-to' ) );\n\n/**\n* @name ones\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones}\n*/\nsetReadOnly( ns, 'ones', require( './../../base/ones' ) );\n\n/**\n* @name ones2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones2d}\n*/\nsetReadOnly( ns, 'ones2d', require( './../../base/ones2d' ) );\n\n/**\n* @name ones3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones3d}\n*/\nsetReadOnly( ns, 'ones3d', require( './../../base/ones3d' ) );\n\n/**\n* @name ones4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones4d}\n*/\nsetReadOnly( ns, 'ones4d', require( './../../base/ones4d' ) );\n\n/**\n* @name ones5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones5d}\n*/\nsetReadOnly( ns, 'ones5d', require( './../../base/ones5d' ) );\n\n/**\n* @name onesnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/onesnd}\n*/\nsetReadOnly( ns, 'onesnd', require( './../../base/onesnd' ) );\n\n/**\n* @name setter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/setter}\n*/\nsetReadOnly( ns, 'setter', require( './../../base/setter' ) );\n\n/**\n* @name take\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/take}\n*/\nsetReadOnly( ns, 'take', require( './../../base/take' ) );\n\n/**\n* @name ternary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary2d}\n*/\nsetReadOnly( ns, 'ternary2d', require( './../../base/ternary2d' ) );\n\n/**\n* @name ternary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary3d}\n*/\nsetReadOnly( ns, 'ternary3d', require( './../../base/ternary3d' ) );\n\n/**\n* @name ternary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary4d}\n*/\nsetReadOnly( ns, 'ternary4d', require( './../../base/ternary4d' ) );\n\n/**\n* @name ternary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary5d}\n*/\nsetReadOnly( ns, 'ternary5d', require( './../../base/ternary5d' ) );\n\n/**\n* @name toAccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/to-accessor-array}\n*/\nsetReadOnly( ns, 'toAccessorArray', require( './../../base/to-accessor-array' ) );\n\n/**\n* @name unary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary2d}\n*/\nsetReadOnly( ns, 'unary2d', require( './../../base/unary2d' ) );\n\n/**\n* @name unary2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary2d-by}\n*/\nsetReadOnly( ns, 'unary2dBy', require( './../../base/unary2d-by' ) );\n\n/**\n* @name unary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary3d}\n*/\nsetReadOnly( ns, 'unary3d', require( './../../base/unary3d' ) );\n\n/**\n* @name unary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary4d}\n*/\nsetReadOnly( ns, 'unary4d', require( './../../base/unary4d' ) );\n\n/**\n* @name unary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary5d}\n*/\nsetReadOnly( ns, 'unary5d', require( './../../base/unary5d' ) );\n\n/**\n* @name unarynd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unarynd}\n*/\nsetReadOnly( ns, 'unarynd', require( './../../base/unarynd' ) );\n\n/**\n* @name unitspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unitspace}\n*/\nsetReadOnly( ns, 'unitspace', require( './../../base/unitspace' ) );\n\n/**\n* @name zeroTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zero-to}\n*/\nsetReadOnly( ns, 'zeroTo', require( './../../base/zero-to' ) );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros}\n*/\nsetReadOnly( ns, 'zeros', require( './../../base/zeros' ) );\n\n/**\n* @name zeros2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros2d}\n*/\nsetReadOnly( ns, 'zeros2d', require( './../../base/zeros2d' ) );\n\n/**\n* @name zeros3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros3d}\n*/\nsetReadOnly( ns, 'zeros3d', require( './../../base/zeros3d' ) );\n\n/**\n* @name zeros4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros4d}\n*/\nsetReadOnly( ns, 'zeros4d', require( './../../base/zeros4d' ) );\n\n/**\n* @name zeros5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros5d}\n*/\nsetReadOnly( ns, 'zeros5d', require( './../../base/zeros5d' ) );\n\n/**\n* @name zerosnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zerosnd}\n*/\nsetReadOnly( ns, 'zerosnd', require( './../../base/zerosnd' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array/buffer\n*\n* @example\n* var ctor = require( '@stdlib/array/buffer' );\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasArrayBufferSupport = require( '@stdlib/assert/has-arraybuffer-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Array constructors.\n*\n* @module @stdlib/array/ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar getType = require( './../../dtype' );\nvar ctors = require( './../../ctors' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar format = require( '@stdlib/string/format' );\nvar gcopy = require( '@stdlib/blas/base/gcopy' );\nvar copy = require( './../../base/copy' );\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether a data type is a single-precision complex floating-point number data type.\n*\n* @private\n* @param {string} dtype - data type\n* @returns {boolean} boolean indicating whether a provided data type is a single-precision complex floating-point number data type\n*\n* @example\n* var bool = isComplex64( 'float64' );\n* // returns false\n*\n* @example\n* var bool = isComplex64( 'complex64' );\n* // returns true\n*/\nfunction isComplex64( dtype ) {\n\treturn ( dtype === 'complex64' );\n}\n\n/**\n* Tests whether a data type is a double-precision complex floating-point number data type.\n*\n* @private\n* @param {string} dtype - data type\n* @returns {boolean} boolean indicating whether a provided data type is a double-precision complex floating-point number data type\n*\n* @example\n* var bool = isComplex128( 'float64' );\n* // returns false\n*\n* @example\n* var bool = isComplex128( 'complex128' );\n* // returns true\n*/\nfunction isComplex128( dtype ) {\n\treturn ( dtype === 'complex128' );\n}\n\n\n// MAIN //\n\n/**\n* Converts an array to an array of a different data type.\n*\n* @param {Collection} x - array to convert\n* @param {string} dtype - output data type\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a recognized array data type\n* @returns {(Array|TypedArray|ComplexArray)} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0, 4.0 ];\n*\n* var out = convert( arr, 'float64' );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction convert( x, dtype ) {\n\tvar isc64;\n\tvar ctor;\n\tvar xbuf;\n\tvar obuf;\n\tvar out;\n\tvar len;\n\tvar t;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', x ) );\n\t}\n\t// If the output data type is \"generic\", our task is relatively straightforward...\n\tif ( dtype === 'generic' ) {\n\t\treturn copy( x );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized array data type. Value: `%s`.', dtype ) );\n\t}\n\t// Cache the input array length:\n\tlen = x.length;\n\n\t// Get the input array data type:\n\tt = getType( x );\n\tisc64 = isComplex64( t );\n\n\t// Create the output array:\n\tout = new ctor( len );\n\n\t// As the output data type is not \"generic\", we need to explicitly handle complex number input arrays...\n\tif ( isc64 || isComplex128( t ) ) {\n\t\tif ( isc64 ) {\n\t\t\txbuf = reinterpret64( x, 0 );\n\t\t} else {\n\t\t\txbuf = reinterpret128( x, 0 );\n\t\t}\n\t\t// Check whether the output data type is a complex number data type...\n\t\tif ( isComplex64( dtype ) ) { // cmplx => cmplx\n\t\t\tobuf = reinterpret64( out, 0 );\n\t\t\tgcopy( len*2, xbuf, 1, obuf, 1 );\n\t\t\treturn out;\n\t\t}\n\t\tif ( isComplex128( dtype ) ) { // cmplx => cmplx\n\t\t\tobuf = reinterpret128( out, 0 );\n\t\t\tgcopy( len*2, xbuf, 1, obuf, 1 );\n\t\t\treturn out;\n\t\t}\n\t\t// We assume that the output data type is a real number data type, given that we're looking to convert a provided complex number array; in which case, we'll only extract the real components from the complex number input array...\n\t\tgcopy( len, xbuf, 2, out, 1 ); // cmplx => real\n\t\treturn out;\n\t}\n\t// Check whether we need to explicitly handle complex number output arrays...\n\tisc64 = isComplex64( dtype );\n\tif ( isc64 || isComplex128( dtype ) ) {\n\t\tif ( isc64 ) {\n\t\t\tobuf = reinterpret64( out, 0 );\n\t\t} else {\n\t\t\tobuf = reinterpret128( out, 0 );\n\t\t}\n\t\t// We assume that the input data type is a real number data type, given that we're looking to convert to a complex number array; in which case, we'll only set the real components... (WARNING: we're assuming that the output array has been zero-initialized! The imaginary components should be zero!)\n\t\tgcopy( len, x, 1, obuf, 2 ); // real => cmplx\n\t\treturn out;\n\t}\n\t// At this point, we're no longer handling complex number arrays, so we'll just assume that we can perform a straightforward copy...\n\tgcopy( len, x, 1, out, 1 ); // note: `gcopy` is assumed to support arrays using accessors\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = convert;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array to an array of a different data type.\n*\n* @module @stdlib/array/convert\n*\n* @example\n* var convert = require( '@stdlib/array/convert' );\n*\n* var arr = [ 1.0, 2.0, 3.0, 4.0 ];\n*\n* var out = convert( arr, 'float64' );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar getType = require( './../../dtype' );\nvar convert = require( './../../convert' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts an array to the same data type as a second input array.\n*\n* @param {Collection} x - array to convert\n* @param {(Array|TypedArray|ComplexArray)} y - array having the desired output data type\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must have a recognized data type\n* @returns {(Array|TypedArray|ComplexArray)} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0 ];\n* var y = new Float64Array( 0 );\n*\n* var out = convertSame( x, y );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction convertSame( x, y ) {\n\tvar dtype = getType( y );\n\tif ( dtype === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a recognized/supported data type. Type: `%s`. Value: `%s`.', dtype, y ) );\n\t}\n\treturn convert( x, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = convertSame;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array to the same data type as a second input array.\n*\n* @module @stdlib/array/convert-same\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var convertSame = require( '@stdlib/array/convert-same' );\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0 ];\n* var y = new Float64Array( 0 );\n*\n* var out = convertSame( x, y );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array/dataview\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var DataView = require( '@stdlib/array/dataview' );\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nvar hasDataViewSupport = require( '@stdlib/assert/has-dataview-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isInteger = require( '@stdlib/assert/is-integer' );\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isObject = require( '@stdlib/assert/is-object' );\nvar format = require( '@stdlib/string/format' );\nvar floor = require( '@stdlib/math/base/special/floor' );\nvar round = require( '@stdlib/math/base/special/round' );\nvar ceil = require( '@stdlib/math/base/special/ceil' );\n\n\n// VARIABLES //\n\nvar timestamp = /^\\d{10}$|^\\d{13}$/;\nvar rounders = [ 'floor', 'ceil', 'round' ];\n\n\n// FUNCTIONS //\n\n/**\n* Validates a date parameter.\n*\n* @private\n* @param {*} value - value to be validated\n* @param {string} name - name to be used in error messages\n* @throws {TypeError} value must either be a date string, Date object, Unix timestamp, or JavaScript timestamp\n* @throws {Error} numeric date must be either a Unix or JavaScript timestamp\n* @returns {Date} validated date\n*/\nfunction validDate( value, name ) {\n\tvar type;\n\n\ttype = typeof value;\n\tif ( type === 'string' ) {\n\t\tvalue = Date.parse( value );\n\t\tif ( value !== value ) {\n\t\t\tthrow new Error( format( 'invalid argument. Unable to parse %s date.', name.toLowerCase() ) );\n\t\t}\n\t\tvalue = new Date( value );\n\t}\n\tif ( type === 'number' ) {\n\t\tif ( !timestamp.test( value ) ) {\n\t\t\tthrow new Error( format( 'invalid argument. Numeric %s date must be either a Unix or JavaScript timestamp.', name.toLowerCase() ) );\n\t\t}\n\t\tif ( value.toString().length === 10 ) {\n\t\t\tvalue *= 1000; // sec to ms\n\t\t}\n\t\tvalue = new Date( value );\n\t}\n\tif ( !(value instanceof Date) ) {\n\t\tthrow new TypeError( format( 'invalid argument. %s date must either be a date string, Date object, Unix timestamp, or JavaScript timestamp.', name ) );\n\t}\n\treturn value;\n}\n\n\n// MAIN //\n\n/**\n* Generates an array of linearly spaced dates.\n*\n* @param {(Date|number|string)} start - start time as either a `Date` object, Unix timestamp, JavaScript timestamp, or date string\n* @param {(Date|number|string)} stop - stop time as either a `Date` object, Unix timestamp, JavaScript timestamp, or date string\n* @param {number} [length] - output array length (default: 100)\n* @param {Object} [options] - function options\n* @param {string} [options.round] - specifies how sub-millisecond times should be rounded: [ 'floor', 'ceil', 'round' ] (default: 'floor' )\n* @throws {TypeError} length argument must a positive integer\n* @throws {Error} must provide valid options\n* @returns {Array} array of dates\n*\n* @example\n* var stop = '2014-12-02T07:00:54.973Z';\n* var start = new Date( stop ) - 60000;\n*\n* var arr = datespace( start, stop, 6 );\n* // returns [...]\n*\n* @example\n* // Equivalent of Math.ceil():\n* var arr = datespace( 1417503655000, 1417503655001, 3, { 'round': 'ceil' } );\n* // returns [...]\n*\n* // Equivalent of Math.round():\n* arr = datespace( 1417503655000, 1417503655001, 3, { 'round': 'round' } );\n* // returns [...]\n*/\nfunction datespace( start, stop, length, options ) {\n\tvar opts;\n\tvar len;\n\tvar flg;\n\tvar arr;\n\tvar end;\n\tvar fcn;\n\tvar tmp;\n\tvar d;\n\tvar i;\n\n\tlen = 100;\n\tflg = true;\n\topts = {\n\t\t'round': 'floor'\n\t};\n\tstart = validDate( start, 'Start' );\n\tstop = validDate( stop, 'Stop' );\n\tif ( arguments.length > 2 ) {\n\t\tif ( arguments.length === 3 ) {\n\t\t\tif ( isObject( length ) ) {\n\t\t\t\topts = length;\n\t\t\t} else {\n\t\t\t\tlen = length;\n\n\t\t\t\t// Turn off checking the options object...\n\t\t\t\tflg = false;\n\t\t\t}\n\t\t} else {\n\t\t\topts = options;\n\t\t\tlen = length;\n\t\t}\n\t\tif ( len === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( !isInteger( len ) || len < 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a positive integer. Value: `%s`.', len ) );\n\t\t}\n\t\tif ( flg ) {\n\t\t\tif ( !isObject( opts ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t\t}\n\t\t\tif ( hasOwnProp( opts, 'round' ) ) {\n\t\t\t\tif ( !isString( opts.round ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'round', opts.round ) );\n\t\t\t\t}\n\t\t\t\tif ( rounders.indexOf( opts.round ) === -1 ) {\n\t\t\t\t\tthrow new Error( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'round', rounders.join( '\", \"' ), opts.round ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tswitch ( opts.round ) {\n\tcase 'round':\n\t\tfcn = round;\n\t\tbreak;\n\tcase 'ceil':\n\t\tfcn = ceil;\n\t\tbreak;\n\tcase 'floor':\n\tdefault:\n\t\tfcn = floor;\n\t\tbreak;\n\t}\n\n\t// Calculate the increment...\n\tend = len - 1;\n\td = ( stop.getTime() - start.getTime() ) / end;\n\n\t// Build the output array...\n\tarr = new Array( len );\n\ttmp = start;\n\tarr[ 0 ] = tmp;\n\ttmp = tmp.getTime();\n\tfor ( i = 1; i < end; i++ ) {\n\t\ttmp += d;\n\t\tarr[ i ] = new Date( fcn( tmp ) );\n\t}\n\tarr[ end ] = stop;\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = datespace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate an array of linearly spaced dates.\n*\n* @module @stdlib/array/datespace\n*\n* @example\n* var datespace = require( '@stdlib/array/datespace' );\n*\n* var stop = '2014-12-02T07:00:54.973Z';\n* var start = new Date( stop ) - 60000;\n*\n* var arr = datespace( start, stop, 6 );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"generic\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\",\n \"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'generic', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types.\n*\n* @module @stdlib/array/dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'generic', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar isUint8Array = require( '@stdlib/assert/is-uint8array' );\n\n\n// MAIN //\n\n/**\n* Checks whether an environment supports Node.js buffer instances which inherit from `Uint8Array`.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment supports Node.js buffer instances inheriting from `Uint8Array`\n*\n* @example\n* var bool = check();\n* // returns \n*/\nfunction check() {\n\tvar buf = allocUnsafe( 1 );\n\treturn isUint8Array( buf );\n}\n\n\n// EXPORTS //\n\nmodule.exports = check;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructors.\n*\n* @module @stdlib/array/typed-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar ctors = require( './../../typed-ctors' );\nvar zeros = require( './../../base/zeros' );\nvar bytesPerElement = require( '@stdlib/ndarray/base/bytes-per-element' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tvar nbytes;\n\tvar offset;\n\tvar dtype;\n\tvar ctor;\n\tvar buf;\n\tvar out;\n\tvar nb;\n\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn zeros( length );\n\t}\n\tnbytes = bytesPerElement( dtype );\n\tif ( nbytes === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type. Value: `%s`.', dtype ) );\n\t}\n\t// Resolve typed array constructor:\n\tctor = ctors( dtype );\n\n\t// Compute the number of bytes to allocate:\n\tnb = nbytes * length;\n\tif ( dtype === 'complex128' ) {\n\t\tnb += 8; // Note: need to allocate additional bytes to ensure alignment\n\t}\n\t// Allocate binary buffer:\n\tbuf = allocUnsafe( nb );\n\n\t// Resolve the byte offset:\n\toffset = buf.byteOffset;\n\tif ( dtype === 'complex128' ) {\n\t\tif ( !isNonNegativeInteger( offset/nbytes ) ) {\n\t\t\toffset += 8; // Note: ensure alignment\n\t\t}\n\t}\n\t// Reinterpret the binary buffer:\n\tout = new ctor( buf.buffer, offset, length );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar ctors = require( './../../ctors' );\nvar gzeros = require( './../../base/zeros' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zeros( length ) {\n\tvar dtype;\n\tvar ctor;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn gzeros( length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ctor( length ); // WARNING: we assume that, apart from 'generic', the constructors for supported array data types are zero-filled by default\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled array having a specified length.\n*\n* @module @stdlib/array/zeros\n*\n* @example\n* var zeros = require( '@stdlib/array/zeros' );\n*\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var zeros = require( '@stdlib/array/zeros' );\n*\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar zeros = require( './../../zeros' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @private\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tif ( arguments.length > 1 ) {\n\t\treturn zeros( length, arguments[ 1 ] );\n\t}\n\treturn zeros( length );\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an uninitialized array having a specified length.\n*\n* @module @stdlib/array/empty\n*\n* @example\n* var empty = require( '@stdlib/array/empty' );\n*\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var empty = require( '@stdlib/array/empty' );\n*\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\n\n// MODULES //\n\nvar isBufferUint8Array = require( './is_buffer_uint8array.js' );\nvar main = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar empty;\nif ( isBufferUint8Array() ) {\n\tempty = main;\n} else {\n\tempty = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar empty = require( './../../empty' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\nfunction emptyLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn empty( x.length, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = emptyLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an uninitialized array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/empty-like\n*\n* @example\n* var emptyLike = require( '@stdlib/array/empty-like' );\n*\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var emptyLike = require( '@stdlib/array/empty-like' );\n*\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar ctors = require( './../../ctors' );\nvar gfill = require( '@stdlib/blas/ext/base/gfill' );\nvar filled = require( './../../base/filled' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar iterLength = require( '@stdlib/iter/length' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Creates a filled \"generic\" array from an iterator.\n*\n* @private\n* @param {Iterator} it - iterator\n* @param {*} value - fill value\n* @returns {Array} filled array\n*/\nfunction filledIterator( it, value ) {\n\tvar arr;\n\tvar v;\n\n\tarr = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n/**\n* Fills an array exposing accessors for getting and setting array elements.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {*} value - fill value\n* @returns {Collection} input array\n*/\nfunction filledAccessors( arr, value ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tarr.set( value, i );\n\t}\n\treturn arr;\n}\n\n\n// MAIN //\n\n/**\n* Creates a filled array.\n*\n* @param {*} [value] - fill value\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer|Iterable)} [arg] - a length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @throws {TypeError} must provide a length, typed array, array-like object, buffer, or iterable\n* @throws {Error} creating a generic array from an `ArrayBuffer` is not supported\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = filledarray();\n* // returns \n*\n* @example\n* var arr = filledarray( 1.0, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, 2, 'generic' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, [ 0.5, 0.5 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1, [ 5, -3 ], 'int32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var arr1 = filledarray( 2, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1.0, arr1 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr1 = filledarray( 2, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1, arr1, 'uint32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 'float32' );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8 );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1.0, buf, 8, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1, buf, 8, 2, 'int32' );\n* // returns [ 1, 1 ]\n*/\nfunction filledarray() {\n\tvar value;\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arr;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tnargs -= 1;\n\tif ( nargs >= 0 && isString( arguments[ nargs ] ) ) {\n\t\tdtype = arguments[ nargs ];\n\t\tnargs -= 1;\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( dtype === 'generic' ) {\n\t\tif ( nargs <= 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tvalue = arguments[ 0 ];\n\t\targ = arguments[ 1 ];\n\t\tif ( nargs === 1 ) {\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tlen = arg;\n\t\t\t} else if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t}\n\t\t\tif ( len !== void 0 ) {\n\t\t\t\treturn filled( value, len );\n\t\t\t}\n\t\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t\t}\n\t\t\tif ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\treturn filledIterator( arg, value );\n\t\t\t}\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) { // length || array-like || ArrayBuffer || iterable\n\t\targ = arguments[ 1 ];\n\t\tif ( isCollection( arg ) ) {\n\t\t\tarr = new ctor( arg.length );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isNonNegativeInteger( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tarr = new ctor( iterLength( arg ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else if ( nargs === 2 ) {\n\t\tarr = new ctor( arguments[1], arguments[2] ); // (ArrayBuffer, byteOffset)\n\t} else {\n\t\tarr = new ctor( arguments[1], arguments[2], arguments[3] ); // (ArrayBuffer, byteOffset, length)\n\t}\n\tif ( arr.length > 0 ) {\n\t\tif ( /^complex/.test( dtype ) ) {\n\t\t\tfilledAccessors( arr, arguments[ 0 ] );\n\t\t} else {\n\t\t\tgfill( arr.length, arguments[ 0 ], arr, 1 );\n\t\t}\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array.\n*\n* @module @stdlib/array/filled\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray();\n* // returns \n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2, 'generic' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, [ 0.5, 0.5 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1, [ 5, -3 ], 'int32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr1 = filledarray( 10, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1.0, arr1 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr1 = filledarray( 1, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 2, arr1, 'uint32' );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 'float32' );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8 );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1.0, buf, 8, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1, buf, 8, 2, 'int32' );\n* // returns [ 1, 1 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar ctors = require( './../../ctors' );\nvar gfillBy = require( '@stdlib/blas/ext/base/gfill-by' );\nvar filledArray = require( './../../base/filled-by' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar iterLength = require( '@stdlib/iter/length' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\nvar DEFAULT_DTYPE = 'float64';\n\n\n// FUNCTIONS //\n\n/**\n* Creates a filled \"generic\" array from an iterator.\n*\n* @private\n* @param {Iterable} it - iterator\n* @param {Callback} clbk - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {Array} filled array\n*/\nfunction filledArrayIterator( it, clbk, thisArg ) {\n\tvar arr;\n\tvar i;\n\tvar v;\n\n\tarr = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tarr.push( clbk.call( thisArg, i ) );\n\t}\n\treturn arr;\n}\n\n/**\n* Fills an array exposing accessors for getting and setting array elements.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {Callback} clbk - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {Collection} input array\n*/\nfunction filledAccessors( arr, clbk, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tarr.set( clbk.call( thisArg, i ), i );\n\t}\n\treturn arr;\n}\n\n\n// MAIN //\n\n/**\n* Creates a filled array according to a provided callback function.\n*\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer|Iterable)} [arg] - a length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @param {Callback} [clbk] - callback to invoke\n* @param {*} [thisArg] - callback execution context\n* @throws {TypeError} must provide a recognized data type\n* @throws {TypeError} must provide a length, typed array, array-like object, buffer, or iterable\n* @throws {TypeError} callback argument must be a function.\n* @throws {Error} creating a generic array from an `ArrayBuffer` is not supported\n* @returns {(TypedArray|Array)} array or typed array\n*\n* @example\n* var arr = filledarrayBy();\n* // returns \n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'generic', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( [ 0.5, 0.5 ], clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1;\n* }\n*\n* var arr = filledarrayBy( [ 5, -3 ], 'int32', clbk );\n* // returns [ 1, 1 ]\n*\n* @example\n* function clbk1() {\n* return 10;\n* }\n*\n* function clbk2() {\n* return 1.0;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, clbk2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk1() {\n* return 1.0;\n* }\n*\n* function clbk2() {\n* return 2;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, 'uint32', clbk2 );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 'float32', clbk );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, clbk );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, 'int32', clbk );\n* // returns [ 1, 1 ]\n*/\nfunction filledarrayBy() {\n\tvar thisArg;\n\tvar nargs;\n\tvar dtype;\n\tvar clbk;\n\tvar ctor;\n\tvar arr;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\n\t// If we weren't provided any arguments, return an empty array...\n\tif ( nargs === 0 ) {\n\t\tctor = ctors( DEFAULT_DTYPE );\n\t\treturn new ctor( 0 );\n\t}\n\t// Check if we were provided a dtype as the first argument...\n\tdtype = arguments[ 0 ];\n\tif ( isString( dtype ) ) {\n\t\t// Invoking this function with arguments `f( dtype, clbk[, thisArg] )` is not allowed (otherwise, we'd need to also allow `f( clbk[, thisArg] )`)...\n\t\tif ( nargs > 1 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t\t}\n\t\tctor = ctors( dtype );\n\t\tif ( ctor === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t\t}\n\t\t// Return an empty array having the specified dtype:\n\t\treturn new ctor( 0 );\n\t}\n\t// For all other supported invocations, we need at least two arguments...\n\tif ( nargs < 2 ) {\n\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t}\n\t// At this point, we need to do some argument juggling...\n\tnargs -= 1; // henceforth, the number of available arguments is `nargs+1`\n\n\t// Determine whether the last argument is a callback or \"this\" context...\n\tif ( isFunction( arguments[ nargs ] ) ) {\n\t\t// If the last argument is a function, we need to check the next-to-last argument, and, if the next-to-last argument is a function, assume that the next-to-last argument is the callback and the last argument is a \"this\" context...\n\t\tif ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\t\tthisArg = arguments[ nargs ];\n\t\t\tnargs -= 1;\n\t\t\tclbk = arguments[ nargs ];\n\n\t\t\t// Check if we were provided only a callback and a \"this\" context..\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t\t\t}\n\t\t} else {\n\t\t\t// \"this\" context is left undefined...\n\t\t\tclbk = arguments[ nargs ];\n\t\t}\n\t}\n\t// If we were provided 3 or more arguments and the last argument was not a function, assume that we were provided a callback and a \"this\" context...\n\telse if ( nargs >= 2 ) {\n\t\tthisArg = arguments[ nargs ];\n\t\tnargs -= 1;\n\t\tclbk = arguments[ nargs ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// If were were only provided 2 arguments and the last argument was not a function, we've been provided an insufficient number of arguments...\n\telse {\n\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t}\n\t// Now that we've processed the callback arguments, let's continue working backward to see if we've been provided a `dtype` argument...\n\tnargs -= 1;\n\tif ( nargs >= 0 && isString( arguments[ nargs ] ) ) {\n\t\tdtype = arguments[ nargs ];\n\t\tnargs -= 1;\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\t// At this point, we've resolved the output array data type, and now we can actually create the output array...\n\tif ( dtype === 'generic' ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( nargs === 0 ) {\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tlen = arg;\n\t\t\t} else if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t}\n\t\t\tif ( len !== void 0 ) {\n\t\t\t\treturn filledArray( len, clbk, thisArg );\n\t\t\t}\n\t\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t\t}\n\t\t\tif ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\treturn filledArrayIterator( arg, clbk, thisArg );\n\t\t\t}\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t}\n\tif ( nargs === 0 ) { // length || array-like || ArrayBuffer || iterable\n\t\targ = arguments[ 0 ];\n\t\tif ( isCollection( arg ) ) {\n\t\t\tarr = new ctor( arg.length );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isNonNegativeInteger( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tarr = new ctor( iterLength( arg ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else if ( nargs === 1 ) {\n\t\tarr = new ctor( arguments[0], arguments[1] ); // (ArrayBuffer, byteOffset)\n\t} else {\n\t\tarr = new ctor( arguments[0], arguments[1], arguments[2] ); // (ArrayBuffer, byteOffset, length)\n\t}\n\tif ( arr.length > 0 ) {\n\t\tif ( /^complex/.test( dtype ) ) {\n\t\t\tfilledAccessors( arr, clbk, thisArg );\n\t\t} else {\n\t\t\tgfillBy( arr.length, arr, 1, callback );\n\t\t}\n\t}\n\treturn arr;\n\n\t/**\n\t* Callback which wraps a provided callback and is invoked for each array element.\n\t*\n\t* @private\n\t* @param {*} value - element value\n\t* @param {NonNegativeInteger} aidx - array index\n\t* @param {NonNegativeInteger} sidx - strided index\n\t* @param {Collection} array - input array/collection\n\t* @returns {*} callback return value\n\t*/\n\tfunction callback( value, aidx ) {\n\t\treturn clbk.call( thisArg, aidx );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledarrayBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array according to a provided callback function.\n*\n* @module @stdlib/array/filled-by\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* var arr = filledarrayBy();\n* // returns \n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'generic', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( [ 0.5, 0.5 ], clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var arr = filledarrayBy( [ 5, -3 ], 'int32', clbk );\n* // returns [ 1, 1 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk1() {\n* return 10;\n* }\n*\n* function clbk2() {\n* return 1.0;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, clbk2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk1() {\n* return 1.0;\n* }\n*\n* function clbk2() {\n* return 2;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, 'uint32', clbk2 );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 'float32', clbk );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, clbk );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, 'int32', clbk );\n* // returns [ 1, 1 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isIteratorLike = require( '@stdlib/assert/is-iterator-like' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar accessorSetter = require( './../../base/accessor-setter' );\nvar setter = require( './../../base/setter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates (or fills) an array from an iterator.\n*\n* @param {Iterator} iterator - source iterator\n* @param {Collection} [out] - output array\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} iterator argument must be an iterator\n* @throws {TypeError} callback argument must be a function\n* @returns {Collection} output array\n*\n* @example\n* var randu = require( '@stdlib/random/iter/randu' );\n*\n* var iter = randu({\n* 'iter': 10\n* });\n*\n* var arr = iterator2array( iter );\n* // returns \n*/\nfunction iterator2array() {\n\tvar iterator;\n\tvar thisArg;\n\tvar fcn;\n\tvar out;\n\tvar len;\n\tvar set;\n\tvar dt;\n\tvar i;\n\tvar v;\n\n\titerator = arguments[ 0 ];\n\tif ( arguments.length > 1 ) {\n\t\tif ( isCollection( arguments[ 1 ] ) ) {\n\t\t\tout = arguments[ 1 ];\n\t\t\tif ( arguments.length > 2 ) {\n\t\t\t\tfcn = arguments[ 2 ];\n\t\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t\t}\n\t\t\t\tthisArg = arguments[ 3 ];\n\t\t\t}\n\t\t} else {\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t}\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Iterator argument must be an iterator protocol-compliant object. Value: `%s`.', iterator ) );\n\t}\n\ti = -1;\n\tif ( out === void 0 ) {\n\t\tout = [];\n\t\tif ( fcn ) {\n\t\t\twhile ( true ) {\n\t\t\t\ti += 1;\n\t\t\t\tv = iterator.next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tout.push( fcn.call( thisArg, v.value, i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\twhile ( true ) {\n\t\t\tv = iterator.next();\n\t\t\tif ( v.done ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tout.push( v.value );\n\t\t}\n\t\treturn out;\n\t}\n\tlen = out.length;\n\tdt = dtype( out );\n\tif ( isAccessorArray( out ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tif ( fcn ) {\n\t\twhile ( i < len-1 ) {\n\t\t\ti += 1;\n\t\t\tv = iterator.next();\n\t\t\tif ( v.done ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tset( out, i, fcn.call( thisArg, v.value, i ) );\n\t\t}\n\t\treturn out;\n\t}\n\twhile ( i < len-1 ) {\n\t\ti += 1;\n\t\tv = iterator.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tset( out, i, v.value );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iterator2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create (or fill) an array from an iterator.\n*\n* @module @stdlib/array/from-iterator\n*\n* @example\n* var randu = require( '@stdlib/random/iter/randu' );\n* var iterator2array = require( '@stdlib/array/from-iterator' );\n*\n* var iter = randu({\n* 'iter': 10\n* });\n*\n* var arr = iterator2array( iter );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar ctors = require( './../../ctors' );\nvar afill = require( './../../base/filled' );\nvar gfill = require( '@stdlib/blas/ext/base/gfill' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {*} value - fill value\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = full( 2, 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = full( 2, 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction full( length, value ) {\n\tvar dtype;\n\tvar ctor;\n\tvar out;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tdtype = arguments[ 2 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn afill( value, length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tout = new ctor( length );\n\n\t// TODO: revisit the following, as using `gfill` is not the most performant, especially for large arrays. We have two options: (1) use a native add-on which delegates to an appropriate C function which performs the loop or (2) use @stdlib/blas/ext/base/(d|s|c|z)fill functions which use native add-ons. The latter option is not great, as we only get perf boosts for large arrays for a select number of dtypes. The former option is more work, as we may need to write a bespoke add-on for handling the argument signature and the various types that `value` can assume (e.g., number, complex, etc). If we had a generic strided `copy` package with an add-on, we could wrap the value as a single element strided array with a stride of `0` and copy from `x` to `y`, and thus would not need to write a bespoke add-on. Note, however, that calling into a native add-on is not free. For shorter arrays, we'll likely observe a perf hit in Node.js. For now, we focus on just getting something working...\n\tgfill( length, value, out, 1 );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = full;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array having a specified length.\n*\n* @module @stdlib/array/full\n*\n* @example\n* var full = require( '@stdlib/array/full' );\n*\n* var arr = full( 2, 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var full = require( '@stdlib/array/full' );\n*\n* var arr = full( 2, 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar format = require( '@stdlib/string/format' );\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\n\n\n// MAIN //\n\n/**\n* Creates a filled array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {number} value - fill value\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} third argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction fullLike( x, value ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tdt = arguments[ 2 ];\n\t}\n\tif ( typeof value === 'number' ) {\n\t\tif ( dt === 'complex128' ) {\n\t\t\tv = new Complex128( value, 0.0 );\n\t\t} else if ( dt === 'complex64' ) {\n\t\t\tv = new Complex64( value, 0.0 );\n\t\t} else {\n\t\t\tv = value;\n\t\t}\n\t} else {\n\t\tv = value;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fullLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/full-like\n*\n* @example\n* var fullLike = require( '@stdlib/array/full-like' );\n*\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var fullLike = require( '@stdlib/array/full-like' );\n*\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ceil = require( '@stdlib/math/base/special/ceil' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar format = require( '@stdlib/string/format' );\nvar MAX_LENGTH = require( '@stdlib/constants/uint32/max' );\nvar gen = require( './../../base/incrspace' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array using a provided increment.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @param {number} [increment=1] - increment\n* @throws {TypeError} first argument must be numeric\n* @throws {TypeError} second argument must be numeric\n* @throws {TypeError} third argument must be numeric\n* @throws {RangeError} length of created array must be less than `4294967295` (`2**32 - 1`)\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\nfunction incrspace( x1, x2, increment ) {\n\tvar len;\n\tvar inc;\n\tif ( !isNumber( x1 ) || isnan( x1 ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Start must be numeric. Value: `%s`.', x1 ) );\n\t}\n\tif ( !isNumber( x2 ) || isnan( x2 ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Stop must be numeric. Value: `%s`.', x2 ) );\n\t}\n\tif ( arguments.length < 3 ) {\n\t\tinc = 1;\n\t} else {\n\t\tinc = increment;\n\t\tif ( !isNumber( inc ) || isnan( inc ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Increment must be numeric. Value: `%s`.', inc ) );\n\t\t}\n\t}\n\tlen = ceil( ( x2-x1 ) / inc );\n\tif ( len > MAX_LENGTH ) {\n\t\tthrow new RangeError( 'invalid arguments. Generated array exceeds maximum array length.' );\n\t}\n\treturn gen( x1, x2, inc );\n}\n\n\n// EXPORTS //\n\nmodule.exports = incrspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array using a provided increment.\n*\n* @module @stdlib/array/incrspace\n*\n* @example\n* var incrspace = require( '@stdlib/array/incrspace' );\n*\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Complex128Array = require( './../../complex128' );\nvar Complex64Array = require( './../../complex64' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'complex128': Complex128Array,\n\t'complex64': Complex64Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a floating-point typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Floating-point typed array constructors.\n*\n* @module @stdlib/array/typed-float-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-float-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced array over a specified interval.\n*\n* @private\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Array} linearly spaced array\n*\n* @example\n* var arr = linspace( 0, 100, 6, true );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*\n* @example\n* var arr = linspace( 0, 100, 5, false );\n* // returns [ 0, 20, 40, 60, 80 ]\n*/\nfunction linspace( start, stop, len, endpoint ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\treturn [ stop ];\n\t\t}\n\t\treturn [ start ];\n\t}\n\tarr = [ start ];\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( start + (d*i) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tarr.push( stop );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number array over a specified interval.\n*\n* @private\n* @param {string} dt1 - start value data type\n* @param {(number|ComplexLike)} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Array} linearly spaced array\n*/\nfunction linspace( dt1, start, dt2, stop, len, endpoint ) {\n\tvar cmplx;\n\tvar isf32;\n\tvar arr;\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar re;\n\tvar im;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\tisf32 = 0;\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Determine which complex number constructor to use according to type promotion rules:\n\tif ( isf32 === 2 ) {\n\t\tcmplx = Complex64;\n\t} else {\n\t\tcmplx = Complex128;\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\treturn [ new cmplx( re2, im2 ) ];\n\t\t}\n\t\treturn [ new cmplx( re1, im1 ) ];\n\t}\n\tarr = [ new cmplx( re1, im1 ) ];\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tre = re1 + (dr*i);\n\t\tim = im1 + (di*i);\n\t\tarr.push( new cmplx( re, im ) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tarr.push( new cmplx( re2, im2 ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns the results to a provided output array.\n*\n* @private\n* @param {TypedArray} out - output array\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {TypedArray} linearly spaced array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 6 );\n* var arr = linspace( out, 0, 100, out.length, true );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 5 );\n* var arr = linspace( out, 0, 100, out.length, false );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction linspace( out, start, stop, len, endpoint ) {\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tout[ 0 ] = stop;\n\t\t} else {\n\t\t\tout[ 0 ] = start;\n\t\t}\n\t\treturn out;\n\t}\n\tout[ 0 ] = start;\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tout[ i ] = start + (d*i);\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tout[ N ] = stop;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number sequence over a specified interval and assigns the results to a provided output array strided view.\n*\n* @private\n* @param {(Float32Array|Float64Array)} out - output array strided view\n* @param {string} dt1 - start value data type\n* @param {(number|ComplexLike)} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {(Float32Array|Float64Array)} complex number array view\n*/\nfunction linspace( out, dt1, start, dt2, stop, len, endpoint ) {\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tout[ 0 ] = re2;\n\t\t\tout[ 1 ] = im2;\n\t\t} else {\n\t\t\tout[ 0 ] = re1;\n\t\t\tout[ 1 ] = im1;\n\t\t}\n\t\treturn out;\n\t}\n\tout[ 0 ] = re1;\n\tout[ 1 ] = im1;\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate linearly spaced complex numbers:\n\tj = 2;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tout[ j ] = re1 + (dr*i);\n\t\tout[ j+1 ] = im1 + (di*i);\n\t\tj += 2;\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tout[ j ] = re2;\n\t\tout[ j+1 ] = im2;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {string} [options.dtype] - output array data type\n* @param {boolean} [options.endpoint] - boolean indicating whether the `stop` value in the output array\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'endpoint': true\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !isString( opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'dtype', opts.dtype ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'endpoint' ) ) {\n\t\topts.endpoint = options.endpoint;\n\t\tif ( !isBoolean( opts.endpoint ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'endpoint', opts.endpoint ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = validate;\n", "{\n \"endpoint\": true\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar dtype = require( '@stdlib/complex/dtype' );\nvar ctors = require( './../../typed-float-ctors' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\nvar genreal = require( './generic_real.js' );\nvar gencmplx = require( './generic_complex.js' );\nvar typedreal = require( './typed_real.js' );\nvar typedcmplx = require( './typed_complex.js' );\nvar validate = require( './validate.js' );\nvar defaults = require( './defaults.json' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced array over a specified interval.\n*\n* @param {(number|ComplexLike)} start - start of interval\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {Options} [options] - options\n* @param {string} [options.dtype] - output array data type\n* @param {boolean} [options.endpoint=true] - boolean indicating whether to include the `stop` value in the output array\n* @throws {TypeError} first argument must be either a real or complex number\n* @throws {TypeError} second argument must be either a real or complex number\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {TypeError} last argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} the output array data type must be a complex number data type or \"generic\" when either `start` or `stop` is a complex number\n* @throws {TypeError} the output array data type must be a real or complex floating-point number data type or \"generic\"\n* @returns {(Array|TypedArray|ComplexArray)} linearly spaced array\n*\n* @example\n* var arr = linspace( 0, 100, 6, {\n* 'dtype': 'generic'\n* });\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\nfunction linspace( start, stop, len ) {\n\tvar opts;\n\tvar ctor;\n\tvar err;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar flg;\n\n\tif ( typeof start === 'object' ) {\n\t\tdt1 = dtype( start );\n\t\tif ( dt1 === null ) {\n\t\t\tif ( !isComplexLike( start ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t\t\t}\n\t\t\tdt1 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( start ) || isnan( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t} else {\n\t\tdt1 = 'float64';\n\t}\n\tif ( typeof stop === 'object' ) {\n\t\tdt2 = dtype( stop );\n\t\tif ( dt2 === null ) {\n\t\t\tif ( !isComplexLike( stop ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t\t\t}\n\t\t\tdt2 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( stop ) || isnan( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t} else {\n\t\tdt2 = 'float64';\n\t}\n\tif ( !isNonNegativeInteger( len ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', len ) );\n\t}\n\topts = {\n\t\t'endpoint': defaults.endpoint\n\t};\n\tif ( dt1 === dt2 ) {\n\t\topts.dtype = dt1; // one of 'float64' || 'complex64' || 'complex128'\n\t} else {\n\t\t// If dtypes are different, then at least one is a complex number. According to type promotion rules, for all possible dtype permutations, the default output data type should be 'complex128'...\n\t\topts.dtype = 'complex128';\n\t}\n\tif ( arguments.length > 3 ) {\n\t\terr = validate( opts, arguments[ 3 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tif ( opts.dtype === 'generic' ) {\n\t\tif ( flg ) {\n\t\t\treturn gencmplx( dt1, start, dt2, stop, len, opts.endpoint );\n\t\t}\n\t\treturn genreal( start, stop, len, opts.endpoint );\n\t}\n\tctor = ctors( opts.dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a real or complex floating-point data type or \"generic\". Option: `%s`.', 'dtype', opts.dtype ) );\n\t}\n\tout = new ctor( len );\n\tif ( opts.dtype === 'complex64' ) {\n\t\ttypedcmplx( reinterpret64( out, 0 ), dt1, start, dt2, stop, len, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( opts.dtype === 'complex128' ) {\n\t\ttypedcmplx( reinterpret128( out, 0 ), dt1, start, dt2, stop, len, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( flg ) {\n\t\tthrow new TypeError( 'invalid arguments. If either of the first two arguments are complex numbers, the output array data type must be a complex number data type or \"generic\".' );\n\t}\n\treturn typedreal( out, start, stop, len, opts.endpoint );\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number sequence over a specified interval and assigns results to a provided output array.\n*\n* @private\n* @param {Object} out - output array object\n* @param {ArrayLikeObject} out.data - output array data\n* @param {Array} out.accessors - array element accessors\n* @param {string} dt1 - start value data type\n* @param {ComplexLike} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {ComplexLike} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Object} output array object\n*/\nfunction linspace( out, dt1, start, dt2, stop, len, endpoint ) {\n\tvar cmplx;\n\tvar isf32;\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar set;\n\tvar buf;\n\tvar re;\n\tvar im;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\tisf32 = 0;\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Determine which complex number constructor to use according to type promotion rules:\n\tif ( isf32 === 2 ) {\n\t\tcmplx = Complex64;\n\t} else {\n\t\tcmplx = Complex128;\n\t}\n\t// Cache array object references:\n\tbuf = out.data;\n\tset = out.accessors[ 1 ];\n\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tset( buf, 0, new cmplx( re2, im2 ) );\n\t\t} else {\n\t\t\tset( buf, 0, new cmplx( re1, im1 ) );\n\t\t}\n\t\treturn out;\n\t}\n\tset( buf, 0, new cmplx( re1, im1 ) );\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate the linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tre = re1 + (dr*i);\n\t\tim = im1 + (di*i);\n\t\tset( buf, i, new cmplx( re, im ) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tset( buf, N, new cmplx( re2, im2 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns results to a provided output array.\n*\n* @private\n* @param {Object} out - output array object\n* @param {ArrayLikeObject} out.data - output array data\n* @param {Array} out.accessors - array element accessors\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Object} output array object\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function set( buf, i, v ) {\n* buf[ i ] = v * 2.0;\n* }\n*\n* var out = new Float64Array( 6 );\n* var obj = {\n* 'data': out,\n* 'accessors': [ null, set ]\n* };\n* linspace( obj, 0, 100, out.length, true );\n*\n* var arr = obj.data;\n* // returns [ 0.0, 40.0, 80.0, 120.0, 160.0, 200.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function set( buf, i, v ) {\n* buf[ i ] = v * 2.0;\n* }\n*\n* var out = new Float64Array( 5 );\n* var obj = {\n* 'data': out,\n* 'accessors': [ null, set ]\n* };\n* linspace( obj, 0, 100, out.length, false );\n*\n* var arr = obj.data;\n* // returns [ 0.0, 40.0, 80.0, 120.0, 160.0 ]\n*/\nfunction linspace( out, start, stop, len, endpoint ) {\n\tvar buf;\n\tvar set;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\t// Cache array object references:\n\tbuf = out.data;\n\tset = out.accessors[ 1 ];\n\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tset( buf, 0, stop );\n\t\t} else {\n\t\t\tset( buf, 0, start );\n\t\t}\n\t\treturn out;\n\t}\n\tset( buf, 0, start );\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tset( buf, i, start + (d*i) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tset( buf, N, stop );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar dtype = require( '@stdlib/complex/dtype' );\nvar adtype = require( './../../dtype' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar arraylike2object = require( './../../base/arraylike2object' );\nvar acccmplx = require( './accessors_complex.js' );\nvar accreal = require( './accessors_real.js' );\nvar typedcmplx = require( './typed_complex.js' );\nvar typedreal = require( './typed_real.js' );\nvar validate = require( './validate.js' );\nvar defaults = require( './defaults.json' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns the results to a provided output array.\n*\n* @param {(number|ComplexLike)} start - start of interval\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {Collection} out - output array\n* @param {Options} [options] - options\n* @param {boolean} [options.endpoint=true] - boolean indicating whether to include the `stop` value in the output array\n* @throws {TypeError} first argument must be either a real or complex number\n* @throws {TypeError} second argument must be either a real or complex number\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} last argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} the output array data type must be a complex number data type or \"generic\" when either `start` or `stop` is a complex number\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 6 );\n* var arr = linspace( 0, 100, out );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction linspace( start, stop, out ) {\n\tvar opts;\n\tvar err;\n\tvar dt1;\n\tvar dt2;\n\tvar flg;\n\tvar odt;\n\tvar o;\n\n\tif ( typeof start === 'object' ) {\n\t\tdt1 = dtype( start );\n\t\tif ( dt1 === null ) {\n\t\t\tif ( !isComplexLike( start ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t\t\t}\n\t\t\tdt1 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( start ) || isnan( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t} else {\n\t\tdt1 = 'float64';\n\t}\n\tif ( typeof stop === 'object' ) {\n\t\tdt2 = dtype( stop );\n\t\tif ( dt2 === null ) {\n\t\t\tif ( !isComplexLike( stop ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t\t\t}\n\t\t\tdt2 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( stop ) || isnan( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t} else {\n\t\tdt2 = 'float64';\n\t}\n\tif ( !isCollection( out ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object. Value: `%s`.', out ) );\n\t}\n\topts = {\n\t\t'endpoint': defaults.endpoint\n\t};\n\tif ( arguments.length > 3 ) {\n\t\terr = validate( opts, arguments[ 3 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\todt = adtype( out );\n\tif ( odt === null ) {\n\t\todt = 'generic';\n\t}\n\tif ( odt === 'complex64' ) {\n\t\ttypedcmplx( reinterpret64( out, 0 ), dt1, start, dt2, stop, out.length, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( odt === 'complex128' ) {\n\t\ttypedcmplx( reinterpret128( out, 0 ), dt1, start, dt2, stop, out.length, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( flg ) {\n\t\tif ( odt === 'generic' ) {\n\t\t\to = arraylike2object( out );\n\t\t\tacccmplx( o, dt1, start, dt2, stop, out.length, opts.endpoint );\n\t\t\treturn out;\n\t\t}\n\t\tthrow new TypeError( 'invalid arguments. If either of the first two arguments are complex numbers, the output array must be a complex number array or a \"generic\" array-like object.' );\n\t}\n\to = arraylike2object( out );\n\tif ( o.accessorProtocol ) {\n\t\taccreal( o, start, stop, out.length, opts.endpoint );\n\t\treturn out;\n\t}\n\ttypedreal( out, start, stop, out.length, opts.endpoint );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced array.\n*\n* @module @stdlib/array/linspace\n*\n* @example\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* @example\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = linspace( 0, 100, 5, {\n* 'endpoint': false\n* });\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = new Float64Array( 6 );\n* var out = linspace.assign( 0, 100, out );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = new Float64Array( 5 );\n* var out = linspace.assign( 0, 100, out, {\n* 'endpoint': false\n* });\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar gen = require( './../../base/logspace' );\n\n\n// MAIN //\n\n/**\n* Generates a logarithmically spaced numeric array.\n*\n* @param {number} a - exponent of start value\n* @param {number} b - exponent of end value\n* @param {NonNegativeInteger} [len=10] - length of output array\n* @throws {TypeError} first argument must be numeric\n* @throws {TypeError} second argument must be numeric\n* @throws {TypeError} third argument must be a nonnegative integer\n* @returns {Array} logarithmically spaced numeric array\n*\n* @example\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\nfunction logspace( a, b, len ) {\n\tif ( !isNumber( a ) || isnan( a ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Exponent of start value must be numeric. Value: `%s`.', a ) );\n\t}\n\tif ( !isNumber( b ) || isnan( b ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Exponent of stop value must be numeric. Value: `%s`.', b ) );\n\t}\n\tif ( arguments.length < 3 ) {\n\t\tlen = 10;\n\t} else if ( !isNonNegativeInteger( len ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t}\n\treturn gen( a, b, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = logspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a logarithmically spaced numeric array.\n*\n* @module @stdlib/array/logspace\n*\n* @example\n* var logspace = require( '@stdlib/array/logspace' );\n*\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar PINF = require( '@stdlib/constants/float64/pinf' );\nvar NINF = require( '@stdlib/constants/float64/ninf' );\nvar FLOAT32_SMALLEST_SUBNORMAL = require( '@stdlib/constants/float32/smallest-subnormal' ); // eslint-disable-line id-length\nvar FLOAT32_MAX_SAFE_INTEGER = require( '@stdlib/constants/float32/max-safe-integer' );\nvar FLOAT32_MIN_SAFE_INTEGER = require( '@stdlib/constants/float32/min-safe-integer' );\nvar INT8_MIN = require( '@stdlib/constants/int8/min' );\nvar INT16_MIN = require( '@stdlib/constants/int16/min' );\nvar INT32_MIN = require( '@stdlib/constants/int32/min' );\nvar UINT8_MAX = require( '@stdlib/constants/uint8/max' );\nvar UINT16_MAX = require( '@stdlib/constants/uint16/max' );\nvar UINT32_MAX = require( '@stdlib/constants/uint32/max' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point array data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} array data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( typeof value !== 'number' ) {\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nmodule.exports = minDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @module @stdlib/array/min-dtype\n*\n* @example\n* var minDataType = require( '@stdlib/array/min-dtype' );\n*\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* dt = minDataType( 3 );\n* // returns 'uint8'\n*/\n\n// MODULES //\n\nvar minDataType = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = minDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar full = require( './../../full' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( NaN, NaN );\nvar Z64 = new Complex64( NaN, NaN );\nvar DTYPES = [ 'float64', 'float32', 'complex128', 'complex64', 'generic' ];\n\n\n// MAIN //\n\n/**\n* Creates an array filled with NaNs and having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a supported data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = nans( 2 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var arr = nans( 2, 'float32' );\n* // returns [ NaN, NaN ]\n*/\nfunction nans( length ) {\n\tvar dtype;\n\tvar value;\n\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t\tif ( DTYPES.indexOf( dtype ) === -1 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be one of the following: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dtype ) );\n\t\t}\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'complex128' ) {\n\t\tvalue = Z128;\n\t} else if ( dtype === 'complex64' ) {\n\t\tvalue = Z64;\n\t} else {\n\t\tvalue = NaN;\n\t}\n\treturn full( length, value, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nans;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with NaNs and having a specified length.\n*\n* @module @stdlib/array/nans\n*\n* @example\n* var nans = require( '@stdlib/array/nans' );\n*\n* var arr = nans( 2 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var nans = require( '@stdlib/array/nans' );\n*\n* var arr = nans( 2, 'float32' );\n* // returns [ NaN, NaN ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( NaN, NaN );\nvar Z64 = new Complex64( NaN, NaN );\nvar DTYPES = [ 'float64', 'float32', 'complex128', 'complex64', 'generic' ];\n\n\n// MAIN //\n\n/**\n* Creates an array filled with NaNs and having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a supported data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = nansLike( [ 0.0, 0.0 ] );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var arr = nansLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ NaN, NaN ]\n*/\nfunction nansLike( x ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t\tif ( DTYPES.indexOf( dt ) === -1 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be one of the following: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dt ) );\n\t\t}\n\t} else if ( DTYPES.indexOf( dt ) === -1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be one of the following data types: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dt ) );\n\t}\n\tif ( dt === 'complex128' ) {\n\t\tv = Z128;\n\t} else if ( dt === 'complex64' ) {\n\t\tv = Z64;\n\t} else {\n\t\tv = NaN;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nansLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with NaNs and having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/nans-like\n*\n* @example\n* var nansLike = require( '@stdlib/array/nans-like' );\n*\n* var arr = nansLike( [ 0.0, 0.0 ] );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var nansLike = require( '@stdlib/array/nans-like' );\n*\n* var arr = nansLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ NaN, NaN ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": -1,\n\t\"float32\": \"float64\",\n\t\"int32\": -1,\n\t\"int16\": \"int32\",\n\t\"int8\": \"int16\",\n\t\"uint32\": -1,\n\t\"uint16\": \"uint32\",\n\t\"uint8\": \"uint16\",\n\t\"uint8c\": \"uint16\",\n\t\"generic\": -1,\n \"complex64\": \"complex128\",\n \"complex128\": -1\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar NEXT_DTYPES = require( './next_dtypes.json' );\n\n\n// FUNCTIONS //\n\n/**\n* Generates a table.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( NEXT_DTYPES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tout[ dtypes[i] ] = NEXT_DTYPES[ dtypes[i] ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next larger array data type of the same kind.\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|string|integer|null)} next larger data type(s) or null\n*\n* @example\n* var dt = nextDataType( 'float32' );\n* // returns 'float64'\n*/\nfunction nextDataType( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateTable();\n\t}\n\tif ( hasOwnProp( NEXT_DTYPES, dtype ) ) {\n\t\treturn NEXT_DTYPES[ dtype ];\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the next larger array data type of the same kind.\n*\n* @module @stdlib/array/next-dtype\n*\n* @example\n* var nextDataType = require( '@stdlib/array/next-dtype' );\n*\n* var dt = nextDataType( 'float32' );\n* // returns 'float64'\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar full = require( './../../full' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( 1.0, 0.0 );\nvar Z64 = new Complex64( 1.0, 0.0 );\n\n\n// MAIN //\n\n/**\n* Creates an array filled with ones and having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = ones( 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = ones( 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction ones( length ) {\n\tvar dtype;\n\tvar value;\n\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'complex128' ) {\n\t\tvalue = Z128;\n\t} else if ( dtype === 'complex64' ) {\n\t\tvalue = Z64;\n\t} else {\n\t\tvalue = 1;\n\t}\n\treturn full( length, value, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with ones and having a specified length.\n*\n* @module @stdlib/array/ones\n*\n* @example\n* var ones = require( '@stdlib/array/ones' );\n*\n* var arr = ones( 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ones = require( '@stdlib/array/ones' );\n*\n* var arr = ones( 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( 1.0, 0.0 );\nvar Z64 = new Complex64( 1.0, 0.0 );\n\n\n// MAIN //\n\n/**\n* Creates an array filled with ones and having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = onesLike( [ 0.0, 0.0 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = onesLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction onesLike( x ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\tif ( dt === 'complex128' ) {\n\t\tv = Z128;\n\t} else if ( dt === 'complex64' ) {\n\t\tv = Z64;\n\t} else {\n\t\tv = 1.0;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = onesLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with ones and having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/ones-like\n*\n* @example\n* var onesLike = require( '@stdlib/array/ones-like' );\n*\n* var arr = onesLike( [ 0.0, 0.0 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var onesLike = require( '@stdlib/array/ones-like' );\n*\n* var arr = onesLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns default options.\n*\n* @private\n* @returns {Object} default options\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t'highWaterMark': 9007199254740992\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.highWaterMark] - maximum total memory which can be allocated\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'highWaterMark': 1024\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'highWaterMark' ) ) {\n\t\topts.highWaterMark = options.highWaterMark;\n\t\tif ( !isNonNegativeInteger( opts.highWaterMark ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'highWaterMark', opts.highWaterMark ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = validate;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Initializes a cache for pooled typed array buffers.\n*\n* @private\n* @param {NonNegativeInteger} n - base-2 logarithm of the maximum typed array size\n* @returns {ArrayArray} initialized cache\n*/\nfunction pool( n ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < n+1; i++ ) {\n\t\tout.push( [] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = pool;\n", "{\n\t\"float64\": 8,\n\t\"float32\": 4,\n\t\"int16\": 2,\n\t\"int32\": 4,\n\t\"int8\": 1,\n\t\"uint16\": 2,\n\t\"uint32\": 4,\n\t\"uint8\": 1,\n\t\"uint8c\": 1,\n \"complex64\": 8,\n \"complex128\": 16\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isComplex64Array = require( '@stdlib/assert/is-complex64array' );\nvar isComplex128Array = require( '@stdlib/assert/is-complex128array' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar ctors = require( './../../typed-ctors' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar accessors = require( './../../base/accessors' );\nvar adtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\nvar ArrayBuffer = require( './../../buffer' );\nvar ceil = require( '@stdlib/math/base/special/ceil' );\nvar floor = require( '@stdlib/math/base/special/floor' );\nvar ceil2 = require( '@stdlib/math/base/special/ceil2' );\nvar log2 = require( '@stdlib/math/base/special/log2' );\nvar min = require( '@stdlib/math/base/special/min' );\nvar defaults = require( './defaults.js' );\nvar validate = require( './validate.js' );\nvar createPool = require( './pool.js' );\nvar BYTES_PER_ELEMENT = require( './bytes_per_element.json' );\n\n\n// VARIABLES //\n\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an array is a single-precision complex floating-point number array.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {boolean} boolean indicating whether an input array is a single-precision complex floating-point number array\n*/\nfunction isCmplx64Array( arr ) {\n\treturn ( arr instanceof Complex64Array );\n}\n\n/**\n* Tests whether an array is a double-precision complex floating-point number array.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {boolean} boolean indicating whether an input array is a double-precision complex floating-point number array\n*/\nfunction isCmplx128Array( arr ) {\n\treturn ( arr instanceof Complex128Array );\n}\n\n\n// MAIN //\n\n/**\n* Creates a typed array pool.\n*\n* @param {Options} [options] - pool options\n* @param {NonNegativeInteger} [options.highWaterMark] - maximum total memory which can be allocated\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} allocator\n*\n* @example\n* var typedarraypool = factory();\n*\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\nfunction factory( options ) {\n\tvar nbytes;\n\tvar pool;\n\tvar opts;\n\tvar err;\n\n\topts = defaults();\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tpool = createPool( ceil( log2( opts.highWaterMark ) ) );\n\tnbytes = 0;\n\n\tsetReadOnly( malloc, 'malloc', malloc ); // circular reference\n\tsetReadOnly( malloc, 'calloc', calloc );\n\tsetReadOnly( malloc, 'free', free );\n\tsetReadOnly( malloc, 'clear', clear );\n\tsetReadOnly( malloc, 'highWaterMark', opts.highWaterMark );\n\tsetReadOnlyAccessor( malloc, 'nbytes', getBytes );\n\n\treturn malloc;\n\n\t/**\n\t* Returns the number of allocated bytes.\n\t*\n\t* @private\n\t* @returns {NonNegativeInteger} number of allocated bytes\n\t*/\n\tfunction getBytes() {\n\t\treturn nbytes;\n\t}\n\n\t/**\n\t* Returns an array buffer.\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} n - number of bytes\n\t* @returns {(ArrayBuffer|null)} array buffer or null\n\t*/\n\tfunction arraybuffer( n ) {\n\t\tvar buf;\n\t\tvar i;\n\n\t\t// Convert the number of bytes to an index in our pool table:\n\t\ti = log2( n );\n\n\t\t// If we already have an available array buffer, use it...\n\t\tif ( i < pool.length && pool[ i ].length ) {\n\t\t\treturn pool[ i ].pop();\n\t\t}\n\t\t// Before allocating a new array buffer, ensure that we have not exceeded the maximum number of bytes we are allowed to allocate...\n\t\tif ( nbytes+n > opts.highWaterMark ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf = new ArrayBuffer( n );\n\n\t\t// Update the running counter of allocated bytes:\n\t\tnbytes += n;\n\n\t\treturn buf;\n\t}\n\n\t/**\n\t* Returns a typed array.\n\t*\n\t* @private\n\t* @param {Function} ctor - typed array constructor\n\t* @param {NonNegativeInteger} len - view length\n\t* @param {string} dtype - data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction typedarray( ctor, len, dtype ) {\n\t\tvar buf;\n\t\tif ( len === 0 ) {\n\t\t\treturn new ctor( 0 );\n\t\t}\n\t\tbuf = arraybuffer( ceil2( len )*BYTES_PER_ELEMENT[ dtype ] );\n\t\tif ( buf === null ) {\n\t\t\treturn buf;\n\t\t}\n\t\treturn new ctor( buf, 0, len );\n\t}\n\n\t/**\n\t* Returns an uninitialized typed array.\n\t*\n\t* ## Notes\n\t*\n\t* - Memory is **not** initialized.\n\t* - Memory is lazily allocated.\n\t* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n\t*\n\t* @private\n\t* @param {(NonNegativeInteger|Collection)} [arg] - an array length or an array-like object\n\t* @param {string} [dtype=\"float64\"] - data type\n\t* @throws {TypeError} must provide a valid array length or an array-like object\n\t* @throws {TypeError} must provide a recognized data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction malloc() {\n\t\tvar nargs;\n\t\tvar dtype;\n\t\tvar ctor;\n\t\tvar arr;\n\t\tvar out;\n\t\tvar set;\n\t\tvar get;\n\t\tvar len;\n\t\tvar i;\n\n\t\tnargs = arguments.length;\n\t\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\t\tnargs -= 1;\n\t\t\tdtype = arguments[ nargs ];\n\t\t} else {\n\t\t\tdtype = 'float64';\n\t\t}\n\t\tctor = ctors( dtype );\n\t\tif ( ctor === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t\t}\n\t\tif ( nargs <= 0 ) {\n\t\t\treturn new ctor( 0 );\n\t\t}\n\t\t// Check if provided a typed array length...\n\t\tif ( isNonNegativeInteger( arguments[ 0 ] ) ) {\n\t\t\treturn typedarray( ctor, arguments[ 0 ], dtype );\n\t\t}\n\t\t// Check if provided an array-like object containing data elements...\n\t\tif ( isCollection( arguments[ 0 ] ) ) {\n\t\t\tarr = arguments[ 0 ];\n\t\t\tlen = arr.length;\n\t\t\tif ( isComplex128Array( arr ) ) {\n\t\t\t\tarr = reinterpret128( arr, 0 );\n\t\t\t} else if ( isComplex64Array( arr ) ) {\n\t\t\t\tarr = reinterpret64( arr, 0 );\n\t\t\t} else if ( /^complex/.test( dtype ) ) {\n\t\t\t\t// Assume we've been provided an array of interleaved real and imaginary components...\n\t\t\t\tlen /= 2;\n\t\t\t}\n\t\t\tout = typedarray( ctor, len, dtype );\n\t\t\tif ( out === null ) {\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\tif ( isCmplx128Array( out ) || isCmplx64Array( out ) ) {\n\t\t\t\tout.set( arr );\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// Wrap the arrays in order to account for the possibility that `arr` is a complex number array. As we don't prohibit other \"unsafe\" casts (e.g., providing a `Float64Array` and specifying a `dtype` of `uint8`), we don't prohibit providing a complex number array and specifying a real `dtype`. The results will probably be unexpected/gibberish, but I am not sure we should be overly pedantic in ensuring users don't do ill-advised things...\n\t\t\tget = accessors( adtype( arr ) ).accessors[ 0 ];\n\t\t\tset = accessors( dtype ).accessors[ 1 ];\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tset( out, i, get( arr, i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array length or an array-like object. Value: `%s`.', arguments[ 0 ] ) );\n\t}\n\n\t/**\n\t* Returns a zero-initialized typed array.\n\t*\n\t* ## Notes\n\t*\n\t* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} [len=0] - array length\n\t* @param {string} [dtype=\"float64\"] - data type\n\t* @throws {TypeError} must provide a valid array length\n\t* @throws {TypeError} must provide a recognized data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction calloc() {\n\t\tvar nargs;\n\t\tvar out;\n\t\tvar tmp;\n\t\tvar i;\n\n\t\tnargs = arguments.length;\n\t\tif ( nargs === 0 ) {\n\t\t\tout = malloc();\n\t\t} else if ( nargs === 1 ) {\n\t\t\tout = malloc( arguments[ 0 ] );\n\t\t} else {\n\t\t\tout = malloc( arguments[ 0 ], arguments[ 1 ] );\n\t\t}\n\t\tif ( out !== null ) {\n\t\t\t// Initialize the memory...\n\t\t\tif ( isCmplx128Array( out ) ) {\n\t\t\t\ttmp = reinterpret128( out, 0 );\n\t\t\t} else if ( isCmplx64Array( out ) ) {\n\t\t\t\ttmp = reinterpret64( out, 0 );\n\t\t\t} else {\n\t\t\t\ttmp = out;\n\t\t\t}\n\t\t\tfor ( i = 0; i < tmp.length; i++ ) {\n\t\t\t\ttmp[ i ] = 0.0;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\n\t/**\n\t* Frees a typed array or typed array buffer.\n\t*\n\t* ## Notes\n\t*\n\t* - Implicitly, we support providing non-internally allocated arrays and array buffer (e.g., \"freeing\" a typed array allocated in userland); however, the freed array buffer is likely to have excess capacity when compared to other members in its pool.\n\t*\n\t* @private\n\t* @param {(TypedArray|ArrayBuffer)} buf - typed array or array buffer to free\n\t* @throws {TypeError} must provide a typed array or typed array buffer\n\t* @returns {boolean} boolean indicating whether the typed array or array buffer was successfully freed\n\t*/\n\tfunction free( buf ) {\n\t\tvar n;\n\t\tvar p;\n\t\tvar i;\n\t\tif ( isTypedArrayLike( buf ) && buf.buffer ) {\n\t\t\tbuf = buf.buffer;\n\t\t} else if ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array or ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tif ( buf.byteLength > 0 ) {\n\t\t\tn = floor( log2( buf.byteLength ) );\n\n\t\t\t// Prohibit \"freeing\" array buffers which would potentially allow users to circumvent high water mark limits:\n\t\t\tn = min( pool.length-1, n );\n\n\t\t\t// Ensure that we do not attempt to free the same buffer more than once...\n\t\t\tp = pool[ n ];\n\t\t\tfor ( i = 0; i < p.length; i++ ) {\n\t\t\t\tif ( p[ i ] === buf ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Add the buffer to our pool of free buffers:\n\t\t\tp.push( buf );\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t* Clears the typed array pool allowing garbage collection of previously allocated (and currently free) array buffers.\n\t*\n\t* @private\n\t*/\n\tfunction clear() {\n\t\tvar i;\n\t\tfor ( i = 0; i < pool.length; i++ ) {\n\t\t\tpool[ i ].length = 0;\n\t\t}\n\t\tnbytes = 0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\n/**\n* Returns an uninitialized typed array.\n*\n* ## Notes\n*\n* - Memory is **not** initialized.\n* - Memory is lazily allocated.\n* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n*\n* @name typedarraypool\n* @type {Function}\n* @param {(NonNegativeInteger|ArrayLikeObject)} [arg] - an array length or an array-like object\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a valid array length or an array-like object\n* @throws {TypeError} must provide a recognized data type\n* @returns {(TypedArray|null)} typed array or null\n*\n* @example\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // e.g., returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\nvar typedarraypool = factory();\n\n\n// EXPORTS //\n\nmodule.exports = typedarraypool;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array pool.\n*\n* @module @stdlib/array/pool\n*\n* @example\n* var typedarraypool = require( '@stdlib/array/pool' );\n*\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float64\",\n\t\t\"int8\": \"float64\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"float64\",\n\t\t\"uint8\": \"float64\",\n\t\t\"uint8c\": \"float64\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"float32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float32\",\n\t\t\"int8\": \"float32\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"float32\",\n\t\t\"uint8\": \"float32\",\n\t\t\"uint8c\": \"float32\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int32\",\n\t\t\"int8\": \"int32\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int32\",\n\t\t\"uint8c\": \"int32\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int16\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int16\",\n\t\t\"uint8c\": \"int16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int8\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int8\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int16\",\n\t\t\"uint8c\": \"int16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float64\",\n\t\t\"int8\": \"float64\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint32\",\n\t\t\"uint8\": \"uint32\",\n\t\t\"uint8c\": \"uint32\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint16\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int32\",\n\t\t\"int8\": \"int32\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint16\",\n\t\t\"uint8c\": \"uint16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint8\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint8\",\n\t\t\"uint8c\": \"uint8\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint8\",\n\t\t\"uint8c\": \"uint8\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n \"complex128\": {\n \"float64\": \"complex128\",\n \"float32\": \"complex128\",\n \"int32\": \"complex128\",\n \"int16\": \"complex128\",\n \"int8\": \"complex128\",\n \"uint32\": \"complex128\",\n \"uint16\": \"complex128\",\n \"uint8\": \"complex128\",\n \"uint8c\": \"complex128\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n \"generic\": \"generic\"\n },\n \"complex64\": {\n \"float64\": \"complex128\",\n \"float32\": \"complex64\",\n \"int32\": \"complex128\",\n \"int16\": \"complex64\",\n \"int8\": \"complex64\",\n \"uint32\": \"complex128\",\n \"uint16\": \"complex64\",\n \"uint8\": \"complex64\",\n \"uint8c\": \"complex64\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n \"generic\": \"generic\"\n },\n\t\"generic\": {\n\t\t\"float64\": \"generic\",\n\t\t\"float32\": \"generic\",\n\t\t\"int32\": \"generic\",\n\t\t\"int16\": \"generic\",\n\t\t\"int8\": \"generic\",\n\t\t\"uint32\": \"generic\",\n\t\t\"uint16\": \"generic\",\n\t\t\"uint8\": \"generic\",\n\t\t\"uint8c\": \"generic\",\n \"complex64\": \"generic\",\n \"complex128\": \"generic\",\n\t\t\"generic\": \"generic\"\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar PROMOTION_RULES = require( './promotion_rules.json' );\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the array data type with the smallest size and closest \"kind\" to which array data types can be safely cast.\n*\n* @param {string} [dtype1] - array data type\n* @param {string} [dtype2] - array data type\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = promotionRules;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the array data type with the smallest size and closest \"kind\" to which array data types can be safely cast.\n*\n* @module @stdlib/array/promotion-rules\n*\n* @example\n* var promotionRules = require( '@stdlib/array/promotion-rules' );\n*\n* var table = promotionRules();\n* // returns {...}\n*\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\nvar ctors = {\n\t'Float64Array': Float64Array,\n\t'Float32Array': Float32Array,\n\t'Int32Array': Int32Array,\n\t'Uint32Array': Uint32Array,\n\t'Int16Array': Int16Array,\n\t'Uint16Array': Uint16Array,\n\t'Int8Array': Int8Array,\n\t'Uint8Array': Uint8Array,\n\t'Uint8ClampedArray': Uint8ClampedArray,\n\t'Complex64Array': Complex64Array,\n\t'Complex128Array': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArray = require( '@stdlib/assert/is-array' );\nvar ctors = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Revives a JSON-serialized typed array.\n*\n* @param {string} key - key\n* @param {*} value - value\n* @returns {(*|TypedArray)} value or typed array\n*\n* @example\n* var parseJSON = require( '@stdlib/utils/parse-json' );\n*\n* var str = '{\"type\":\"Float64Array\",\"data\":[5,3]}';\n*\n* var arr = parseJSON( str, reviveTypedArray );\n* // returns [ 5.0, 3.0 ]\n*/\nfunction reviveTypedArray( key, value ) {\n\tvar ctor;\n\tif (\n\t\tvalue &&\n\t\tvalue.type &&\n\t\tisArray( value.data )\n\t) {\n\t\tctor = ctors[ value.type ];\n\t\tif ( ctor ) {\n\t\t\treturn new ctor( value.data );\n\t\t}\n\t}\n\treturn value;\n}\n\n\n// EXPORTS //\n\nmodule.exports = reviveTypedArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Revive a JSON-serialized typed array.\n*\n* @module @stdlib/array/reviver\n*\n* @example\n* var parseJSON = require( '@stdlib/utils/parse-json' );\n* var reviveTypedArray = require( '@stdlib/array/reviver' );\n*\n* var str = '{\"type\":\"Float64Array\",\"data\":[5,3]}';\n*\n* var arr = parseJSON( str, reviveTypedArray );\n* // returns [ 5.0, 3.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"float32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"int16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"uint16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n \"complex128\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n \"generic\": 1\n },\n \"complex64\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 1\n },\n\t\"generic\": {\n\t\t\"float64\": 0,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 0,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar SAFE_CASTS = require( './safe_casts.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types to which a provided array data type can be safely cast.\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|StringArray|null)} list of array data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = safeCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types to which a provided array data type can be safely cast.\n*\n* @module @stdlib/array/safe-casts\n*\n* @example\n* var safeCasts = require( '@stdlib/array/safe-casts' );\n*\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"float32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"int16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"uint16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n \"complex128\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 0\n },\n \"complex64\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 0\n },\n\t\"generic\": {\n\t\t\"float64\": 0,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 0,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar SAME_KIND_CASTS = require( './same_kind_casts.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of same \"kind\" casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of same \"kind\" casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types to which a provided array data type can be safely cast or cast within the same \"kind\".\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|StringArray|null)} list of array data types or null\n*\n* @example\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\nfunction sameKindCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sameKindCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types to which a provided array data type can be safely cast or cast within the same \"kind\".\n*\n* @module @stdlib/array/same-kind-casts\n*\n* @example\n* var sameKindCasts = require( '@stdlib/array/same-kind-casts' );\n*\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Recursively (and eagerly) attempts to resolve nested array dimensions.\n*\n* @private\n* @param {Array} shape - output array\n* @param {ArrayLikeObject} arr - array\n* @returns {Array} shape array\n*/\nfunction recurse( shape, arr ) {\n\tvar v = arr[ 0 ];\n\tif ( isArrayLikeObject( v ) ) {\n\t\tshape.push( v.length );\n\t\trecurse( shape, v );\n\t}\n\treturn shape;\n}\n\n/**\n* Recursively verifies that all nested arrays have consistent dimensions.\n*\n* @private\n* @param {PositiveInteger} ndims - number of dimensions\n* @param {Array} shape - shape array\n* @param {NonNegativeInteger} d - dimension\n* @param {ArrayLikeObject} arr - array element to verify\n* @param {boolean} flg - boolean indicating whether to continue recursing\n* @returns {NonNegativeInteger} number of consistent dimensions\n*/\nfunction check( ndims, shape, d, arr, flg ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\n\t// Get the size of the current dimension:\n\tlen = shape[ d ];\n\n\t// Ensure that each array element is an array of the same size:\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tv = arr[ i ];\n\n\t\t// If the array element is not an array or is not the same size, we have found an inconsistent dimension:\n\t\tif ( !isArrayLikeObject( v ) || v.length !== len ) {\n\t\t\t// `d` is one more than the index of the last consistent dimension and thus equal to the number of consistent dimensions:\n\t\t\treturn d;\n\t\t}\n\t\t// Recursively examine nested elements:\n\t\tif ( flg ) {\n\t\t\tv = check( ndims, shape, d+1, v, d+1 < ndims-1 );\n\t\t\tif ( v < ndims ) {\n\t\t\t\t// Propagate the number of consistent dimensions up the recursion chain...\n\t\t\t\treturn v;\n\t\t\t}\n\t\t}\n\t}\n\treturn ndims;\n}\n\n\n// MAIN //\n\n/**\n* Determines (nested) array dimensions.\n*\n* @param {ArrayLikeObject} arr - array\n* @throws {TypeError} must provide an array\n* @returns {Array} array shape\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3, 3 ]\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], null ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*/\nfunction arrayShape( arr ) {\n\tvar shape;\n\tvar ndims;\n\n\tif ( !isArrayLikeObject( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', arr ) );\n\t}\n\t// Initialize the shape/dimensions array:\n\tshape = [ arr.length ];\n\n\t// Eagerly determine array dimensions:\n\trecurse( shape, arr );\n\tndims = shape.length;\n\n\t// Check that all array element dimensions are consistent:\n\tif ( ndims > 1 ) {\n\t\t// If `check()` returns a value less than `ndims`, trim off the inconsistent dimensions:\n\t\tshape.length = check( ndims, shape, 1, arr, ndims > 2 );\n\t}\n\treturn shape;\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayShape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine (nested) array dimensions.\n*\n* @module @stdlib/array/shape\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3, 3 ]\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], null ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof SharedArrayBuffer === 'function' ) ? SharedArrayBuffer : null; // eslint-disable-line stdlib/require-globals, no-undef\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Constructor returning an object used to represent a generic, fixed-length raw binary data buffer which can be used to create views of shared memory.\n*\n* @param {NonNegativeInteger} size - number of bytes\n* @throws {Error} not implemented\n*/\nfunction polyfill( size ) { // eslint-disable-line no-unused-vars\n\tthrow new Error( 'not supported. The current environment does not support SharedArrayBuffers, and, unfortunately, SharedArrayBuffers cannot be polyfilled. For shared memory applications, upgrade your runtime environment to one which supports SharedArrayBuffers.' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor returning an object used to represent a generic, fixed-length raw binary data buffer which can be used to create views of shared memory.\n*\n* @module @stdlib/array/shared-buffer\n*\n* @example\n* var ctor = require( '@stdlib/array/shared-buffer' );\n*\n* var buf;\n* try {\n* buf = new ctor( 10 );\n* // returns \n* } catch ( err ) {\n* console.log( 'Environment does not support SharedArrayBuffers.' );\n* }\n*/\n\n// MODULES //\n\nvar hasSharedArrayBufferSupport = require( '@stdlib/assert/has-sharedarraybuffer-support' ); // eslint-disable-line id-length\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasSharedArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which repeatedly iterates over each element in an array-like object.\n*\n* @param {Collection} src - input value\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @param {integer} [options.dir=1] - iteration direction\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} callback argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = circarray2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction circarray2iterator( src ) {\n\tvar thisArg;\n\tvar options;\n\tvar count;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\topts = {\n\t\t'iter': 1e308, // ~infinity\n\t\t'dir': 1 // left to right iteration\n\t};\n\tif ( arguments.length > 1 ) {\n\t\tif ( isObject( arguments[ 1 ] ) ) {\n\t\t\toptions = arguments[ 1 ];\n\t\t\tif ( arguments.length > 2 ) {\n\t\t\t\tfcn = arguments[ 2 ];\n\t\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t\t}\n\t\t\t\tthisArg = arguments[ 3 ];\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\t\t\topts.iter = options.iter;\n\t\t\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'dir' ) ) {\n\t\t\t\topts.dir = options.dir;\n\t\t\t\tif ( options.dir !== 1 && options.dir !== -1 ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be either `1` or `-1`. Option: `%s`.', 'dir', options.dir ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a function or an options object. Value: `%s`.', fcn ) );\n\t\t\t}\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tcount = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tif ( opts.dir === 1 ) {\n\t\t\ti = -1;\n\t\t\tsetReadOnly( iter, 'next', next1a );\n\t\t} else {\n\t\t\ti = src.length;\n\t\t\tsetReadOnly( iter, 'next', next1b );\n\t\t}\n\t} else if ( opts.dir === 1 ) {\n\t\ti = -1;\n\t\tsetReadOnly( iter, 'next', next2a );\n\t} else {\n\t\ti = src.length;\n\t\tsetReadOnly( iter, 'next', next2b );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1a() {\n\t\ti = (i+1) % src.length;\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, count, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1b() {\n\t\ti -= 1;\n\t\tif ( i < 0 ) {\n\t\t\ti += src.length;\n\t\t}\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, count, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2a() {\n\t\ti = (i+1) % src.length;\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2b() {\n\t\ti -= 1;\n\t\tif ( i < 0 ) {\n\t\t\ti += src.length;\n\t\t}\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn circarray2iterator( src, opts, fcn, thisArg );\n\t\t}\n\t\treturn circarray2iterator( src, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = circarray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator which repeatedly iterates over the elements of an array-like object.\n*\n* @module @stdlib/array/to-circular-iterator\n*\n* @example\n* var circarray2iterator = require( '@stdlib/array/to-circular-iterator' );\n*\n* var iter = circarray2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in an array-like object.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = array2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction array2iterator( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += 1;\n\t\tif ( FLG || i >= src.length ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += 1;\n\t\tif ( FLG || i >= src.length ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn array2iterator( src, fcn, thisArg );\n\t\t}\n\t\treturn array2iterator( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = array2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object.\n*\n* @module @stdlib/array/to-iterator\n*\n* @example\n* var array2iterator = require( '@stdlib/array/to-iterator' );\n*\n* var iter = array2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in an array-like object.\n*\n* ## Notes\n*\n* - For dynamic array resizing, the only behavior made intentionally consistent with iterating from left to right is when elements are pushed onto the beginning (end) of an array. In other words, iterating from left to right combined with `[].push()` is consistent with iterating from right to left combined with `[].unshift()`.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = array2iteratorRight( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\nfunction array2iteratorRight( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\tlen = src.length;\n\ti = len;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\tif ( FLG || i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\tif ( FLG || i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn array2iteratorRight( src, fcn, thisArg );\n\t\t}\n\t\treturn array2iteratorRight( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = array2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object, iterating from right to left.\n*\n* @module @stdlib/array/to-iterator-right\n*\n* @example\n* var array2iteratorRight = require( '@stdlib/array/to-iterator-right' );\n*\n* var iter = array2iteratorRight( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int8Array = require( './../../int8' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Int16Array = require( './../../int16' );\nvar Uint16Array = require( './../../uint16' );\nvar Int32Array = require( './../../int32' );\nvar Uint32Array = require( './../../uint32' );\nvar Float32Array = require( './../../float32' );\nvar Float64Array = require( './../../float64' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\nvar CTORS = [\n\t[ Float64Array, 'Float64Array' ],\n\t[ Float32Array, 'Float32Array' ],\n\t[ Int32Array, 'Int32Array' ],\n\t[ Uint32Array, 'Uint32Array' ],\n\t[ Int16Array, 'Int16Array' ],\n\t[ Uint16Array, 'Uint16Array' ],\n\t[ Int8Array, 'Int8Array' ],\n\t[ Uint8Array, 'Uint8Array' ],\n\t[ Uint8ClampedArray, 'Uint8ClampedArray' ],\n\t[ Complex64Array, 'Complex64Array' ],\n\t[ Complex128Array, 'Complex128Array' ]\n];\n\n\n// EXPORTS //\n\nmodule.exports = CTORS;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar instanceOf = require( '@stdlib/assert/instance-of' );\nvar ctorName = require( '@stdlib/utils/constructor-name' );\nvar getPrototypeOf = require( '@stdlib/utils/get-prototype-of' );\nvar CTORS = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns the typed array type.\n*\n* @private\n* @param {TypedArray} arr - typed array\n* @returns {(string|void)} typed array type\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( 5 );\n* var str = typeName( arr );\n* // returns 'Float64Array'\n*/\nfunction typeName( arr ) {\n\tvar v;\n\tvar i;\n\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( instanceOf( arr, CTORS[ i ][ 0 ] ) ) {\n\t\t\treturn CTORS[ i ][ 1 ];\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired native class...\n\twhile ( arr ) {\n\t\tv = ctorName( arr );\n\t\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\t\tif ( v === CTORS[ i ][ 1 ] ) {\n\t\t\t\treturn CTORS[ i ][ 1 ];\n\t\t\t}\n\t\t}\n\t\tarr = getPrototypeOf( arr );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = typeName;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isTypedArray = require( '@stdlib/assert/is-typed-array' );\nvar isComplexTypedArray = require( '@stdlib/assert/is-complex-typed-array' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\nvar typeName = require( './type.js' );\n\n\n// MAIN //\n\n/**\n* Returns a JSON representation of a typed array.\n*\n* ## Notes\n*\n* - We build a JSON object representing a typed array similar to how Node.js `Buffer` objects are represented. See [Buffer][1].\n*\n* [1]: https://nodejs.org/api/buffer.html#buffer_buf_tojson\n*\n* @param {TypedArray} arr - typed array to serialize\n* @throws {TypeError} first argument must be a typed array\n* @returns {Object} JSON representation\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\nfunction typedarray2json( arr ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tif ( isTypedArray( arr ) ) {\n\t\tdata = arr;\n\t} else if ( isComplexTypedArray( arr ) ) {\n\t\tif ( arr.BYTES_PER_ELEMENT === 8 ) {\n\t\t\tdata = reinterpret64( arr, 0 );\n\t\t} else { // arr.BYTES_PER_ELEMENT === 16\n\t\t\tdata = reinterpret128( arr, 0 );\n\t\t}\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array. Value: `%s`.', arr ) );\n\t}\n\tout = {\n\t\t'type': typeName( arr ),\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.data.push( data[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = typedarray2json;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a JSON representation of a typed array.\n*\n* @module @stdlib/array/to-json\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var typedarray2json = require( '@stdlib/array/to-json' );\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in a sparse array-like object.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = sparsearray2iterator( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 4\n*/\nfunction sparsearray2iterator( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tvar len;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tlen = src.length;\n\t\ti += 1;\n\t\twhile ( i < len && get( src, i ) === void 0 ) {\n\t\t\ti += 1;\n\t\t}\n\t\tif ( i >= len ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tvar len;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tlen = src.length;\n\t\ti += 1;\n\t\twhile ( i < len && get( src, i ) === void 0 ) {\n\t\t\ti += 1;\n\t\t}\n\t\tif ( i >= len ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn sparsearray2iterator( src, fcn, thisArg );\n\t\t}\n\t\treturn sparsearray2iterator( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sparsearray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a sparse array-like value.\n*\n* @module @stdlib/array/to-sparse-iterator\n*\n* @example\n* var sparsearray2iterator = require( '@stdlib/array/to-sparse-iterator' );\n*\n* var iter = sparsearray2iterator( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 4\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in a sparse array-like object.\n*\n* ## Notes\n*\n* - For dynamic array resizing, the only behavior made intentionally consistent with iterating from left to right is when elements are pushed onto the beginning (end) of an array. In other words, iterating from left to right combined with `[].push()` is consistent with iterating from right to left combined with `[].unshift()`.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = sparsearray2iteratorRight( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 1\n*/\nfunction sparsearray2iteratorRight( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\tlen = src.length;\n\ti = len;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\twhile ( i >= 0 && get( src, i ) === void 0 ) {\n\t\t\ti -= 1;\n\t\t}\n\t\tif ( i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\twhile ( i >= 0 && get( src, i ) === void 0 ) {\n\t\t\ti -= 1;\n\t\t}\n\t\tif ( i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn sparsearray2iteratorRight( src, fcn, thisArg );\n\t\t}\n\t\treturn sparsearray2iteratorRight( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sparsearray2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a sparse array-like value, iterating from right to left.\n*\n* @module @stdlib/array/to-sparse-iterator-right\n*\n* @example\n* var sparsearray2iteratorRight = require( '@stdlib/array/to-sparse-iterator-right' );\n*\n* var iter = sparsearray2iteratorRight( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over elements in an array-like object according to specified stride parameters.\n*\n* @param {NonNegativeInteger} N - number of values to iterate\n* @param {Collection} src - input value\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} fourth argument must be a nonnegative integer\n* @throws {TypeError} fifth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var values = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n*\n* var N = 4;\n* var stride = -2;\n* var offset = 6;\n*\n* var iter = stridedarray2iterator( N, values, stride, offset );\n*\n* var v = iter.next().value;\n* // returns 7\n*\n* v = iter.next().value;\n* // returns 5\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction stridedarray2iterator( N, src, stride, offset ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar idx;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isNonNegativeInteger( N ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', N ) );\n\t}\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( !isInteger( stride ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', stride ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( arguments.length > 4 ) {\n\t\tfcn = arguments[ 4 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 5 ];\n\t}\n\tidx = offset;\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tvar v;\n\t\ti += 1;\n\t\tif ( FLG || i >= N ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = fcn.call( thisArg, get( src, idx ), idx, i, src );\n\t\tidx += stride;\n\t\treturn {\n\t\t\t'value': v,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tvar v;\n\t\ti += 1;\n\t\tif ( FLG || i >= N ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = get( src, idx );\n\t\tidx += stride;\n\t\treturn {\n\t\t\t'value': v,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn stridedarray2iterator( N, src, stride, offset, fcn, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn stridedarray2iterator( N, src, stride, offset );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = stridedarray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a strided array-like value.\n*\n* @module @stdlib/array/to-strided-iterator\n*\n* @example\n* var stridedarray2iterator = require( '@stdlib/array/to-strided-iterator' );\n*\n* var values = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n*\n* var N = 4;\n* var stride = -2;\n* var offset = 6;\n*\n* var iter = stridedarray2iterator( N, values, stride, offset );\n*\n* var v = iter.next().value;\n* // returns 7\n*\n* v = iter.next().value;\n* // returns 5\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in an array-like object view.\n*\n* @param {Collection} src - input value\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end=src.length] - ending index (non-inclusive)\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be either an integer (starting index) or a function\n* @throws {TypeError} third argument must be either an integer (ending index) or a function\n* @throws {TypeError} fourth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = arrayview2iterator( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction arrayview2iterator( src ) {\n\tvar thisArg;\n\tvar begin;\n\tvar nargs;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar end;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs === 1 ) {\n\t\tbegin = 0;\n\t\tend = src.length;\n\t} else if ( nargs === 2 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tfcn = arguments[ 1 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t}\n\t\tend = src.length;\n\t} else if ( nargs === 3 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tthisArg = arguments[ 2 ];\n\t\t} else if ( isFunction( arguments[ 2 ] ) ) {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 2 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = arguments[ 2 ];\n\t\t}\n\t} else { // nargs >= 4\n\t\tbegin = arguments[ 1 ];\n\t\tend = arguments[ 2 ];\n\t\tfcn = arguments[ 3 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tif ( !isInteger( begin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an integer (starting index) or a function. Value: `%s`.', begin ) );\n\t}\n\tif ( !isInteger( end ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either an integer (ending index) or a function. Value: `%s`.', end ) );\n\t}\n\tif ( end < 0 ) {\n\t\tend = src.length + end;\n\t\tif ( end < 0 ) {\n\t\t\tend = 0;\n\t\t}\n\t} else if ( end > src.length ) {\n\t\tend = src.length;\n\t}\n\tif ( begin < 0 ) {\n\t\tbegin = src.length + begin;\n\t\tif ( begin < 0 ) {\n\t\t\tbegin = 0;\n\t\t}\n\t}\n\ti = begin - 1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', finish );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += 1;\n\t\tif ( FLG || i >= end ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, i-begin, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += 1;\n\t\tif ( FLG || i >= end ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction finish( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn arrayview2iterator( src, begin, end, fcn, thisArg );\n\t\t}\n\t\treturn arrayview2iterator( src, begin, end );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayview2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object view.\n*\n* @module @stdlib/array/to-view-iterator\n*\n* @example\n* var arrayview2iterator = require( '@stdlib/array/to-view-iterator' );\n*\n* var iter = arrayview2iterator( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* var bool = iter.next().done;\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in an array-like object view.\n*\n* @param {Collection} src - input value\n* @param {integer} [begin=0] - starting **view** index (inclusive)\n* @param {integer} [end=src.length] - ending **view** index (non-inclusive)\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be either an integer (starting index) or a function\n* @throws {TypeError} third argument must be either an integer (ending index) or a function\n* @throws {TypeError} fourth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = arrayview2iteratorRight( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction arrayview2iteratorRight( src ) {\n\tvar thisArg;\n\tvar begin;\n\tvar nargs;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar end;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs === 1 ) {\n\t\tbegin = 0;\n\t\tend = src.length;\n\t} else if ( nargs === 2 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tfcn = arguments[ 1 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t}\n\t\tend = src.length;\n\t} else if ( nargs === 3 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tthisArg = arguments[ 2 ];\n\t\t} else if ( isFunction( arguments[ 2 ] ) ) {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 2 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = arguments[ 2 ];\n\t\t}\n\t} else { // nargs >= 4\n\t\tbegin = arguments[ 1 ];\n\t\tend = arguments[ 2 ];\n\t\tfcn = arguments[ 3 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tif ( !isInteger( begin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an integer (starting view index) or a function. Value: `%s`.', begin ) );\n\t}\n\tif ( !isInteger( end ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either an integer (ending view index) or a function. Value: `%s`.', end ) );\n\t}\n\tif ( end < 0 ) {\n\t\tend = src.length + end;\n\t\tif ( end < 0 ) {\n\t\t\tend = 0;\n\t\t}\n\t} else if ( end > src.length ) {\n\t\tend = src.length;\n\t}\n\tif ( begin < 0 ) {\n\t\tbegin = src.length + begin;\n\t\tif ( begin < 0 ) {\n\t\t\tbegin = 0;\n\t\t}\n\t}\n\ti = end;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', finish );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti -= 1;\n\t\tif ( FLG || i < begin ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, end-i-1, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti -= 1;\n\t\tif ( FLG || i < begin ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction finish( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn arrayview2iteratorRight( src, begin, end, fcn, thisArg );\n\t\t}\n\t\treturn arrayview2iteratorRight( src, begin, end );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayview2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object view, iterating from right to left.\n*\n* @module @stdlib/array/to-view-iterator-right\n*\n* @example\n* var arrayview2iteratorRight = require( '@stdlib/array/to-view-iterator-right' );\n*\n* var iter = arrayview2iteratorRight( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* var bool = iter.next().done;\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar ctors = require( './../../typed-ctors' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {(ComplexArray|TypedArray)} typed array\n*\n* @example\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction typedarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\n\t\t// Note: the following checks are not particularly robust, as `instanceof` will fail for cross-realm instances...\n\t\tif ( arg instanceof Complex64Array ) {\n\t\t\targ = reinterpret64( arg, 0 );\n\t\t} else if ( arg instanceof Complex128Array ) {\n\t\t\targ = reinterpret128( arg, 0 );\n\t\t}\n\t\treturn new ctor( arg );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = typedarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a typed array.\n*\n* @module @stdlib/array/typed\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128Array = require( './../../complex128' );\nvar Complex64Array = require( './../../complex64' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'complex128': Complex128Array,\n\t'complex64': Complex64Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a complex typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Complex typed array constructors.\n*\n* @module @stdlib/array/typed-complex-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-complex-ctors' );\n*\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* ctor = ctors( 'float64' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar ctors = require( './../../typed-complex-ctors' );\n\n\n// MAIN //\n\n/**\n* Creates a complex number typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"complex128\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {ComplexArray} typed array\n*\n* @example\n* var arr = complexarray();\n* // returns \n*\n* @example\n* var arr = complexarray( 2 );\n* // returns \n*\n* @example\n* var arr = complexarray( 2, 'complex64' );\n* // returns \n*\n* @example\n* var arr = complexarray( [ 0.5, 0.5 ] );\n* // returns \n*\n* @example\n* var arr = complexarray( [ 5.0, -3.0 ], 'complex64' );\n* // returns \n*\n* @example\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex64' );\n* var arr2 = complexarray( arr1 );\n* // returns \n*\n* @example\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex128' );\n* var arr2 = complexarray( arr1, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2, 'complex64' );\n* // returns \n*/\nfunction complexarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'complex128';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\treturn new ctor( arguments[0] );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = complexarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a complex number typed array.\n*\n* @module @stdlib/array/typed-complex\n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray();\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( 2 );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( 2, 'complex64' );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( [ 0.5, 0.5 ] );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( [ 5.0, -3.0 ], 'complex64' );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex64' );\n* var arr2 = complexarray( arr1 );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex128' );\n* var arr2 = complexarray( arr1, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2, 'complex64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"complex64\",\n\t\"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of complex typed array data types.\n*\n* @returns {StringArray} list of complex typed array data types\n*\n* @example\n* var list = dtypes();\n* // returns [ 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of complex typed array data types.\n*\n* @module @stdlib/array/typed-complex-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-complex-dtypes' );\n*\n* var list = dtypes();\n* // returns [ 'complex64', 'complex128' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\",\n \"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array data types.\n*\n* @returns {StringArray} list of typed array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array data types.\n*\n* @module @stdlib/array/typed-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array floating-point data types.\n*\n* @returns {StringArray} list of typed array floating-point data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array floating-point data types.\n*\n* @module @stdlib/array/typed-float-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-float-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'complex64', 'complex128' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an integer-valued typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'int' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Integer-valued typed array constructors.\n*\n* @module @stdlib/array/typed-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-integer-ctors' );\n*\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array integer data types.\n*\n* @returns {StringArray} list of typed array integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array integer data types.\n*\n* @module @stdlib/array/typed-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar ctors = require( './../../typed-ctors' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {TypedArray} typed array\n*\n* @example\n* var arr = realarray();\n* // returns \n*\n* @example\n* var arr = realarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = realarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = realarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = realarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction realarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\treturn new ctor( arguments[0] );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = realarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a typed array.\n*\n* @module @stdlib/array/typed-real\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray();\n* // returns \n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructors.\n*\n* @module @stdlib/array/typed-real-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-real-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array data types.\n*\n* @returns {StringArray} list of typed array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array data types.\n*\n* @module @stdlib/array/typed-real-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-real-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a real-valued floating-point typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Real-valued floating-point typed array constructors.\n*\n* @module @stdlib/array/typed-real-float-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-real-float-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array real-valued floating-point data types.\n*\n* @returns {StringArray} list of typed array real-valued floating-point data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array real-valued floating-point data types.\n*\n* @module @stdlib/array/typed-real-float-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-real-float-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a signed integer typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'int' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Signed integer typed array constructors.\n*\n* @module @stdlib/array/typed-signed-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-signed-integer-ctors' );\n*\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"int16\",\n\t\"int32\",\n\t\"int8\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array signed integer data types.\n*\n* @returns {StringArray} list of typed array signed integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array signed integer data types.\n*\n* @module @stdlib/array/typed-signed-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-signed-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned integer typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'uint32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'uint' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Unsigned integer typed array constructors.\n*\n* @module @stdlib/array/typed-unsigned-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-unsigned-integer-ctors' );\n*\n* var ctor = ctors( 'uint32' );\n* // returns \n*\n* ctor = ctors( 'uint' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array unsigned integer data types.\n*\n* @returns {StringArray} list of typed array unsigned integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array unsigned integer data types.\n*\n* @module @stdlib/array/typed-unsigned-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-unsigned-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar format = require( '@stdlib/string/format' );\nvar dtype = require( './../../dtype' );\nvar zeros = require( './../../zeros' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zerosLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zerosLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zerosLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn zeros( x.length, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zerosLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/zeros-like\n*\n* @example\n* var zerosLike = require( '@stdlib/array/zeros-like' );\n*\n* var arr = zerosLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var zerosLike = require( '@stdlib/array/zeros-like' );\n*\n* var arr = zerosLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: generic\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name base\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/array/base}\n*/\nsetReadOnly( ns, 'base', require( './../base' ) );\n\n/**\n* @name ArrayBuffer\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/buffer}\n*/\nsetReadOnly( ns, 'ArrayBuffer', require( './../buffer' ) );\n\n/**\n* @name Complex64Array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/complex64}\n*/\nsetReadOnly( ns, 'Complex64Array', require( './../complex64' ) );\n\n/**\n* @name Complex128Array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/complex128}\n*/\nsetReadOnly( ns, 'Complex128Array', require( './../complex128' ) );\n\n/**\n* @name convertArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/convert}\n*/\nsetReadOnly( ns, 'convertArray', require( './../convert' ) );\n\n/**\n* @name convertArraySame\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/convert-same}\n*/\nsetReadOnly( ns, 'convertArraySame', require( './../convert-same' ) );\n\n/**\n* @name arrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/ctors}\n*/\nsetReadOnly( ns, 'arrayCtors', require( './../ctors' ) );\n\n/**\n* @name DataView\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/dataview}\n*/\nsetReadOnly( ns, 'DataView', require( './../dataview' ) );\n\n/**\n* @name datespace\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/datespace}\n*/\nsetReadOnly( ns, 'datespace', require( './../datespace' ) );\n\n/**\n* @name arrayDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/dtype}\n*/\nsetReadOnly( ns, 'arrayDataType', require( './../dtype' ) );\n\n/**\n* @name arrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/dtypes}\n*/\nsetReadOnly( ns, 'arrayDataTypes', require( './../dtypes' ) );\n\n/**\n* @name aempty\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/empty}\n*/\nsetReadOnly( ns, 'aempty', require( './../empty' ) );\n\n/**\n* @name aemptyLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/empty-like}\n*/\nsetReadOnly( ns, 'aemptyLike', require( './../empty-like' ) );\n\n/**\n* @name filledarray\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/filled}\n*/\nsetReadOnly( ns, 'filledarray', require( './../filled' ) );\n\n/**\n* @name filledarrayBy\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/filled-by}\n*/\nsetReadOnly( ns, 'filledarrayBy', require( './../filled-by' ) );\n\n/**\n* @name Float32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/float32}\n*/\nsetReadOnly( ns, 'Float32Array', require( './../float32' ) );\n\n/**\n* @name Float64Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/float64}\n*/\nsetReadOnly( ns, 'Float64Array', require( './../float64' ) );\n\n/**\n* @name iterator2array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/from-iterator}\n*/\nsetReadOnly( ns, 'iterator2array', require( './../from-iterator' ) );\n\n/**\n* @name afull\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/full}\n*/\nsetReadOnly( ns, 'afull', require( './../full' ) );\n\n/**\n* @name afullLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/full-like}\n*/\nsetReadOnly( ns, 'afullLike', require( './../full-like' ) );\n\n/**\n* @name incrspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/incrspace}\n*/\nsetReadOnly( ns, 'incrspace', require( './../incrspace' ) );\n\n/**\n* @name Int8Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int8}\n*/\nsetReadOnly( ns, 'Int8Array', require( './../int8' ) );\n\n/**\n* @name Int16Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int16}\n*/\nsetReadOnly( ns, 'Int16Array', require( './../int16' ) );\n\n/**\n* @name Int32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int32}\n*/\nsetReadOnly( ns, 'Int32Array', require( './../int32' ) );\n\n/**\n* @name linspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/linspace}\n*/\nsetReadOnly( ns, 'linspace', require( './../linspace' ) );\n\n/**\n* @name logspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/logspace}\n*/\nsetReadOnly( ns, 'logspace', require( './../logspace' ) );\n\n/**\n* @name arrayMinDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/min-dtype}\n*/\nsetReadOnly( ns, 'arrayMinDataType', require( './../min-dtype' ) );\n\n/**\n* @name anans\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/nans}\n*/\nsetReadOnly( ns, 'anans', require( './../nans' ) );\n\n/**\n* @name anansLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/nans-like}\n*/\nsetReadOnly( ns, 'anansLike', require( './../nans-like' ) );\n\n/**\n* @name arrayNextDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/next-dtype}\n*/\nsetReadOnly( ns, 'arrayNextDataType', require( './../next-dtype' ) );\n\n/**\n* @name aones\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/ones}\n*/\nsetReadOnly( ns, 'aones', require( './../ones' ) );\n\n/**\n* @name aonesLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/ones-like}\n*/\nsetReadOnly( ns, 'aonesLike', require( './../ones-like' ) );\n\n/**\n* @name typedarraypool\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/pool}\n*/\nsetReadOnly( ns, 'typedarraypool', require( './../pool' ) );\n\n/**\n* @name arrayPromotionRules\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/promotion-rules}\n*/\nsetReadOnly( ns, 'arrayPromotionRules', require( './../promotion-rules' ) );\n\n/**\n* @name reviveTypedArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/reviver}\n*/\nsetReadOnly( ns, 'reviveTypedArray', require( './../reviver' ) );\n\n/**\n* @name arraySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/safe-casts}\n*/\nsetReadOnly( ns, 'arraySafeCasts', require( './../safe-casts' ) );\n\n/**\n* @name arraySameKindCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/same-kind-casts}\n*/\nsetReadOnly( ns, 'arraySameKindCasts', require( './../same-kind-casts' ) );\n\n/**\n* @name arrayShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/shape}\n*/\nsetReadOnly( ns, 'arrayShape', require( './../shape' ) );\n\n/**\n* @name SharedArrayBuffer\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/shared-buffer}\n*/\nsetReadOnly( ns, 'SharedArrayBuffer', require( './../shared-buffer' ) );\n\n/**\n* @name circarray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-circular-iterator}\n*/\nsetReadOnly( ns, 'circarray2iterator', require( './../to-circular-iterator' ) );\n\n/**\n* @name array2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-iterator}\n*/\nsetReadOnly( ns, 'array2iterator', require( './../to-iterator' ) );\n\n/**\n* @name array2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-iterator-right}\n*/\nsetReadOnly( ns, 'array2iteratorRight', require( './../to-iterator-right' ) );\n\n/**\n* @name typedarray2json\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-json}\n*/\nsetReadOnly( ns, 'typedarray2json', require( './../to-json' ) );\n\n/**\n* @name sparsearray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-sparse-iterator}\n*/\nsetReadOnly( ns, 'sparsearray2iterator', require( './../to-sparse-iterator' ) );\n\n/**\n* @name sparsearray2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-sparse-iterator-right}\n*/\nsetReadOnly( ns, 'sparsearray2iteratorRight', require( './../to-sparse-iterator-right' ) );\n\n/**\n* @name stridedarray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-strided-iterator}\n*/\nsetReadOnly( ns, 'stridedarray2iterator', require( './../to-strided-iterator' ) );\n\n/**\n* @name arrayview2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-view-iterator}\n*/\nsetReadOnly( ns, 'arrayview2iterator', require( './../to-view-iterator' ) );\n\n/**\n* @name arrayview2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-view-iterator-right}\n*/\nsetReadOnly( ns, 'arrayview2iteratorRight', require( './../to-view-iterator-right' ) );\n\n/**\n* @name typedarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed}\n*/\nsetReadOnly( ns, 'typedarray', require( './../typed' ) );\n\n/**\n* @name complexarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex}\n*/\nsetReadOnly( ns, 'complexarray', require( './../typed-complex' ) );\n\n/**\n* @name complexarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex-ctors}\n*/\nsetReadOnly( ns, 'complexarrayCtors', require( './../typed-complex-ctors' ) );\n\n/**\n* @name complexarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex-dtypes}\n*/\nsetReadOnly( ns, 'complexarrayDataTypes', require( './../typed-complex-dtypes' ) );\n\n/**\n* @name typedarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-ctors}\n*/\nsetReadOnly( ns, 'typedarrayCtors', require( './../typed-ctors' ) );\n\n/**\n* @name typedarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-dtypes}\n*/\nsetReadOnly( ns, 'typedarrayDataTypes', require( './../typed-dtypes' ) );\n\n/**\n* @name floatarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-float-ctors}\n*/\nsetReadOnly( ns, 'floatarrayCtors', require( './../typed-float-ctors' ) );\n\n/**\n* @name floatarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-float-dtypes}\n*/\nsetReadOnly( ns, 'floatarrayDataTypes', require( './../typed-float-dtypes' ) );\n\n/**\n* @name intarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-integer-ctors}\n*/\nsetReadOnly( ns, 'intarrayCtors', require( './../typed-integer-ctors' ) );\n\n/**\n* @name intarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarrayDataTypes', require( './../typed-integer-dtypes' ) );\n\n/**\n* @name realarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real}\n*/\nsetReadOnly( ns, 'realarray', require( './../typed-real' ) );\n\n/**\n* @name realarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-ctors}\n*/\nsetReadOnly( ns, 'realarrayCtors', require( './../typed-real-ctors' ) );\n\n/**\n* @name realarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-dtypes}\n*/\nsetReadOnly( ns, 'realarrayDataTypes', require( './../typed-real-dtypes' ) );\n\n/**\n* @name realarrayFloatCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-float-ctors}\n*/\nsetReadOnly( ns, 'realarrayFloatCtors', require( './../typed-real-float-ctors' ) );\n\n/**\n* @name realarrayFloatDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-float-dtypes}\n*/\nsetReadOnly( ns, 'realarrayFloatDataTypes', require( './../typed-real-float-dtypes' ) );\n\n/**\n* @name intarraySignedCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-signed-integer-ctors}\n*/\nsetReadOnly( ns, 'intarraySignedCtors', require( './../typed-signed-integer-ctors' ) );\n\n/**\n* @name intarraySignedDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-signed-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarraySignedDataTypes', require( './../typed-signed-integer-dtypes' ) );\n\n/**\n* @name intarrayUnsignedCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-unsigned-integer-ctors}\n*/\nsetReadOnly( ns, 'intarrayUnsignedCtors', require( './../typed-unsigned-integer-ctors' ) );\n\n/**\n* @name intarrayUnsignedDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-unsigned-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarrayUnsignedDataTypes', require( './../typed-unsigned-integer-dtypes' ) );\n\n/**\n* @name Uint8Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint8}\n*/\nsetReadOnly( ns, 'Uint8Array', require( './../uint8' ) );\n\n/**\n* @name Uint8ClampedArray\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint8c}\n*/\nsetReadOnly( ns, 'Uint8ClampedArray', require( './../uint8c' ) );\n\n/**\n* @name Uint16Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint16}\n*/\nsetReadOnly( ns, 'Uint16Array', require( './../uint16' ) );\n\n/**\n* @name Uint32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint32}\n*/\nsetReadOnly( ns, 'Uint32Array', require( './../uint32' ) );\n\n/**\n* @name azeros\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/zeros}\n*/\nsetReadOnly( ns, 'azeros', require( './../zeros' ) );\n\n/**\n* @name azerosLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/zeros-like}\n*/\nsetReadOnly( ns, 'azerosLike', require( './../zeros-like' ) );\n\n/**\n* @name constants\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/constants/array}\n*/\nsetReadOnly( ns, 'constants', require( '@stdlib/constants/array' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n"], - "mappings": "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", - "names": ["require_main", "__commonJSMin", "exports", "module", "TYPE", "isAccessorArray", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "SETTERS", "setFloat64", "setFloat32", "setInt32", "setInt16", "setInt8", "setUint32", "setUint16", "setUint8", "setUint8c", "setGeneric", "setArrayLike", "arr", "idx", "value", "setter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "GETTERS", "getComplex128", "getComplex64", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "SETTERS", "setComplex128", "setComplex64", "setArrayLike", "arr", "idx", "value", "setter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctor2dtype", "__commonJSMin", "exports", "module", "ctor2dtypes", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasFloat64ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasFloat32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint16ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt16ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint8ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint8ClampedArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt8ArraySupport", "builtin", "polyfill", "ctor", "require_from_iterator", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "realf", "imagf", "format", "fromIterator", "it", "out", "v", "z", "require_from_iterator_map", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "realf", "imagf", "format", "fromIteratorMap", "it", "clbk", "thisArg", "out", "v", "z", "i", "require_from_array", "__commonJSMin", "exports", "module", "isComplexLike", "realf", "imagf", "fromArray", "buf", "arr", "len", "v", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isArrayLikeObject", "isCollection", "isArrayBuffer", "isObject", "isArray", "isFunction", "isComplexLike", "isEven", "isInteger", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "setReadOnly", "setReadOnlyAccessor", "Float32Array", "Complex64", "format", "realf", "imagf", "reinterpret64", "reinterpret128", "getter", "accessorGetter", "fromIterator", "fromIteratorMap", "fromArray", "BYTES_PER_ELEMENT", "HAS_ITERATOR_SYMBOL", "isComplexArray", "value", "Complex64Array", "isComplexArrayConstructor", "isComplex64Array", "isComplex128Array", "byteOffset", "nargs", "buf", "len", "src", "thisArg", "clbk", "out", "tmp", "get", "flg", "v", "i", "j", "args", "target", "start", "buffer", "self", "iter", "FLG", "next", "end", "factory", "z", "idx", "sbuf", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_from_iterator", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "format", "real", "imag", "fromIterator", "it", "out", "v", "z", "require_from_iterator_map", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "format", "real", "imag", "fromIteratorMap", "it", "clbk", "thisArg", "out", "v", "z", "i", "require_from_array", "__commonJSMin", "exports", "module", "isComplexLike", "real", "imag", "fromArray", "buf", "arr", "len", "v", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isArrayLikeObject", "isCollection", "isArrayBuffer", "isObject", "isArray", "isFunction", "isComplexLike", "isEven", "isInteger", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "setReadOnly", "setReadOnlyAccessor", "Float64Array", "Complex128", "real", "imag", "reinterpret64", "reinterpret128", "getter", "accessorGetter", "format", "fromIterator", "fromIteratorMap", "fromArray", "BYTES_PER_ELEMENT", "HAS_ITERATOR_SYMBOL", "isComplexArray", "value", "Complex128Array", "isComplexArrayConstructor", "isComplex64Array", "isComplex128Array", "byteOffset", "nargs", "buf", "len", "src", "thisArg", "clbk", "out", "tmp", "get", "flg", "v", "i", "j", "args", "target", "start", "buffer", "self", "iter", "FLG", "next", "end", "factory", "z", "idx", "sbuf", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Uint32Array", "Int32Array", "Uint16Array", "Int16Array", "Uint8Array", "Uint8ClampedArray", "Int8Array", "Complex64Array", "Complex128Array", "CTORS", "require_dtypes", "__commonJSMin", "exports", "module", "DTYPES", "require_main", "__commonJSMin", "exports", "module", "isBuffer", "isArray", "constructorName", "ctor2dtype", "CTORS", "DTYPES", "NTYPES", "dtype", "value", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "getter", "setter", "accessorGetter", "accessorSetter", "dtype", "accessors", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadWriteAccessor", "setReadOnly", "accessors", "isCollection", "format", "setLength", "len", "getLength", "AccessorArray", "arr", "o", "idx", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "accessors", "arraylike2object", "x", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "contains", "x", "value", "len", "get", "dt", "i", "require_factory", "__commonJSMin", "exports", "module", "isCollection", "isAccessorArray", "accessorGetter", "dtype", "format", "factory", "x", "get", "len", "dt", "contains", "accessors", "value", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "factory", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "binary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "z0", "z1", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "x1", "x2", "y0", "y1", "y2", "z0", "z1", "z2", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "z0", "z1", "z2", "z3", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "x", "y", "z", "ndims", "shape", "dim", "fcn", "S", "d", "i", "binarynd", "arrays", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copy", "x", "out", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "value", "len", "arr", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "zeros", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copy", "zeros", "format", "broadcastArray", "x", "inShape", "outShape", "data", "dim", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "dy0", "dy1", "S0", "S1", "i0", "i1", "j0", "j1", "k0", "k1", "x0", "y0", "z0", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary3d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "S0", "S1", "S2", "i0", "i1", "i2", "j0", "j1", "j2", "k0", "k1", "k2", "x0", "x1", "y0", "y1", "z0", "z1", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary4d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "k0", "k1", "k2", "k3", "x0", "x1", "x2", "y0", "y1", "y2", "z0", "z1", "z2", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary5d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "k0", "k1", "k2", "k3", "k4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "z0", "z1", "z2", "z3", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bternary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "dy0", "dy1", "dz0", "dz1", "S0", "S1", "i0", "i1", "j0", "j1", "k0", "k1", "m0", "m1", "x0", "y0", "z0", "w0", "sh", "st", "o", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "S0", "S1", "i0", "i1", "j0", "j1", "x0", "y0", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary3d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "S0", "S1", "S2", "i0", "i1", "i2", "j0", "j1", "j2", "x0", "x1", "y0", "y1", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary4d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "x0", "x1", "x2", "y0", "y1", "y2", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary5d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dx4", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "pow", "cartesianPower", "x", "n", "out", "tmp", "idx", "len", "N", "s", "i", "j", "k", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "cartesianProduct", "x1", "x2", "out", "M", "N", "v", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "cartesianSquare", "x", "out", "N", "v", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "copy", "x", "out", "len", "get", "dt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filledBy", "len", "clbk", "thisArg", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled2d", "value", "shape", "arr", "S0", "S1", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2dBy", "shape", "clbk", "thisArg", "arr", "a0", "S0", "S1", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled3d", "value", "shape", "out", "a1", "S0", "S1", "S2", "i2", "i1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "S0", "S1", "S2", "i0", "i1", "i2", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled4d", "value", "shape", "out", "a1", "a2", "S0", "S1", "S2", "S3", "i1", "i2", "i3", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "a2", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled5d", "value", "shape", "out", "a1", "a2", "a3", "S0", "S1", "S2", "S3", "S4", "i1", "i2", "i3", "i4", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "a2", "a3", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "recurse", "value", "ndims", "shape", "dim", "out", "S", "d", "i", "fillednd", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "ndims", "shape", "dim", "indices", "out", "clbk", "thisArg", "idx", "FLG", "S", "d", "i", "filledndBy", "require_lib", "__commonJSMin", "exports", "module", "main", "require_assign", "__commonJSMin", "exports", "module", "shape2strides", "vind2bind", "numel", "grev", "zeros", "MODE", "copy", "x", "N", "out", "stride", "offset", "i", "recurseLexicographic", "ndims", "shape", "dim", "FLG", "S", "d", "flattenColexicographic", "len", "tmp", "ord", "sh", "sx", "j", "flatten", "colexicographic", "require_main", "__commonJSMin", "exports", "module", "numel", "zeros", "assign", "flatten", "x", "shape", "colexicographic", "out", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_assign", "__commonJSMin", "exports", "module", "shape2strides", "vind2bind", "numel", "grev", "zeros", "copy", "MODE", "copyBy", "x", "N", "out", "stride", "offset", "clbk", "thisArg", "i", "recurseLexicographic", "orig", "ndims", "shape", "dim", "indices", "FLG", "idx", "S", "d", "flattenColexicographic", "len", "tmp", "ord", "sh", "sx", "j", "flattenBy", "colexicographic", "require_main", "__commonJSMin", "exports", "module", "numel", "zeros", "assign", "flattenBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten2d", "x", "shape", "colexicographic", "out", "S0", "S1", "i0", "i1", "a0", "require_assign", "__commonJSMin", "exports", "module", "flatten2d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "i0", "i1", "a0", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten2dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "i0", "i1", "a0", "require_assign", "__commonJSMin", "exports", "module", "flatten2dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "i0", "i1", "a0", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten3d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "require_assign", "__commonJSMin", "exports", "module", "flatten3d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten3dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "require_assign", "__commonJSMin", "exports", "module", "flatten3dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten4d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "require_assign", "__commonJSMin", "exports", "module", "flatten4d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten4dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "require_assign", "__commonJSMin", "exports", "module", "flatten4dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten5d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "require_assign", "__commonJSMin", "exports", "module", "flatten5d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten5dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "require_assign", "__commonJSMin", "exports", "module", "flatten5dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "ceil", "incrspace", "x1", "x2", "increment", "arr", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "last", "arr", "get", "idx", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "linspace", "x1", "x2", "len", "arr", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "pow", "logspace", "a", "b", "len", "arr", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskbinary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "m0", "x", "y", "z", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskunary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "m0", "x", "y", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskunary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "m0", "m1", "x", "y", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "nCartesianProduct", "x1", "x2", "nargs", "dims", "arr", "out", "tmp", "arg", "idx", "N", "s", "i", "j", "k", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "oneTo", "n", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "ones", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2d", "ones2d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3d", "ones3d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4d", "ones4d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5d", "ones5d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "fillednd", "onesnd", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "take", "x", "indices", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "w0", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x2", "y2", "z2", "w2", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x2", "y2", "z2", "w2", "x3", "y3", "z3", "w3", "x", "y", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "AccessorArray", "toAccessorArray", "arr", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary2dBy", "arrays", "shape", "fcn", "clbk", "thisArg", "S0", "S1", "i0", "i1", "x0", "y0", "x", "y", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "x1", "x2", "y0", "y1", "y2", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "x", "y", "ndims", "shape", "dim", "fcn", "S", "d", "i", "unarynd", "arrays", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unitspace", "x1", "x2", "arr", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "n", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2d", "zeros2d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3d", "zeros3d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4d", "zeros4d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5d", "zeros5d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "fillednd", "zerosnd", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasArrayBufferSupport", "builtin", "polyfill", "ctor", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isCollection", "getType", "ctors", "reinterpret128", "reinterpret64", "format", "gcopy", "copy", "isComplex64", "dtype", "isComplex128", "convert", "x", "isc64", "ctor", "xbuf", "obuf", "out", "len", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "getType", "convert", "format", "convertSame", "x", "y", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasDataViewSupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "hasOwnProp", "isInteger", "isString", "isObject", "format", "floor", "round", "ceil", "timestamp", "rounders", "validDate", "value", "name", "type", "datespace", "start", "stop", "length", "options", "opts", "len", "flg", "arr", "end", "fcn", "tmp", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_buffer_uint8array", "__commonJSMin", "exports", "module", "allocUnsafe", "isUint8Array", "check", "buf", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "allocUnsafe", "ctors", "zeros", "bytesPerElement", "format", "empty", "length", "nbytes", "offset", "dtype", "ctor", "buf", "out", "nb", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "ctors", "gzeros", "format", "zeros", "length", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_polyfill", "__commonJSMin", "exports", "module", "zeros", "empty", "length", "require_lib", "__commonJSMin", "exports", "module", "isBufferUint8Array", "main", "polyfill", "empty", "require_main", "__commonJSMin", "exports", "module", "dtype", "empty", "format", "emptyLike", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isArrayBuffer", "isObject", "isFunction", "ctors", "gfill", "filled", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "iterLength", "format", "HAS_ITERATOR_SYMBOL", "filledIterator", "it", "value", "arr", "v", "filledAccessors", "i", "filledarray", "nargs", "dtype", "ctor", "len", "arg", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isArrayBuffer", "isObject", "isFunction", "ctors", "gfillBy", "filledArray", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "iterLength", "format", "HAS_ITERATOR_SYMBOL", "DEFAULT_DTYPE", "filledArrayIterator", "it", "clbk", "thisArg", "arr", "i", "v", "filledAccessors", "filledarrayBy", "nargs", "dtype", "ctor", "len", "arg", "callback", "value", "aidx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isCollection", "isIteratorLike", "isAccessorArray", "accessorSetter", "setter", "dtype", "format", "iterator2array", "iterator", "thisArg", "fcn", "out", "len", "set", "dt", "i", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "ctors", "afill", "gfill", "format", "full", "length", "value", "dtype", "ctor", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "dtype", "full", "Complex128", "Complex64", "fullLike", "x", "value", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ceil", "isNumber", "isnan", "format", "MAX_LENGTH", "gen", "incrspace", "x1", "x2", "increment", "len", "inc", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Complex128Array", "Complex64Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_generic_real", "__commonJSMin", "exports", "module", "linspace", "start", "stop", "len", "endpoint", "arr", "N", "d", "i", "require_generic_complex", "__commonJSMin", "exports", "module", "Complex64", "Complex128", "real", "imag", "realf", "imagf", "linspace", "dt1", "start", "dt2", "stop", "len", "endpoint", "cmplx", "isf32", "arr", "re1", "re2", "im1", "im2", "re", "im", "dr", "di", "N", "i", "require_typed_real", "__commonJSMin", "exports", "module", "linspace", "out", "start", "stop", "len", "endpoint", "N", "d", "i", "require_typed_complex", "__commonJSMin", "exports", "module", "real", "imag", "realf", "imagf", "linspace", "out", "dt1", "start", "dt2", "stop", "len", "endpoint", "re1", "re2", "im1", "im2", "dr", "di", "N", "i", "j", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isString", "isBoolean", "format", "validate", "opts", "options", "require_defaults", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "isComplexLike", "isNumber", "isNonNegativeInteger", "isnan", "dtype", "ctors", "reinterpret64", "reinterpret128", "format", "genreal", "gencmplx", "typedreal", "typedcmplx", "validate", "defaults", "linspace", "start", "stop", "len", "opts", "ctor", "err", "out", "dt1", "dt2", "flg", "require_accessors_complex", "__commonJSMin", "exports", "module", "Complex64", "Complex128", "real", "imag", "realf", "imagf", "linspace", "out", "dt1", "start", "dt2", "stop", "len", "endpoint", "cmplx", "isf32", "re1", "re2", "im1", "im2", "set", "buf", "re", "im", "dr", "di", "N", "i", "require_accessors_real", "__commonJSMin", "exports", "module", "linspace", "out", "start", "stop", "len", "endpoint", "buf", "set", "N", "d", "i", "require_assign", "__commonJSMin", "exports", "module", "isComplexLike", "isNumber", "isCollection", "format", "isnan", "dtype", "adtype", "reinterpret64", "reinterpret128", "arraylike2object", "acccmplx", "accreal", "typedcmplx", "typedreal", "validate", "defaults", "linspace", "start", "stop", "out", "opts", "err", "dt1", "dt2", "flg", "odt", "o", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "isNumber", "isNonNegativeInteger", "format", "isnan", "gen", "logspace", "a", "b", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isInteger", "isNegativeZero", "isComplexLike", "PINF", "NINF", "FLOAT32_SMALLEST_SUBNORMAL", "FLOAT32_MAX_SAFE_INTEGER", "FLOAT32_MIN_SAFE_INTEGER", "INT8_MIN", "INT16_MIN", "INT32_MIN", "UINT8_MAX", "UINT16_MAX", "UINT32_MAX", "minFloatDataType", "value", "minDataType", "require_lib", "__commonJSMin", "exports", "module", "minDataType", "require_main", "__commonJSMin", "exports", "module", "Complex128", "Complex64", "full", "format", "Z128", "Z64", "DTYPES", "nans", "length", "dtype", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "dtype", "full", "Complex128", "Complex64", "format", "Z128", "Z64", "DTYPES", "nansLike", "x", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_next_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "NEXT_DTYPES", "generateTable", "dtypes", "ntypes", "out", "nextDataType", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "Complex128", "Complex64", "full", "Z128", "Z64", "ones", "length", "dtype", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "dtype", "full", "Complex128", "Complex64", "format", "Z128", "Z64", "onesLike", "x", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isNonNegativeInteger", "format", "validate", "opts", "options", "require_pool", "__commonJSMin", "exports", "module", "pool", "n", "out", "i", "require_bytes_per_element", "__commonJSMin", "exports", "module", "require_factory", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isTypedArrayLike", "isArrayBuffer", "isComplex64Array", "isComplex128Array", "setReadOnly", "setReadOnlyAccessor", "ctors", "reinterpret64", "reinterpret128", "accessors", "adtype", "format", "ArrayBuffer", "ceil", "floor", "ceil2", "log2", "min", "defaults", "validate", "createPool", "BYTES_PER_ELEMENT", "Complex64Array", "Complex128Array", "isCmplx64Array", "arr", "isCmplx128Array", "factory", "options", "nbytes", "pool", "opts", "err", "malloc", "calloc", "free", "clear", "getBytes", "arraybuffer", "n", "buf", "i", "typedarray", "ctor", "len", "dtype", "nargs", "out", "set", "get", "tmp", "p", "require_main", "__commonJSMin", "exports", "module", "factory", "typedarraypool", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "factory", "require_promotion_rules", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "PROMOTION_RULES", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "promotionRules", "dtype1", "dtype2", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "isArray", "ctors", "reviveTypedArray", "key", "value", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_safe_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "SAFE_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "generateTable", "safeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_same_kind_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "SAME_KIND_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "generateTable", "sameKindCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isArrayLikeObject", "format", "recurse", "shape", "arr", "v", "check", "ndims", "d", "flg", "len", "i", "arrayShape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "size", "require_lib", "__commonJSMin", "exports", "module", "hasSharedArrayBufferSupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "hasOwnProp", "isFunction", "isCollection", "isObject", "isNonNegativeInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "circarray2iterator", "src", "thisArg", "options", "count", "opts", "iter", "FLG", "fcn", "get", "dt", "i", "next1a", "next1b", "next2a", "next2b", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "array2iterator", "src", "thisArg", "iter", "FLG", "fcn", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "array2iteratorRight", "src", "thisArg", "iter", "FLG", "fcn", "len", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "Complex64Array", "Complex128Array", "CTORS", "require_type", "__commonJSMin", "exports", "module", "instanceOf", "ctorName", "getPrototypeOf", "CTORS", "typeName", "arr", "v", "i", "require_main", "__commonJSMin", "exports", "module", "isTypedArray", "isComplexTypedArray", "reinterpret64", "reinterpret128", "format", "typeName", "typedarray2json", "arr", "data", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "sparsearray2iterator", "src", "thisArg", "iter", "FLG", "fcn", "get", "dt", "i", "next1", "next2", "end", "factory", "len", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "sparsearray2iteratorRight", "src", "thisArg", "iter", "FLG", "fcn", "len", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isNonNegativeInteger", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "stridedarray2iterator", "N", "src", "stride", "offset", "thisArg", "iter", "FLG", "fcn", "idx", "get", "dt", "i", "next1", "next2", "end", "factory", "v", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "arrayview2iterator", "src", "thisArg", "begin", "nargs", "iter", "FLG", "fcn", "end", "get", "dt", "i", "next1", "next2", "finish", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "arrayview2iteratorRight", "src", "thisArg", "begin", "nargs", "iter", "FLG", "fcn", "end", "get", "dt", "i", "next1", "next2", "finish", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "ctors", "reinterpret128", "reinterpret64", "format", "Complex64Array", "Complex128Array", "typedarray", "nargs", "dtype", "ctor", "arg", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Complex128Array", "Complex64Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "format", "ctors", "complexarray", "nargs", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "format", "ctors", "realarray", "nargs", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int16Array", "Int32Array", "Int8Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "dtype", "zeros", "zerosLike", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "setReadOnly", "ns"] + "sources": ["../base/assert/is-accessor-array/lib/main.js", "../base/assert/is-accessor-array/lib/index.js", "../base/getter/lib/main.js", "../base/getter/lib/index.js", "../base/setter/lib/main.js", "../base/setter/lib/index.js", "../base/accessor-getter/lib/main.js", "../base/accessor-getter/lib/index.js", "../base/accessor-setter/lib/main.js", "../base/accessor-setter/lib/index.js", "../dtype/lib/ctor2dtype.js", "../float64/lib/main.js", "../float64/lib/polyfill.js", "../float64/lib/index.js", "../float32/lib/main.js", "../float32/lib/polyfill.js", "../float32/lib/index.js", "../uint32/lib/main.js", "../uint32/lib/polyfill.js", "../uint32/lib/index.js", "../int32/lib/main.js", "../int32/lib/polyfill.js", "../int32/lib/index.js", "../uint16/lib/main.js", "../uint16/lib/polyfill.js", "../uint16/lib/index.js", "../int16/lib/main.js", "../int16/lib/polyfill.js", "../int16/lib/index.js", "../uint8/lib/main.js", "../uint8/lib/polyfill.js", "../uint8/lib/index.js", "../uint8c/lib/main.js", "../uint8c/lib/polyfill.js", "../uint8c/lib/index.js", "../int8/lib/main.js", "../int8/lib/polyfill.js", "../int8/lib/index.js", "../complex64/lib/from_iterator.js", "../complex64/lib/from_iterator_map.js", "../complex64/lib/from_array.js", "../complex64/lib/main.js", "../complex64/lib/index.js", "../complex128/lib/from_iterator.js", "../complex128/lib/from_iterator_map.js", "../complex128/lib/from_array.js", "../complex128/lib/main.js", "../complex128/lib/index.js", "../dtype/lib/ctors.js", "../dtype/lib/dtypes.js", "../dtype/lib/main.js", "../dtype/lib/index.js", "../base/accessors/lib/main.js", "../base/accessors/lib/index.js", "../base/accessor/lib/main.js", "../base/accessor/lib/index.js", "../base/arraylike2object/lib/main.js", "../base/arraylike2object/lib/index.js", "../base/assert/contains/lib/main.js", "../base/assert/contains/lib/factory.js", "../base/assert/contains/lib/index.js", "../base/assert/lib/index.js", "../base/binary2d/lib/main.js", "../base/binary2d/lib/index.js", "../base/binary3d/lib/main.js", "../base/binary3d/lib/index.js", "../base/binary4d/lib/main.js", "../base/binary4d/lib/index.js", "../base/binary5d/lib/main.js", "../base/binary5d/lib/index.js", "../base/binarynd/lib/main.js", "../base/binarynd/lib/index.js", "../base/copy-indexed/lib/main.js", "../base/copy-indexed/lib/index.js", "../base/filled/lib/main.js", "../base/filled/lib/index.js", "../base/zeros/lib/main.js", "../base/zeros/lib/index.js", "../base/broadcast-array/lib/main.js", "../base/broadcast-array/lib/index.js", "../base/broadcasted-binary2d/lib/main.js", "../base/broadcasted-binary2d/lib/index.js", "../base/broadcasted-binary3d/lib/main.js", "../base/broadcasted-binary3d/lib/index.js", "../base/broadcasted-binary4d/lib/main.js", "../base/broadcasted-binary4d/lib/index.js", "../base/broadcasted-binary5d/lib/main.js", "../base/broadcasted-binary5d/lib/index.js", "../base/broadcasted-ternary2d/lib/main.js", "../base/broadcasted-ternary2d/lib/index.js", "../base/broadcasted-unary2d/lib/main.js", "../base/broadcasted-unary2d/lib/index.js", "../base/broadcasted-unary3d/lib/main.js", "../base/broadcasted-unary3d/lib/index.js", "../base/broadcasted-unary4d/lib/main.js", "../base/broadcasted-unary4d/lib/index.js", "../base/broadcasted-unary5d/lib/main.js", "../base/broadcasted-unary5d/lib/index.js", "../base/cartesian-power/lib/main.js", "../base/cartesian-power/lib/index.js", "../base/cartesian-product/lib/main.js", "../base/cartesian-product/lib/index.js", "../base/cartesian-square/lib/main.js", "../base/cartesian-square/lib/index.js", "../base/copy/lib/main.js", "../base/copy/lib/index.js", "../base/filled-by/lib/main.js", "../base/filled-by/lib/index.js", "../base/filled2d/lib/main.js", "../base/filled2d/lib/index.js", "../base/filled2d-by/lib/main.js", "../base/filled2d-by/lib/index.js", "../base/filled3d/lib/main.js", "../base/filled3d/lib/index.js", "../base/filled3d-by/lib/main.js", "../base/filled3d-by/lib/index.js", "../base/filled4d/lib/main.js", "../base/filled4d/lib/index.js", "../base/filled4d-by/lib/main.js", "../base/filled4d-by/lib/index.js", "../base/filled5d/lib/main.js", "../base/filled5d/lib/index.js", "../base/filled5d-by/lib/main.js", "../base/filled5d-by/lib/index.js", "../base/fillednd/lib/main.js", "../base/fillednd/lib/index.js", "../base/fillednd-by/lib/main.js", "../base/fillednd-by/lib/index.js", "../base/flatten/lib/assign.js", "../base/flatten/lib/main.js", "../base/flatten/lib/index.js", "../base/flatten-by/lib/assign.js", "../base/flatten-by/lib/main.js", "../base/flatten-by/lib/index.js", "../base/flatten2d/lib/main.js", "../base/flatten2d/lib/assign.js", "../base/flatten2d/lib/index.js", "../base/flatten2d-by/lib/main.js", "../base/flatten2d-by/lib/assign.js", "../base/flatten2d-by/lib/index.js", "../base/flatten3d/lib/main.js", "../base/flatten3d/lib/assign.js", "../base/flatten3d/lib/index.js", "../base/flatten3d-by/lib/main.js", "../base/flatten3d-by/lib/assign.js", "../base/flatten3d-by/lib/index.js", "../base/flatten4d/lib/main.js", "../base/flatten4d/lib/assign.js", "../base/flatten4d/lib/index.js", "../base/flatten4d-by/lib/main.js", "../base/flatten4d-by/lib/assign.js", "../base/flatten4d-by/lib/index.js", "../base/flatten5d/lib/main.js", "../base/flatten5d/lib/assign.js", "../base/flatten5d/lib/index.js", "../base/flatten5d-by/lib/main.js", "../base/flatten5d-by/lib/assign.js", "../base/flatten5d-by/lib/index.js", "../base/incrspace/lib/main.js", "../base/incrspace/lib/index.js", "../base/last/lib/main.js", "../base/last/lib/index.js", "../base/linspace/lib/main.js", "../base/linspace/lib/index.js", "../base/logspace/lib/main.js", "../base/logspace/lib/index.js", "../base/mskbinary2d/lib/main.js", "../base/mskbinary2d/lib/index.js", "../base/mskunary2d/lib/main.js", "../base/mskunary2d/lib/index.js", "../base/mskunary3d/lib/main.js", "../base/mskunary3d/lib/index.js", "../base/n-cartesian-product/lib/main.js", "../base/n-cartesian-product/lib/index.js", "../base/one-to/lib/main.js", "../base/one-to/lib/index.js", "../base/ones/lib/main.js", "../base/ones/lib/index.js", "../base/ones2d/lib/main.js", "../base/ones2d/lib/index.js", "../base/ones3d/lib/main.js", "../base/ones3d/lib/index.js", "../base/ones4d/lib/main.js", "../base/ones4d/lib/index.js", "../base/ones5d/lib/main.js", "../base/ones5d/lib/index.js", "../base/onesnd/lib/main.js", "../base/onesnd/lib/index.js", "../base/quaternary2d/lib/main.js", "../base/quaternary2d/lib/index.js", "../base/take/lib/main.js", "../base/take/lib/index.js", "../base/ternary2d/lib/main.js", "../base/ternary2d/lib/index.js", "../base/ternary3d/lib/main.js", "../base/ternary3d/lib/index.js", "../base/ternary4d/lib/main.js", "../base/ternary4d/lib/index.js", "../base/ternary5d/lib/main.js", "../base/ternary5d/lib/index.js", "../base/to-accessor-array/lib/main.js", "../base/to-accessor-array/lib/index.js", "../base/unary2d/lib/main.js", "../base/unary2d/lib/index.js", "../base/unary2d-by/lib/main.js", "../base/unary2d-by/lib/index.js", "../base/unary3d/lib/main.js", "../base/unary3d/lib/index.js", "../base/unary4d/lib/main.js", "../base/unary4d/lib/index.js", "../base/unary5d/lib/main.js", "../base/unary5d/lib/index.js", "../base/unarynd/lib/main.js", "../base/unarynd/lib/index.js", "../base/unitspace/lib/main.js", "../base/unitspace/lib/index.js", "../base/zero-to/lib/main.js", "../base/zero-to/lib/index.js", "../base/zeros2d/lib/main.js", "../base/zeros2d/lib/index.js", "../base/zeros3d/lib/main.js", "../base/zeros3d/lib/index.js", "../base/zeros4d/lib/main.js", "../base/zeros4d/lib/index.js", "../base/zeros5d/lib/main.js", "../base/zeros5d/lib/index.js", "../base/zerosnd/lib/main.js", "../base/zerosnd/lib/index.js", "../base/lib/index.js", "../buffer/lib/main.js", "../buffer/lib/polyfill.js", "../buffer/lib/index.js", "../ctors/lib/ctors.js", "../ctors/lib/main.js", "../ctors/lib/index.js", "../convert/lib/main.js", "../convert/lib/index.js", "../convert-same/lib/main.js", "../convert-same/lib/index.js", "../dataview/lib/main.js", "../dataview/lib/polyfill.js", "../dataview/lib/index.js", "../datespace/lib/main.js", "../datespace/lib/index.js", "../dtypes/lib/dtypes.json", "../dtypes/lib/main.js", "../dtypes/lib/index.js", "../empty/lib/is_buffer_uint8array.js", "../typed-ctors/lib/ctors.js", "../typed-ctors/lib/main.js", "../typed-ctors/lib/index.js", "../empty/lib/main.js", "../zeros/lib/main.js", "../zeros/lib/index.js", "../empty/lib/polyfill.js", "../empty/lib/index.js", "../empty-like/lib/main.js", "../empty-like/lib/index.js", "../filled/lib/main.js", "../filled/lib/index.js", "../filled-by/lib/main.js", "../filled-by/lib/index.js", "../from-iterator/lib/main.js", "../from-iterator/lib/index.js", "../full/lib/main.js", "../full/lib/index.js", "../full-like/lib/main.js", "../full-like/lib/index.js", "../incrspace/lib/main.js", "../incrspace/lib/index.js", "../typed-float-ctors/lib/ctors.js", "../typed-float-ctors/lib/main.js", "../typed-float-ctors/lib/index.js", "../linspace/lib/generic_real.js", "../linspace/lib/generic_complex.js", "../linspace/lib/typed_real.js", "../linspace/lib/typed_complex.js", "../linspace/lib/validate.js", "../linspace/lib/defaults.json", "../linspace/lib/main.js", "../linspace/lib/accessors_complex.js", "../linspace/lib/accessors_real.js", "../linspace/lib/assign.js", "../linspace/lib/index.js", "../logspace/lib/main.js", "../logspace/lib/index.js", "../min-dtype/lib/main.js", "../min-dtype/lib/index.js", "../nans/lib/main.js", "../nans/lib/index.js", "../nans-like/lib/main.js", "../nans-like/lib/index.js", "../next-dtype/lib/next_dtypes.json", "../next-dtype/lib/main.js", "../next-dtype/lib/index.js", "../ones/lib/main.js", "../ones/lib/index.js", "../ones-like/lib/main.js", "../ones-like/lib/index.js", "../pool/lib/defaults.js", "../pool/lib/validate.js", "../pool/lib/pool.js", "../pool/lib/bytes_per_element.json", "../pool/lib/factory.js", "../pool/lib/main.js", "../pool/lib/index.js", "../promotion-rules/lib/promotion_rules.json", "../promotion-rules/lib/main.js", "../promotion-rules/lib/index.js", "../reviver/lib/ctors.js", "../reviver/lib/main.js", "../reviver/lib/index.js", "../safe-casts/lib/safe_casts.json", "../safe-casts/lib/main.js", "../safe-casts/lib/index.js", "../same-kind-casts/lib/same_kind_casts.json", "../same-kind-casts/lib/main.js", "../same-kind-casts/lib/index.js", "../shape/lib/main.js", "../shape/lib/index.js", "../shared-buffer/lib/main.js", "../shared-buffer/lib/polyfill.js", "../shared-buffer/lib/index.js", "../to-circular-iterator/lib/main.js", "../to-circular-iterator/lib/index.js", "../to-iterator/lib/main.js", "../to-iterator/lib/index.js", "../to-iterator-right/lib/main.js", "../to-iterator-right/lib/index.js", "../to-json/lib/ctors.js", "../to-json/lib/type.js", "../to-json/lib/main.js", "../to-json/lib/index.js", "../to-sparse-iterator/lib/main.js", "../to-sparse-iterator/lib/index.js", "../to-sparse-iterator-right/lib/main.js", "../to-sparse-iterator-right/lib/index.js", "../to-strided-iterator/lib/main.js", "../to-strided-iterator/lib/index.js", "../to-view-iterator/lib/main.js", "../to-view-iterator/lib/index.js", "../to-view-iterator-right/lib/main.js", "../to-view-iterator-right/lib/index.js", "../typed/lib/main.js", "../typed/lib/index.js", "../typed-complex-ctors/lib/ctors.js", "../typed-complex-ctors/lib/main.js", "../typed-complex-ctors/lib/index.js", "../typed-complex/lib/main.js", "../typed-complex/lib/index.js", "../typed-complex-dtypes/lib/dtypes.json", "../typed-complex-dtypes/lib/main.js", "../typed-complex-dtypes/lib/index.js", "../typed-dtypes/lib/dtypes.json", "../typed-dtypes/lib/main.js", "../typed-dtypes/lib/index.js", "../typed-float-dtypes/lib/dtypes.json", "../typed-float-dtypes/lib/main.js", "../typed-float-dtypes/lib/index.js", "../typed-integer-ctors/lib/ctors.js", "../typed-integer-ctors/lib/main.js", "../typed-integer-ctors/lib/index.js", "../typed-integer-dtypes/lib/dtypes.json", "../typed-integer-dtypes/lib/main.js", "../typed-integer-dtypes/lib/index.js", "../typed-real/lib/main.js", "../typed-real/lib/index.js", "../typed-real-ctors/lib/ctors.js", "../typed-real-ctors/lib/main.js", "../typed-real-ctors/lib/index.js", "../typed-real-dtypes/lib/dtypes.json", "../typed-real-dtypes/lib/main.js", "../typed-real-dtypes/lib/index.js", "../typed-real-float-ctors/lib/ctors.js", "../typed-real-float-ctors/lib/main.js", "../typed-real-float-ctors/lib/index.js", "../typed-real-float-dtypes/lib/dtypes.json", "../typed-real-float-dtypes/lib/main.js", "../typed-real-float-dtypes/lib/index.js", "../typed-signed-integer-ctors/lib/ctors.js", "../typed-signed-integer-ctors/lib/main.js", "../typed-signed-integer-ctors/lib/index.js", "../typed-signed-integer-dtypes/lib/dtypes.json", "../typed-signed-integer-dtypes/lib/main.js", "../typed-signed-integer-dtypes/lib/index.js", "../typed-unsigned-integer-ctors/lib/ctors.js", "../typed-unsigned-integer-ctors/lib/main.js", "../typed-unsigned-integer-ctors/lib/index.js", "../typed-unsigned-integer-dtypes/lib/dtypes.json", "../typed-unsigned-integer-dtypes/lib/main.js", "../typed-unsigned-integer-dtypes/lib/index.js", "../zeros-like/lib/main.js", "../zeros-like/lib/index.js", "../lib/index.js"], + "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar TYPE = 'function';\n\n\n// MAIN //\n\n/**\n* Tests if an array-like object supports the accessor (get/set) protocol.\n*\n* @param {Object} value - value to test\n* @returns {boolean} boolean indicating whether a value is an accessor array\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* @example\n* var bool = isAccessorArray( [] );\n* // returns false\n*/\nfunction isAccessorArray( value ) {\n\treturn ( typeof value.get === TYPE && typeof value.set === TYPE ); // eslint-disable-line valid-typeof\n}\n\n\n// EXPORTS //\n\nmodule.exports = isAccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array-like object supports the accessor (get/set) protocol.\n*\n* @module @stdlib/array/base/assert/is-accessor-array\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128array' );\n* var isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\n*\n* var bool = isAccessorArray( new Complex128Array( 10 ) );\n* // returns true\n*\n* bool = isAccessorArray( [] );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'float64': getFloat64,\n\t'float32': getFloat32,\n\t'int32': getInt32,\n\t'int16': getInt16,\n\t'int8': getInt8,\n\t'uint32': getUint32,\n\t'uint16': getUint16,\n\t'uint8': getUint8,\n\t'uint8c': getUint8c,\n\t'generic': getGeneric,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat64( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat64( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* var arr = new Float32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getFloat32( arr, 2 );\n* // returns 3.0\n*/\nfunction getFloat32( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int32Array = require( '@stdlib/array/int32' );\n*\n* var arr = new Int32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt32( arr, 2 );\n* // returns 3\n*/\nfunction getInt32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int16Array = require( '@stdlib/array/int16' );\n*\n* var arr = new Int16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt16( arr, 2 );\n* // returns 3\n*/\nfunction getInt16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Int8Array = require( '@stdlib/array/int8' );\n*\n* var arr = new Int8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getInt8( arr, 2 );\n* // returns 3\n*/\nfunction getInt8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint32Array = require( '@stdlib/array/uint32' );\n*\n* var arr = new Uint32Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint32( arr, 2 );\n* // returns 3\n*/\nfunction getUint32( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint16Array = require( '@stdlib/array/uint16' );\n*\n* var arr = new Uint16Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint16( arr, 2 );\n* // returns 3\n*/\nfunction getUint16( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* var arr = new Uint8Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8( arr, 2 );\n* // returns 3\n*/\nfunction getUint8( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array/uint8c' );\n*\n* var arr = new Uint8ClampedArray( [ 1, 2, 3, 4 ] );\n*\n* var v = getUint8c( arr, 2 );\n* // returns 3\n*/\nfunction getUint8c( arr, idx ) { // eslint-disable-line stdlib/jsdoc-doctest-decimal-point\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getGeneric( arr, 2 );\n* // returns 3\n*/\nfunction getGeneric( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n/**\n* Returns an element from an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr[ idx ];\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an indexed array-like object.\n*\n* @module @stdlib/array/base/getter\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n* var get = require( '@stdlib/array/base/getter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'float64': setFloat64,\n\t'float32': setFloat32,\n\t'int32': setInt32,\n\t'int16': setInt16,\n\t'int8': setInt8,\n\t'uint32': setUint32,\n\t'uint16': setUint16,\n\t'uint8': setUint8,\n\t'uint8c': setUint8c,\n\t'generic': setGeneric,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Float64Array`.\n*\n* @private\n* @param {Float64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( 4 );\n*\n* setFloat64( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat64( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Float32Array`.\n*\n* @private\n* @param {Float32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Float32Array = require( '@stdlib/array/float32' );\n*\n* var arr = new Float32Array( 4 );\n*\n* setFloat32( arr, 2, 3.0 );\n*\n* var v = arr[ 2 ];\n* // returns 3.0\n*/\nfunction setFloat32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int32Array`.\n*\n* @private\n* @param {Int32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int32Array = require( '@stdlib/array/int32' );\n*\n* var arr = new Int32Array( 4 );\n*\n* setInt32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int16Array`.\n*\n* @private\n* @param {Int16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int16Array = require( '@stdlib/array/int16' );\n*\n* var arr = new Int16Array( 4 );\n*\n* setInt16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an `Int8Array`.\n*\n* @private\n* @param {Int8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Int8Array = require( '@stdlib/array/int8' );\n*\n* var arr = new Int8Array( 4 );\n*\n* setInt8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setInt8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint32Array`.\n*\n* @private\n* @param {Uint32Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint32Array = require( '@stdlib/array/uint32' );\n*\n* var arr = new Uint32Array( 4 );\n*\n* setUint32( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint32( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint16Array`.\n*\n* @private\n* @param {Uint16Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint16Array = require( '@stdlib/array/uint16' );\n*\n* var arr = new Uint16Array( 4 );\n*\n* setUint16( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint16( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8Array`.\n*\n* @private\n* @param {Uint8Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint8Array = require( '@stdlib/array/uint8' );\n*\n* var arr = new Uint8Array( 4 );\n*\n* setUint8( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a `Uint8ClampedArray`.\n*\n* @private\n* @param {Uint8ClampedArray} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {number} value - value to set\n*\n* @example\n* var Uint8ClampedArray = require( '@stdlib/array/uint8c' );\n*\n* var arr = new Uint8ClampedArray( 4 );\n*\n* setUint8c( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setUint8c( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in a generic `Array`.\n*\n* @private\n* @param {Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setGeneric( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setGeneric( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n/**\n* Sets an element in an indexed array-like object.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {*} value - value to set\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* setArrayLike( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr[ idx ] = value;\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an indexed array-like object.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 3 );\n*\n* var v = arr[ 2 ];\n* // returns 3\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for setting an element in an indexed array-like object.\n*\n* @module @stdlib/array/base/setter\n*\n* @example\n* var dtype = require( '@stdlib/array/dtype' );\n* var set = require( '@stdlib/array/base/setter' );\n*\n* var arr = [ 1, 2, 3, 4 ];\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar GETTERS = {\n\t'complex128': getComplex128,\n\t'complex64': getComplex64,\n\t'default': getArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an element from a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex128( arr, 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 3.0\n*\n* var im = imag( v );\n* // returns 4.0\n*/\nfunction getComplex128( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {number} element value\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var v = getComplex64( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getComplex64( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n/**\n* Returns an element from an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @returns {*} element value\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* var v = getArrayLike( arr, 2 );\n* // returns 3\n*/\nfunction getArrayLike( arr, idx ) {\n\treturn arr.get( idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction getter( dtype ) {\n\tvar f = GETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn GETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = getter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for retrieving an element from an array-like object supporting the get/set protocol.\n*\n* @module @stdlib/array/base/accessor-getter\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n* var get = require( '@stdlib/array/base/accessor-getter' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var get = getter( dtype( arr ) );\n* var v = get( arr, 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// VARIABLES //\n\nvar SETTERS = {\n\t'complex128': setComplex128,\n\t'complex64': setComplex64,\n\t'default': setArrayLike\n};\n\n\n// FUNCTIONS //\n\n/**\n* Sets an element in a `Complex128Array`.\n*\n* @private\n* @param {Complex128Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex128( arr, 1, new Complex128( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 11.0\n*/\nfunction setComplex128( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in a `Complex64Array`.\n*\n* @private\n* @param {Complex64Array} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* setComplex64( arr, 1, new Complex64( 10.0, 11.0 ) );\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setComplex64( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n/**\n* Sets an element in an array-like object supporting the get/set protocol.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {NonNegativeInteger} idx - element index\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n*\n* @example\n* var arr = [ 1, 2, 3, 4 ];\n*\n* function get( idx ) {\n* return arr[ idx ];\n* }\n*\n* function set( value, idx ) {\n* arr[ idx ] = value;\n* }\n*\n* arr.get = get;\n* arr.set = set;\n*\n* setArrayLike( arr, 2, 10 );\n*\n* var v = arr[ 2 ];\n* // returns 10\n*/\nfunction setArrayLike( arr, idx, value ) {\n\tarr.set( value, idx );\n}\n\n\n// MAIN //\n\n/**\n* Returns an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @param {string} dtype - array dtype\n* @returns {Function} accessor\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\nfunction setter( dtype ) {\n\tvar f = SETTERS[ dtype ];\n\tif ( typeof f === 'function' ) {\n\t\treturn f;\n\t}\n\treturn SETTERS.default;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setter;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return an accessor function for setting an element in an array-like object supporting the get/set protocol.\n*\n* @module @stdlib/array/base/accessor-setter\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n* var dtype = require( '@stdlib/array/dtype' );\n* var setter = require( '@stdlib/array/base/accessor-setter' );\n*\n* var arr = new Complex64Array( [ 1, 2, 3, 4 ] );\n*\n* var set = setter( dtype( arr ) );\n* set( arr, 1, new Complex64( 10.0, 11.0 ) );\n*\n* var v = arr.get( 1 );\n* // returns \n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 11.0\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Mapping from array constructors to data types...\nvar ctor2dtypes = {\n\t'Float32Array': 'float32',\n\t'Float64Array': 'float64',\n\t'Array': 'generic',\n\t'Int16Array': 'int16',\n\t'Int32Array': 'int32',\n\t'Int8Array': 'int8',\n\t'Uint16Array': 'uint16',\n\t'Uint32Array': 'uint32',\n\t'Uint8Array': 'uint8',\n\t'Uint8ClampedArray': 'uint8c',\n\t'Complex64Array': 'complex64',\n\t'Complex128Array': 'complex128'\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctor2dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float64Array === 'function' ) ? Float64Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of double-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of double-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float64\n*\n* @example\n* var ctor = require( '@stdlib/array/float64' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasFloat64ArraySupport = require( '@stdlib/assert/has-float64array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat64ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Float32Array === 'function' ) ? Float32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of single-precision floating-point numbers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of single-precision floating-point numbers in the platform byte order.\n*\n* @module @stdlib/array/float32\n*\n* @example\n* var ctor = require( '@stdlib/array/float32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasFloat32ArraySupport = require( '@stdlib/assert/has-float32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasFloat32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint32Array === 'function' ) ? Uint32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 32-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 32-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint32\n*\n* @example\n* var ctor = require( '@stdlib/array/uint32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint32ArraySupport = require( '@stdlib/assert/has-uint32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int32Array === 'function' ) ? Int32Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 32-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int32\n*\n* @example\n* var ctor = require( '@stdlib/array/int32' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt32ArraySupport = require( '@stdlib/assert/has-int32array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt32ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint16Array === 'function' ) ? Uint16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 16-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 16-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint16\n*\n* @example\n* var ctor = require( '@stdlib/array/uint16' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint16ArraySupport = require( '@stdlib/assert/has-uint16array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int16Array === 'function' ) ? Int16Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 16-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int16\n*\n* @example\n* var ctor = require( '@stdlib/array/int16' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt16ArraySupport = require( '@stdlib/assert/has-int16array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt16ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8Array === 'function' ) ? Uint8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order.\n*\n* @module @stdlib/array/uint8\n*\n* @example\n* var ctor = require( '@stdlib/array/uint8' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint8ArraySupport = require( '@stdlib/assert/has-uint8array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Uint8ClampedArray === 'function' ) ? Uint8ClampedArray : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.\n*\n* @module @stdlib/array/uint8c\n*\n* @example\n* var ctor = require( '@stdlib/array/uint8c' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasUint8ClampedArraySupport = require( '@stdlib/assert/has-uint8clampedarray-support' ); // eslint-disable-line id-length\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasUint8ClampedArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof Int8Array === 'function' ) ? Int8Array : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Typed array which represents an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructor which returns a typed array representing an array of twos-complement 8-bit signed integers in the platform byte order.\n*\n* @module @stdlib/array/int8\n*\n* @example\n* var ctor = require( '@stdlib/array/int8' );\n*\n* var arr = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasInt8ArraySupport = require( '@stdlib/assert/has-int8array-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasInt8ArraySupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( realf( z ), imagf( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIteratorMap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float32Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float32Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = realf( v );\n\t\tbuf[ j+1 ] = imagf( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromArray;\n", "/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isEven = require( '@stdlib/math/base/assert/is-even' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar Float32Array = require( './../../float32' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar getter = require( './../../base/getter' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar fromIterator = require( './from_iterator.js' );\nvar fromIteratorMap = require( './from_iterator_map.js' );\nvar fromArray = require( './from_array.js' );\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float32Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex64Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex64Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex128Array...\n\t\tvalue.name === 'Complex128Array'\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*/\nfunction isComplex64Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*/\nfunction isComplex128Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT*2\n\t);\n}\n\n\n// MAIN //\n\n/**\n* 64-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `8`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `8`\n* @throws {TypeError} view length must be a positive multiple of `8`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} complex number array\n*\n* @example\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex64Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex64Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex64Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex64Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex64Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex64Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float32Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float32Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float32Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float32Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float32Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float32Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var nbytes = Complex64Array.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex64Array\n* @readonly\n* @type {string}\n* @default 'Complex64Array'\n*\n* @example\n* var str = Complex64Array.name;\n* // returns 'Complex64Array'\n*/\nsetReadOnly( Complex64Array, 'name', 'Complex64Array' );\n\n/**\n* Creates a new 64-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex64Array\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* function clbk( v ) {\n* return new Complex64( realf(v)*2.0, imagf(v)*2.0 );\n* }\n*\n* var arr = Complex64Array.from( [ new Complex64( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex64Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of %u. Length: `%u`.', 2, len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = realf( v );\n\t\t\t\t\tbuf[ j+1 ] = imagf( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 64-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex64Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} 64-bit complex number array\n*\n* @example\n* var arr = Complex64Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex64Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 80\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 8\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnly( Complex64Array.prototype, 'BYTES_PER_ELEMENT', Complex64Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex64Array} modified array\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex64( 1.0, 1.0 ), 0 );\n* arr.set( new Complex64( 2.0, 2.0 ), 1 );\n* arr.set( new Complex64( 3.0, 3.0 ), 2 );\n* arr.set( new Complex64( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = realf( z );\n* // returns 2.0\n*\n* var im = imagf( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex64Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var Complex64 = require( '@stdlib/complex/float32' );\n*\n* var arr = [\n* new Complex64( 1.0, 1.0 ),\n* new Complex64( 2.0, 2.0 ),\n* new Complex64( 3.0, 3.0 )\n* ];\n* arr = new Complex64Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex64Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex64( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex64|void)} array element\n*\n* @example\n* var arr = new Complex64Array( 10 );\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex64Array.prototype, 'get', function get( idx ) {\n\tvar buf;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\tbuf = this._buffer;\n\tidx *= 2;\n\treturn new Complex64( buf[ idx ], buf[ idx+1 ] );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex64Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex64Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex64Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n*\n* @name set\n* @memberof Complex64Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var realf = require( '@stdlib/complex/realf' );\n* var imagf = require( '@stdlib/complex/imagf' );\n*\n* var arr = new Complex64Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = realf( z );\n* // returns 0.0\n*\n* var im = imagf( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = realf( z );\n* // returns 1.0\n*\n* im = imagf( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex64Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = realf( value );\n\t\tbuf[ idx+1 ] = imagf( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float32Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float32Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = realf( v );\n\t\t\tbuf[ idx+1 ] = imagf( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n\n// EXPORTS //\n\nmodule.exports = Complex64Array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* 64-bit complex number array.\n*\n* @module @stdlib/array/complex64\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var arr = new Complex64Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new Complex64Array( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex64Array( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar format = require( '@stdlib/string/format' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tz = v.value;\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. An iterator must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar format = require( '@stdlib/string/format' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {(Array|TypeError)} array or an error\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar z;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tz = clbk.call( thisArg, v.value, i );\n\t\tif ( isArrayLikeObject( z ) && z.length >= 2 ) {\n\t\t\tout.push( z[ 0 ], z[ 1 ] );\n\t\t} else if ( isComplexLike( z ) ) {\n\t\t\tout.push( real( z ), imag( z ) );\n\t\t} else {\n\t\t\treturn new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', z ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIteratorMap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Returns a strided array of real and imaginary components.\n*\n* @private\n* @param {Float64Array} buf - output array\n* @param {Array} arr - array containing complex numbers\n* @returns {(Float64Array|null)} output array or null\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tlen = arr.length;\n\tj = 0;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tv = arr[ i ];\n\t\tif ( !isComplexLike( v ) ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf[ j ] = real( v );\n\t\tbuf[ j+1 ] = imag( v );\n\t\tj += 2; // stride\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromArray;\n", "/* eslint-disable no-restricted-syntax, max-lines, no-invalid-this */\n\n/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isEven = require( '@stdlib/math/base/assert/is-even' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar Float64Array = require( './../../float64' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar getter = require( './../../base/getter' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar format = require( '@stdlib/string/format' );\nvar fromIterator = require( './from_iterator.js' );\nvar fromIteratorMap = require( './from_iterator_map.js' );\nvar fromArray = require( './from_array.js' );\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Float64Array.BYTES_PER_ELEMENT * 2;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a complex typed array.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array\n*/\nfunction isComplexArray( value ) {\n\treturn (\n\t\tvalue instanceof Complex128Array ||\n\t\t(\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t(\n\t\t\t\tvalue.constructor.name === 'Complex64Array' ||\n\t\t\t\tvalue.constructor.name === 'Complex128Array'\n\t\t\t) &&\n\t\t\ttypeof value._length === 'number' && // eslint-disable-line no-underscore-dangle\n\n\t\t\t// NOTE: we don't perform a more rigorous test here for a typed array for performance reasons, as robustly checking for a typed array instance could require walking the prototype tree and performing relatively expensive constructor checks...\n\t\t\ttypeof value._buffer === 'object' // eslint-disable-line no-underscore-dangle\n\t\t)\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a complex typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a complex typed array constructor\n*/\nfunction isComplexArrayConstructor( value ) {\n\treturn (\n\t\tvalue === Complex128Array ||\n\n\t\t// NOTE: weaker test in order to avoid a circular dependency with Complex64Array...\n\t\tvalue.name === 'Complex64Array'\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex64Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex64Array`\n*/\nfunction isComplex64Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex64Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT/2\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a `Complex128Array`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `Complex128Array`\n*/\nfunction isComplex128Array( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'Complex128Array' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n\n// MAIN //\n\n/**\n* 128-bit complex number array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {RangeError} ArrayBuffer byte length must be a multiple of `16`\n* @throws {RangeError} array-like object and typed array input arguments must have a length which is a multiple of two\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} byte offset must be a multiple of `16`\n* @throws {TypeError} view length must be a positive multiple of `16`\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} complex number array\n*\n* @example\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction Complex128Array() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof Complex128Array) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new Complex128Array();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new Complex128Array( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new Complex128Array( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new Complex128Array( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Float64Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\tif ( isNonNegativeInteger( arguments[0] ) ) {\n\t\t\tbuf = new Float64Array( arguments[0]*2 );\n\t\t} else if ( isCollection( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tlen = buf.length;\n\n\t\t\t// If provided a \"generic\" array, peak at the first value, and, if the value is a complex number, try to process as an array of complex numbers, falling back to \"normal\" typed array initialization if we fail and ensuring consistency if the first value had not been a complex number...\n\t\t\tif ( len && isArray( buf ) && isComplexLike( buf[0] ) ) {\n\t\t\t\tbuf = fromArray( new Float64Array( len*2 ), buf );\n\t\t\t\tif ( buf === null ) {\n\t\t\t\t\t// We failed and we are now forced to allocate a new array :-(\n\t\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t\t}\n\t\t\t\t\t// We failed, so fall back to directly setting values...\n\t\t\t\t\tbuf = new Float64Array( arguments[0] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( isComplex64Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret64( buf, 0 );\n\t\t\t\t} else if ( isComplex128Array( buf ) ) {\n\t\t\t\t\tbuf = reinterpret128( buf, 0 );\n\t\t\t\t} else if ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object and typed array arguments must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tbuf = new Float64Array( buf );\n\t\t\t}\n\t\t} else if ( isArrayBuffer( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( !isInteger( buf.byteLength/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. ArrayBuffer byte length must be a multiple of %u. Byte length: `%u`.', BYTES_PER_ELEMENT, buf.byteLength ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else if ( isObject( arguments[0] ) ) {\n\t\t\tbuf = arguments[ 0 ];\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tif ( !isFunction( buf[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = buf[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', buf ) );\n\t\t\t}\n\t\t\tbuf = fromIterator( buf );\n\t\t\tif ( buf instanceof Error ) {\n\t\t\t\tthrow buf;\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arguments[0] ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( !isInteger( byteOffset/BYTES_PER_ELEMENT ) ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Byte offset must be a multiple of %u. Value: `%u`.', BYTES_PER_ELEMENT, byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tlen = buf.byteLength - byteOffset;\n\t\t\tif ( !isInteger( len/BYTES_PER_ELEMENT ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer view byte length must be a multiple of %u. View byte length: `%u`.', BYTES_PER_ELEMENT, len ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Float64Array( buf, byteOffset, len*2 );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length/2 );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var nbytes = Complex128Array.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof Complex128Array\n* @readonly\n* @type {string}\n* @default 'Complex128Array'\n*\n* @example\n* var name = Complex128Array.name;\n* // returns 'Complex128Array'\n*/\nsetReadOnly( Complex128Array, 'name', 'Complex128Array' );\n\n/**\n* Creates a new 128-bit complex number array from an array-like object or an iterable.\n*\n* @name from\n* @memberof Complex128Array\n* @type {Function}\n* @param {(Collection|Object)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {TypeError} an iterator must return either a two element array containing real and imaginary components or a complex number\n* @throws {TypeError} when provided an iterator, a callback must return either a two element array containing real and imaginary components or a complex number\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.from( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function clbk( v ) {\n* return new Complex128( real(v)*2.0, imag(v)*2.0 );\n* }\n*\n* var arr = Complex128Array.from( [ new Complex128( 1.0, 1.0 ) ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*/\nsetReadOnly( Complex128Array, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar flg;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isComplexArray( src ) ) {\n\t\tlen = src.length;\n\t\tif ( clbk ) {\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, src.get( i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\t// Note: array contents affect how we iterate over a provided data source. If only complex number objects, we can extract real and imaginary components. Otherwise, for non-complex number arrays (e.g., `Float64Array`, etc), we assume a strided array where real and imaginary components are interleaved. In the former case, we expect a callback to return real and imaginary components (possibly as a complex number). In the latter case, we expect a callback to return *either* a real or imaginary component.\n\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\t// Detect whether we've been provided an array which returns complex number objects...\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( !isComplexLike( get( src, i ) ) ) {\n\t\t\t\t\tflg = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If an array does not contain only complex number objects, then we assume interleaved real and imaginary components...\n\t\t\tif ( flg ) {\n\t\t\t\tif ( !isEven( len ) ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid argument. First argument must have a length which is a multiple of two. Length: `%u`.', len ) );\n\t\t\t\t}\n\t\t\t\tout = new this( len/2 );\n\t\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tbuf[ i ] = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\t}\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// If an array contains only complex number objects, then we need to extract real and imaginary components...\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( src, i ), i );\n\t\t\t\tif ( isComplexLike( v ) ) {\n\t\t\t\t\tbuf[ j ] = real( v );\n\t\t\t\t\tbuf[ j+1 ] = imag( v );\n\t\t\t\t} else if ( isArrayLikeObject( v ) && v.length >= 2 ) {\n\t\t\t\t\tbuf[ j ] = v[ 0 ];\n\t\t\t\t\tbuf[ j+1 ] = v[ 1 ];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback must return either a two-element array containing real and imaginary components or a complex number. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tif ( tmp instanceof Error ) {\n\t\t\tthrow tmp;\n\t\t}\n\t\tlen = tmp.length / 2;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new 128-bit complex number array from a variable number of arguments.\n*\n* @name of\n* @memberof Complex128Array\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} 128-bit complex number array\n*\n* @example\n* var arr = Complex128Array.of( 1.0, 1.0, 1.0, 1.0 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( Complex128Array, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isComplexArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 160\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 16\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 16\n*/\nsetReadOnly( Complex128Array.prototype, 'BYTES_PER_ELEMENT', Complex128Array.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Complex128Array} modified array\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( 4 );\n*\n* // Set the array elements:\n* arr.set( new Complex128( 1.0, 1.0 ), 0 );\n* arr.set( new Complex128( 2.0, 2.0 ), 1 );\n* arr.set( new Complex128( 3.0, 3.0 ), 2 );\n* arr.set( new Complex128( 4.0, 4.0 ), 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* // Get the last array element:\n* var z = arr.get( 3 );\n*\n* var re = real( z );\n* // returns 2.0\n*\n* var im = imag( z );\n* // returns 2.0\n*/\nsetReadOnly( Complex128Array.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target*2, start*2 );\n\t} else {\n\t\tthis._buffer.copyWithin( target*2, start*2, arguments[2]*2 );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a complex number array\n* @returns {Iterator} iterator\n*\n* @example\n* var Complex128 = require( '@stdlib/complex/float64' );\n*\n* var arr = [\n* new Complex128( 1.0, 1.0 ),\n* new Complex128( 2.0, 2.0 ),\n* new Complex128( 3.0, 3.0 )\n* ];\n* arr = new Complex128Array( arr );\n*\n* // Create an iterator:\n* var it = arr.entries();\n*\n* // Iterate over the key-value pairs...\n* var v = it.next().value;\n* // returns [ 0, ]\n*\n* v = it.next().value;\n* // returns [ 1, ]\n*\n* v = it.next().value;\n* // returns [ 2, ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( Complex128Array.prototype, 'entries', function entries() {\n\tvar buffer;\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tself = this;\n\tbuffer = this._buffer;\n\tlen = this._length;\n\n\t// Initialize the iteration indices:\n\ti = -1;\n\tj = -2;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\tvar z;\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tj += 2;\n\t\tz = new Complex128( buffer[ j ], buffer[ j+1 ] );\n\t\treturn {\n\t\t\t'value': [ i, z ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(Complex128|void)} array element\n*\n* @example\n* var arr = new Complex128Array( 10 );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*\n* z = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( Complex128Array.prototype, 'get', function get( idx ) {\n\tvar buf;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\tbuf = this._buffer;\n\tidx *= 2;\n\treturn new Complex128( buf[ idx ], buf[ idx+1 ] );\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof Complex128Array.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new Complex128Array( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( Complex128Array.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, real or complex, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.\n*\n*\n* @name set\n* @memberof Complex128Array.prototype\n* @type {Function}\n* @param {(Collection|Complex|ComplexArray)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a complex number array\n* @throws {TypeError} first argument must be either a complex number, an array-like object, or a complex number array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} array-like objects must have a length which is a multiple of two\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* var arr = new Complex128Array( 10 );\n*\n* var z = arr.get( 0 );\n* // returns \n*\n* var re = real( z );\n* // returns 0.0\n*\n* var im = imag( z );\n* // returns 0.0\n*\n* arr.set( [ 1.0, -1.0 ], 0 );\n*\n* z = arr.get( 0 );\n* // returns \n*\n* re = real( z );\n* // returns 1.0\n*\n* im = imag( z );\n* // returns -1.0\n*/\nsetReadOnly( Complex128Array.prototype, 'set', function set( value ) {\n\t/* eslint-disable no-underscore-dangle */\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar flg;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\tif ( !isComplexArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a complex number array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isComplexLike( value ) ) {\n\t\tif ( idx >= this._length ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t\t}\n\t\tidx *= 2;\n\t\tbuf[ idx ] = real( value );\n\t\tbuf[ idx+1 ] = imag( value );\n\t\treturn;\n\t}\n\tif ( isComplexArray( value ) ) {\n\t\tN = value._length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tsbuf = value._buffer;\n\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Float64Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tidx *= 2;\n\t\tj = 0;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\tidx += 2; // stride\n\t\t\tj += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tif ( isCollection( value ) ) {\n\t\t// Detect whether we've been provided an array of complex numbers...\n\t\tN = value.length;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tif ( !isComplexLike( value[ i ] ) ) {\n\t\t\t\tflg = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// If an array does not contain only complex numbers, then we assume interleaved real and imaginary components...\n\t\tif ( flg ) {\n\t\t\tif ( !isEven( N ) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Array-like object arguments must have a length which is a multiple of two. Length: `%u`.', N ) );\n\t\t\t}\n\t\t\tif ( idx+(N/2) > this._length ) {\n\t\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t\t}\n\t\t\tsbuf = value;\n\n\t\t\t// Check for overlapping memory...\n\t\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\t\tif (\n\t\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t\t(\n\t\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// We need to copy source values...\n\t\t\t\ttmp = new Float64Array( N );\n\t\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\t\ttmp[ i ] = sbuf[ i ];\n\t\t\t\t}\n\t\t\t\tsbuf = tmp;\n\t\t\t}\n\t\t\tidx *= 2;\n\t\t\tN /= 2;\n\t\t\tj = 0;\n\t\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t\tbuf[ idx ] = sbuf[ j ];\n\t\t\t\tbuf[ idx+1 ] = sbuf[ j+1 ];\n\t\t\t\tidx += 2; // stride\n\t\t\t\tj += 2; // stride\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// If an array contains only complex numbers, then we need to extract real and imaginary components...\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tidx *= 2;\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tv = value[ i ];\n\t\t\tbuf[ idx ] = real( v );\n\t\t\tbuf[ idx+1 ] = imag( v );\n\t\t\tidx += 2; // stride\n\t\t}\n\t\treturn;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be either a complex number, an array-like object, or a complex number array. Value: `%s`.', value ) );\n\n\t/* eslint-enable no-underscore-dangle */\n});\n\n\n// EXPORTS //\n\nmodule.exports = Complex128Array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* 128-bit complex number array.\n*\n* @module @stdlib/array/complex128\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var arr = new Complex128Array( [ 1.0, -1.0 ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 1\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new Complex128Array( buf, 16 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var Complex128Array = require( '@stdlib/array/complex128' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = new Complex128Array( buf, 16, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Uint32Array = require( './../../uint32' );\nvar Int32Array = require( './../../int32' );\nvar Uint16Array = require( './../../uint16' );\nvar Int16Array = require( './../../int16' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Int8Array = require( './../../int8' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Note: order should match `dtypes` order\nvar CTORS = [\n\tFloat64Array,\n\tFloat32Array,\n\tInt32Array,\n\tUint32Array,\n\tInt16Array,\n\tUint16Array,\n\tInt8Array,\n\tUint8Array,\n\tUint8ClampedArray,\n\tComplex64Array,\n\tComplex128Array\n];\n\n\n// EXPORTS //\n\nmodule.exports = CTORS;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n// Note: order should match `ctors` order\nvar DTYPES = [\n\t'float64',\n\t'float32',\n\t'int32',\n\t'uint32',\n\t'int16',\n\t'uint16',\n\t'int8',\n\t'uint8',\n\t'uint8c',\n\t'complex64',\n\t'complex128'\n];\n\n\n// EXPORTS //\n\nmodule.exports = DTYPES;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isBuffer = require( '@stdlib/assert/is-buffer' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar constructorName = require( '@stdlib/utils/constructor-name' );\nvar ctor2dtype = require( './ctor2dtype.js' );\nvar CTORS = require( './ctors.js' );\nvar DTYPES = require( './dtypes.js' );\n\n\n// VARIABLES //\n\nvar NTYPES = DTYPES.length;\n\n\n// MAIN //\n\n/**\n* Returns the data type of an array.\n*\n* @param {*} value - input value\n* @returns {(string|null)} data type\n*\n* @example\n* var dt = dtype( [ 1, 2, 3 ] );\n* // returns 'generic'\n*\n* var dt = dtype( 'beep' );\n* // returns null\n*/\nfunction dtype( value ) {\n\tvar i;\n\tif ( isArray( value ) ) {\n\t\treturn 'generic';\n\t}\n\tif ( isBuffer( value ) ) {\n\t\treturn null;\n\t}\n\tfor ( i = 0; i < NTYPES; i++ ) {\n\t\tif ( value instanceof CTORS[ i ] ) {\n\t\t\treturn DTYPES[ i ];\n\t\t}\n\t}\n\t// If the above failed, fall back to a more robust (and significantly slower) means for resolving underlying data types:\n\treturn ctor2dtype[ constructorName( value ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the data type of an array.\n*\n* @module @stdlib/array/dtype\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtype = require( '@stdlib/array/dtype' );\n*\n* var arr = new Float64Array( 10 );\n*\n* var dt = dtype( arr );\n* // returns 'float64'\n*\n* dt = dtype( {} );\n* // returns null\n*\n* dt = dtype( 'beep' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar getter = require( './../../../base/getter' );\nvar setter = require( './../../../base/setter' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar accessorSetter = require( './../../../base/accessor-setter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Returns element accessors for a provided array-like object.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **accessorProtocol**: `boolean` indicating whether the provided array-like object supports the get/set protocol (i.e., uses accessors for getting and setting elements).\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing accessor data\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var obj = accessors( x );\n* // returns {...}\n*\n* var bool = obj.accessorProtocol;\n* // returns false\n*\n* var fcns = obj.accessors;\n* // returns [ , ]\n*\n* var v = fcns[ 0 ]( x, 2 );\n* // returns 3\n*/\nfunction accessors( x ) {\n\tvar dt = dtype( x );\n\tif ( isAccessorArray( x ) ) {\n\t\treturn {\n\t\t\t'accessorProtocol': true,\n\t\t\t'accessors': [\n\t\t\t\taccessorGetter( dt ),\n\t\t\t\taccessorSetter( dt )\n\t\t\t]\n\t\t};\n\t}\n\treturn {\n\t\t'accessorProtocol': false,\n\t\t'accessors': [\n\t\t\tgetter( dt ),\n\t\t\tsetter( dt )\n\t\t]\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = accessors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return element accessors for a provided array-like object.\n*\n* @module @stdlib/array/base/accessors\n*\n* @example\n* var accessors = require( '@stdlib/array/base/accessors' );\n*\n* var x = [ 1, 2, 3, 4 ];\n* var obj = accessors( x );\n* // returns {...}\n*\n* var bool = obj.accessorProtocol;\n* // returns false\n*\n* var fcns = obj.accessors;\n* // returns [ , ]\n*\n* var v = fcns[ 0 ]( x, 2 );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar setReadWriteAccessor = require( '@stdlib/utils/define-nonenumerable-read-write-accessor' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar accessors = require( './../../../base/accessors' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Sets the length of an array-like object.\n*\n* @private\n* @param {NonNegativeInteger} len - length\n*/\nfunction setLength( len ) {\n\tthis._buffer.length = len;\n}\n\n/**\n* Returns the length of an array-like object.\n*\n* @private\n* @returns {NonNegativeInteger} length\n*/\nfunction getLength() {\n\treturn this._buffer.length;\n}\n\n\n// MAIN //\n\n/**\n* Creates a minimal array-like object supporting the accessor protocol from another array-like object.\n*\n* @constructor\n* @param {Collection} arr - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {AccessorArray} accessor array instance\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\nfunction AccessorArray( arr ) {\n\tvar o;\n\tif ( !(this instanceof AccessorArray) ) {\n\t\treturn new AccessorArray( arr );\n\t}\n\tif ( !isCollection( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', arr ) );\n\t}\n\to = accessors( arr );\n\tthis._buffer = arr;\n\tthis._getter = o.accessors[ 0 ];\n\tthis._setter = o.accessors[ 1 ];\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof AccessorArray\n* @readonly\n* @type {string}\n* @default 'AccessorArray'\n*\n* @example\n* var name = AccessorArray.name;\n* // returns 'AccessorArray'\n*/\nsetReadOnly( AccessorArray, 'name', 'AccessorArray' );\n\n/**\n* Read/write accessor for getting/setting the number of elements.\n*\n* @name length\n* @memberof AccessorArray.prototype\n* @type {NonNegativeInteger}\n*/\nsetReadWriteAccessor( AccessorArray.prototype, 'length', getLength, setLength );\n\n/**\n* Returns an element.\n*\n* @name get\n* @memberof AccessorArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @returns {*} element\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\nsetReadOnly( AccessorArray.prototype, 'get', function get( idx ) {\n\treturn this._getter( this._buffer, idx );\n});\n\n/**\n* Sets one or more elements.\n*\n* @name set\n* @memberof AccessorArray.prototype\n* @type {Function}\n* @param {*} value - value to set\n* @param {integer} [idx] - element index\n* @returns {void}\n*\n* @example\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*\n* arr.set( 5, 0 );\n*\n* v = arr.get( 0 );\n* // returns 5\n*/\nsetReadOnly( AccessorArray.prototype, 'set', function set( value, idx ) {\n\tif ( arguments.length < 2 ) {\n\t\tthis._setter( this._buffer, 0, value );\n\t\treturn;\n\t}\n\tthis._setter( this._buffer, idx, value );\n});\n\n\n// EXPORTS //\n\nmodule.exports = AccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a minimal array-like object supporting the accessor protocol from another array-like object.\n*\n* @module @stdlib/array/base/accessor\n*\n* @example\n* var AccessorArray = require( '@stdlib/array/base/accessor' );\n*\n* var arr = new AccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar accessors = require( './../../../base/accessors' );\n\n\n// MAIN //\n\n/**\n* Converts an array-like to an object likely to have the same \"shape\".\n*\n* ## Notes\n*\n* - This function is intended as a potential performance optimization. In V8, for example, even if two objects share common properties, if those properties were added in different orders or if one object has additional properties not shared by the other object, then those objects will have different \"hidden\" classes. If a function is provided many objects having different \"shapes\", some JavaScript VMs (e.g., V8) will consider the function \"megamorphic\" and fail to perform various runtime optimizations. Accordingly, the intent of this function is to standardize the \"shape\" of the object holding array meta data to ensure that internal functions operating on arrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **data**: reference to the input array.\n* - **accessorProtocol**: `boolean` indicating whether the input array uses accessors for getting and setting elements.\n* - **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.\n*\n* @param {Collection} x - array-like object\n* @returns {Object} object containing array meta data\n*\n* @example\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\nfunction arraylike2object( x ) {\n\tvar o = accessors( x );\n\treturn {\n\t\t'data': x,\n\t\t'accessorProtocol': o.accessorProtocol,\n\t\t'accessors': o.accessors\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = arraylike2object;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array-like object to an object likely to have the same \"shape\".\n*\n* @module @stdlib/array/base/arraylike2object\n*\n* @example\n* var arraylike2object = require( '@stdlib/array/base/arraylike2object' );\n*\n* var obj = arraylike2object( [ 1, 2, 3, 4 ] );\n* // returns {...}\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../../base/accessor-getter' );\nvar getter = require( './../../../../base/getter' );\nvar dtype = require( './../../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @param {*} value - search value\n* @returns {boolean} boolean indicating if an array contains a search value\n*\n* @example\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\nfunction contains( x, value ) {\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( get( x, i ) === value ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = contains;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../../base/accessor-getter' );\nvar dtype = require( './../../../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a function to tests if an array contains a provided search value.\n*\n* @param {Collection} x - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {Function} function to test if an array contains a search value\n*\n* @example\n* var contains = factory( [ 1, 2, 3 ] );\n* // returns \n*\n* var bool = contains( 2 );\n* // returns true\n*/\nfunction factory( x ) {\n\tvar get;\n\tvar len;\n\tvar dt;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', x ) );\n\t}\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t}\n\t// Get the number of elements over which to iterate:\n\tlen = x.length;\n\n\treturn ( get === void 0 ) ? contains : accessors;\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*\n\t* @example\n\t* var out = contains( [ 1, 2, 3 ], 2 );\n\t* // returns true\n\t*/\n\tfunction contains( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( x[ i ] === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t* Tests if an array contains a provided search value.\n\t*\n\t* @private\n\t* @param {*} value - search value\n\t* @returns {boolean} boolean indicating if an array contains a search value\n\t*/\n\tfunction accessors( value ) {\n\t\tvar i;\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tif ( get( x, i ) === value ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Test if an array contains a provided search value.\n*\n* @module @stdlib/array/base/assert/contains\n*\n* @example\n* var contains = require( '@stdlib/array/base/assert/contains' );\n*\n* var out = contains( [ 1, 2, 3 ], 2 );\n* // returns true\n*/\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n\n// exports: { \"factory\": \"main.factory\" }\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name contains\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/assert/contains}\n*/\nsetReadOnly( ns, 'contains', require( './../../../base/assert/contains' ) );\n\n/**\n* @name isAccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/assert/is-accessor-array}\n*/\nsetReadOnly( ns, 'isAccessorArray', require( './../../../base/assert/is-accessor-array' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* binary2d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction binary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary2d = require( '@stdlib/array/base/binary2d' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* binary2d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two three-dimensional nested input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = zeros3d( shape );\n*\n* binary3d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\nfunction binary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar z0;\n\tvar z1;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tz1 = z[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two three-dimensional nested input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary3d = require( '@stdlib/array/base/binary3d' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = zeros3d( shape );\n*\n* binary3d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two four-dimensional nested input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 1, 2, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = zeros4d( shape );\n*\n* binary4d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\nfunction binary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tz2 = z[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two four-dimensional nested input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary4d = require( '@stdlib/array/base/binary4d' );\n*\n* var shape = [ 1, 2, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = zeros4d( shape );\n*\n* binary4d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two five-dimensional nested input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = zeros5d( shape );\n*\n* binary5d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\nfunction binary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar z3;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tz3 = z[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = binary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two five-dimensional nested input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/binary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var binary5d = require( '@stdlib/array/base/binary5d' );\n*\n* var shape = [ 1, 1, 2, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = zeros5d( shape );\n*\n* binary5d( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursively applies a binary callback.\n*\n* @private\n* @param {ArrayLikeObject} x - input array\n* @param {ArrayLikeObject} y - input array\n* @param {ArrayLikeObject} z - output array\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*/\nfunction recurse( x, y, z, ndims, shape, dim, fcn ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we've reached the innermost dimension:\n\td = dim + 1;\n\n\tif ( d === ndims ) {\n\t\t// Apply the provided callback...\n\t\tfor ( i = 0; i < S; i++ ) {\n\t\t\tz[ i ] = fcn( x[ i ], y[ i ] );\n\t\t}\n\t\treturn;\n\t}\n\t// Continue recursing into the nested arrays...\n\tfor ( i = 0; i < S; i++ ) {\n\t\trecurse( x[ i ], y[ i ], z[ i ], ndims, shape, d, fcn );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two n-dimensional nested input arrays and assigns results to elements in an n-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = onesnd( shape );\n* var z = zerosnd( shape );\n*\n* binarynd( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction binarynd( arrays, shape, fcn ) {\n\treturn recurse( arrays[ 0 ], arrays[ 1 ], arrays[ 2 ], shape.length, shape, 0, fcn ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = binarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in an n-dimensional nested input array and assign results to elements in an n-dimensional nested output array.\n*\n* @module @stdlib/array/base/binarynd\n*\n* @example\n* var add = require( '@stdlib/math/base/ops/add' );\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n* var binarynd = require( '@stdlib/array/base/binarynd' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = onesnd( shape );\n* var z = zerosnd( shape );\n*\n* binarynd( [ x, y, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Copies the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar i;\n\n\tlen = x.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( x[ i ] ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy the elements of an indexed array-like object to a new \"generic\" array.\n*\n* @module @stdlib/array/base/copy-indexed\n*\n* @example\n* var copy = require( '@stdlib/array/base/copy-indexed' );\n*\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} filled array\n*\n* @example\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filled( value, len ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled \"generic\" array.\n*\n* @module @stdlib/array/base/filled\n*\n* @example\n* var filled = require( '@stdlib/array/base/filled' );\n*\n* var out = filled( 0.0, 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var filled = require( '@stdlib/array/base/filled' );\n*\n* var out = filled( 'beep', 3 );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled \"generic\" array.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction zeros( len ) {\n\treturn filled( 0.0, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled \"generic\" array.\n*\n* @module @stdlib/array/base/zeros\n*\n* @example\n* var zeros = require( '@stdlib/array/base/zeros' );\n*\n* var out = zeros( 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar copy = require( './../../../base/copy-indexed' );\nvar zeros = require( './../../../base/zeros' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an array to a specified shape.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} inShape - input array shape\n* @param {NonNegativeIntegerArray} outShape - output array shape\n* @throws {Error} input array cannot have more dimensions than the desired shape\n* @throws {Error} input array dimension sizes must be `1` or equal to the corresponding dimension in the provided output shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {Object} broadcast object\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 2 ] );\n* // returns {...}\n*\n* var shape = out.shape;\n* // returns [ 2, 2 ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1 ]\n*\n* var ref = out.ref;\n* // returns [ 1, 2 ]\n*\n* var bool = ( x === ref );\n* // returns true\n*\n* var data = out.data;\n* // returns [ [ 1, 2 ] ]\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 1, 2 ] );\n* // returns {...}\n*\n* var data = out.data;\n* // returns [ [ [ 1, 2 ] ] ]\n*\n* var strides = out.strides;\n* // returns [ 0, 0, 1 ]\n*\n* @example\n* var x = [ [ 1 ], [ 2 ] ];\n*\n* var out = broadcastArray( x, [ 2, 1 ], [ 3, 2, 2 ] );\n* // returns {...}\n*\n* var data = out.data;\n* // returns [ [ [ 1 ], [ 2 ] ] ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1, 0 ]\n*/\nfunction broadcastArray( x, inShape, outShape ) {\n\tvar data;\n\tvar dim;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = outShape.length;\n\tM = inShape.length;\n\tif ( N < M ) {\n\t\tthrow new Error( 'invalid argument. Cannot broadcast an array to a shape having fewer dimensions. Arrays can only be broadcasted to shapes having the same or more dimensions.' );\n\t}\n\t// Prepend additional dimensions...\n\tdata = x;\n\tfor ( i = M; i < N; i++ ) {\n\t\tdata = [ data ];\n\t}\n\n\t// Initialize a strides array:\n\tst = zeros( N );\n\n\t// Determine the output array strides...\n\tfor ( i = N-1; i >= 0; i-- ) {\n\t\tj = M - N + i;\n\t\tif ( j < 0 ) {\n\t\t\t// Prepended singleton dimension; stride is zero...\n\t\t\tcontinue;\n\t\t}\n\t\td = inShape[ j ];\n\t\tdim = outShape[ i ];\n\t\tif ( dim !== 0 && dim < d ) {\n\t\t\tthrow new Error( format( 'invalid argument. Input array cannot be broadcast to the specified shape, as the specified shape has a dimension whose size is less than the size of the corresponding dimension in the input array. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( inShape ).join( ', ' ), copy( outShape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\t// As the dimension sizes are equal, the stride is one, meaning that each element in the array should be iterated over as normal...\n\t\t\tst[ i ] = 1;\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast a dimension, we set the stride for that dimension to zero...\n\t\t\tst[ i ] = 0;\n\t\t} else {\n\t\t\t// At this point, we know that `dim > d` and that `d` does not equal `1` (e.g., `dim=3` and `d=2`); in which case, the shapes are considered incompatible (even for desired shapes which are multiples of array dimensions, as might be desired when \"tiling\" an array; e.g., `dim=4` and `d=2`)...\n\t\t\tthrow new Error( format( 'invalid argument. Input array and the specified shape are broadcast incompatible. Array shape: (%s). Desired shape: (%s). Dimension: %u.', copy( inShape ).join( ', ' ), copy( outShape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\t// Return broadcast results:\n\treturn {\n\t\t'ref': x, // reference to the original input array\n\t\t'data': data, // broadcasted array\n\t\t'shape': copy( outShape ), // copy in order to prevent mutation\n\t\t'strides': st\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Broadcast an array to a specified shape.\n*\n* @module @stdlib/array/base/broadcast-array\n*\n* @example\n* var broadcastArray = require( '@stdlib/array/base/broadcast-array' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = broadcastArray( x, [ 2 ], [ 2, 2 ] );\n* // returns {...}\n*\n* var shape = out.shape;\n* // returns [ 2, 2 ]\n*\n* var strides = out.strides;\n* // returns [ 0, 1 ]\n*\n* var ref = out.ref;\n* // returns [ 1, 2 ]\n*\n* var bool = ( x === ref );\n* // returns true\n*\n* var data = out.data;\n* // returns [ [ 1, 2 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = zeros2d( shapes[ 2 ] );\n*\n* bbinary2d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction bbinary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar k0;\n\tvar k1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 1 ];\n\tdy1 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj1 = 0;\n\tk1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tk0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ k1 ];\n\t\tz0 = z[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\tj0 += dx0;\n\t\t\tk0 += dy0;\n\t\t}\n\t\tj1 += dx1;\n\t\tk1 += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary2d = require( '@stdlib/array/base/broadcasted-binary2d' );\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = zeros2d( shapes[ 2 ] );\n*\n* bbinary2d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 2, 1, 1 ],\n* [ 2, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = ones3d( shapes[ 1 ] );\n* var z = zeros3d( shapes[ 2 ] );\n*\n* bbinary3d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\nfunction bbinary3d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar z0;\n\tvar z1;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 2 ];\n\tS1 = sh[ 1 ];\n\tS2 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 2 ];\n\tdx1 = st[ 1 ];\n\tdx2 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 2 ];\n\tdy1 = st[ 1 ];\n\tdy2 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj2 = 0;\n\tk2 = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tj1 = 0;\n\t\tk1 = 0;\n\t\tx1 = x[ j2 ];\n\t\ty1 = y[ k2 ];\n\t\tz1 = z[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tj0 = 0;\n\t\t\tk0 = 0;\n\t\t\tx0 = x1[ j1 ];\n\t\t\ty0 = y1[ k1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\tj0 += dx0;\n\t\t\t\tk0 += dy0;\n\t\t\t}\n\t\t\tj1 += dx1;\n\t\t\tk1 += dy1;\n\t\t}\n\t\tj2 += dx2;\n\t\tk2 += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary3d = require( '@stdlib/array/base/broadcasted-binary3d' );\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 2, 1, 1 ],\n* [ 2, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = ones3d( shapes[ 1 ] );\n* var z = zeros3d( shapes[ 2 ] );\n*\n* bbinary3d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 2, 1, 1 ],\n* [ 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = ones4d( shapes[ 1 ] );\n* var z = zeros4d( shapes[ 2 ] );\n*\n* bbinary4d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\nfunction bbinary4d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar k3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 3 ];\n\tS1 = sh[ 2 ];\n\tS2 = sh[ 1 ];\n\tS3 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 3 ];\n\tdx1 = st[ 2 ];\n\tdx2 = st[ 1 ];\n\tdx3 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 3 ];\n\tdy1 = st[ 2 ];\n\tdy2 = st[ 1 ];\n\tdy3 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj3 = 0;\n\tk3 = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tj2 = 0;\n\t\tk2 = 0;\n\t\tx2 = x[ j3 ];\n\t\ty2 = y[ k3 ];\n\t\tz2 = z[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tj1 = 0;\n\t\t\tk1 = 0;\n\t\t\tx1 = x2[ j2 ];\n\t\t\ty1 = y2[ k2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tj0 = 0;\n\t\t\t\tk0 = 0;\n\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\ty0 = y1[ k1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\t\tj0 += dx0;\n\t\t\t\t\tk0 += dy0;\n\t\t\t\t}\n\t\t\t\tj1 += dx1;\n\t\t\t\tk1 += dy1;\n\t\t\t}\n\t\t\tj2 += dx2;\n\t\t\tk2 += dy2;\n\t\t}\n\t\tj3 += dx3;\n\t\tk3 += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary4d = require( '@stdlib/array/base/broadcasted-binary4d' );\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 2, 1, 1 ],\n* [ 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = ones4d( shapes[ 1 ] );\n* var z = zeros4d( shapes[ 2 ] );\n*\n* bbinary4d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two broadcasted input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing two input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - binary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 2, 1, 1 ],\n* [ 1, 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = ones5d( shapes[ 1 ] );\n* var z = zeros5d( shapes[ 2 ] );\n*\n* bbinary5d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\nfunction bbinary5d( arrays, shapes, fcn ) { // eslint-disable-line max-statements\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar k0;\n\tvar k1;\n\tvar k2;\n\tvar k3;\n\tvar k4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar z0;\n\tvar z1;\n\tvar z2;\n\tvar z3;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\n\tsh = shapes[ 2 ];\n\tS0 = sh[ 4 ];\n\tS1 = sh[ 3 ];\n\tS2 = sh[ 2 ];\n\tS3 = sh[ 1 ];\n\tS4 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 4 ];\n\tdx1 = st[ 3 ];\n\tdx2 = st[ 2 ];\n\tdx3 = st[ 1 ];\n\tdx4 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 4 ];\n\tdy1 = st[ 3 ];\n\tdy2 = st[ 2 ];\n\tdy3 = st[ 1 ];\n\tdy4 = st[ 0 ];\n\n\tz = arrays[ 2 ];\n\n\tj4 = 0;\n\tk4 = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tj3 = 0;\n\t\tk3 = 0;\n\t\tx3 = x[ j4 ];\n\t\ty3 = y[ k4 ];\n\t\tz3 = z[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tj2 = 0;\n\t\t\tk2 = 0;\n\t\t\tx2 = x3[ j3 ];\n\t\t\ty2 = y3[ k3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tj1 = 0;\n\t\t\t\tk1 = 0;\n\t\t\t\tx1 = x2[ j2 ];\n\t\t\t\ty1 = y2[ k2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tj0 = 0;\n\t\t\t\t\tk0 = 0;\n\t\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\t\ty0 = y1[ k1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tz0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ] );\n\t\t\t\t\t\tj0 += dx0;\n\t\t\t\t\t\tk0 += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tj1 += dx1;\n\t\t\t\t\tk1 += dy1;\n\t\t\t\t}\n\t\t\t\tj2 += dx2;\n\t\t\t\tk2 += dy2;\n\t\t\t}\n\t\t\tj3 += dx3;\n\t\t\tk3 += dy3;\n\t\t}\n\t\tj4 += dx4;\n\t\tk4 += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bbinary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two broadcasted input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-binary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var bbinary5d = require( '@stdlib/array/base/broadcasted-binary5d' );\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 2, 1, 1 ],\n* [ 1, 1, 2, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = ones5d( shapes[ 1 ] );\n* var z = zeros5d( shapes[ 2 ] );\n*\n* bbinary5d( [ x, y, z ], shapes, add );\n*\n* console.log( z );\n* // => [ [ [ [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ], [ [ 2.0, 2.0 ], [ 2.0, 2.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three broadcasted input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 1, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = ones2d( shapes[ 2 ] );\n* var out = zeros2d( shapes[ 3 ] );\n*\n* bternary2d( [ x, y, z, out ], shapes, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\nfunction bternary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar dz0;\n\tvar dz1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar k0;\n\tvar k1;\n\tvar m0;\n\tvar m1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tsh = shapes[ 3 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 1 ], shapes[ 1 ], sh );\n\ty = o.data;\n\tst = o.strides;\n\tdy0 = st[ 1 ];\n\tdy1 = st[ 0 ];\n\n\to = broadcastArray( arrays[ 2 ], shapes[ 2 ], sh );\n\tz = o.data;\n\tst = o.strides;\n\tdz0 = st[ 1 ];\n\tdz1 = st[ 0 ];\n\n\tw = arrays[ 3 ];\n\n\tj1 = 0;\n\tk1 = 0;\n\tm1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tk0 = 0;\n\t\tm0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ k1 ];\n\t\tz0 = z[ m1 ];\n\t\tw0 = w[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tw0[ i0 ] = fcn( x0[ j0 ], y0[ k0 ], z0[ m0 ] );\n\t\t\tj0 += dx0;\n\t\t\tk0 += dy0;\n\t\t\tm0 += dz0;\n\t\t}\n\t\tj1 += dx1;\n\t\tk1 += dy1;\n\t\tm1 += dz1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bternary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three broadcasted input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-ternary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var bternary2d = require( '@stdlib/array/base/broadcasted-ternary2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 1 ],\n* [ 1, 1 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = ones2d( shapes[ 1 ] );\n* var z = ones2d( shapes[ 2 ] );\n* var out = zeros2d( shapes[ 3 ] );\n*\n* bternary2d( [ x, y, z, out ], shapes, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a two-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = zeros2d( shapes[ 1 ] );\n*\n* bunary2d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction bunary2d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar x0;\n\tvar y0;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 1 ];\n\tS1 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 1 ];\n\tdx1 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\n\tj1 = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tj0 = 0;\n\t\tx0 = x[ j1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\tj0 += dx0;\n\t\t}\n\t\tj1 += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var bunary2d = require( '@stdlib/array/base/broadcasted-unary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 2 ],\n* [ 2, 2 ]\n* ];\n*\n* var x = ones2d( shapes[ 0 ] );\n* var y = zeros2d( shapes[ 1 ] );\n*\n* bunary2d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a three-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 1, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = zeros3d( shapes[ 1 ] );\n*\n* bunary3d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction bunary3d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 2 ];\n\tS1 = sh[ 1 ];\n\tS2 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 2 ];\n\tdx1 = st[ 1 ];\n\tdx2 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj2 = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tj1 = 0;\n\t\tx1 = x[ j2 ];\n\t\ty1 = y[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tj0 = 0;\n\t\t\tx0 = x1[ j1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\tj0 += dx0;\n\t\t\t}\n\t\t\tj1 += dx1;\n\t\t}\n\t\tj2 += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var bunary3d = require( '@stdlib/array/base/broadcasted-unary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 2 ],\n* [ 1, 2, 2 ]\n* ];\n*\n* var x = ones3d( shapes[ 0 ] );\n* var y = zeros3d( shapes[ 1 ] );\n*\n* bunary3d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a four-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = zeros4d( shapes[ 1 ] );\n*\n* bunary4d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\nfunction bunary4d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 3 ];\n\tS1 = sh[ 2 ];\n\tS2 = sh[ 1 ];\n\tS3 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 3 ];\n\tdx1 = st[ 2 ];\n\tdx2 = st[ 1 ];\n\tdx3 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj3 = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tj2 = 0;\n\t\tx2 = x[ j3 ];\n\t\ty2 = y[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tj1 = 0;\n\t\t\tx1 = x2[ j2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tj0 = 0;\n\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\t\tj0 += dx0;\n\t\t\t\t}\n\t\t\t\tj1 += dx1;\n\t\t\t}\n\t\t\tj2 += dx2;\n\t\t}\n\t\tj3 += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var bunary4d = require( '@stdlib/array/base/broadcasted-unary4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 2 ],\n* [ 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones4d( shapes[ 0 ] );\n* var y = zeros4d( shapes[ 1 ] );\n*\n* bunary4d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar broadcastArray = require( './../../../base/broadcast-array' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a broadcasted nested input array and assigns results to elements in a five-dimensional nested output array.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {ArrayLikeObject} shapes - array shapes\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = zeros5d( shapes[ 1 ] );\n*\n* bunary5d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\nfunction bunary5d( arrays, shapes, fcn ) {\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar sh;\n\tvar st;\n\tvar o;\n\tvar x;\n\tvar y;\n\n\tsh = shapes[ 1 ];\n\tS0 = sh[ 4 ];\n\tS1 = sh[ 3 ];\n\tS2 = sh[ 2 ];\n\tS3 = sh[ 1 ];\n\tS4 = sh[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\to = broadcastArray( arrays[ 0 ], shapes[ 0 ], sh );\n\tx = o.data;\n\tst = o.strides;\n\tdx0 = st[ 4 ];\n\tdx1 = st[ 3 ];\n\tdx2 = st[ 2 ];\n\tdx3 = st[ 1 ];\n\tdx4 = st[ 0 ];\n\n\ty = arrays[ 1 ];\n\tj4 = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tj3 = 0;\n\t\tx3 = x[ j4 ];\n\t\ty3 = y[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tj2 = 0;\n\t\t\tx2 = x3[ j3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tj1 = 0;\n\t\t\t\tx1 = x2[ j2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tj0 = 0;\n\t\t\t\t\tx0 = x1[ j1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ty0[ i0 ] = fcn( x0[ j0 ] );\n\t\t\t\t\t\tj0 += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tj1 += dx1;\n\t\t\t\t}\n\t\t\t\tj2 += dx2;\n\t\t\t}\n\t\t\tj3 += dx3;\n\t\t}\n\t\tj4 += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = bunary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a broadcasted nested input array and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/broadcasted-unary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var bunary5d = require( '@stdlib/array/base/broadcasted-unary5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shapes = [\n* [ 1, 1, 1, 1, 2 ],\n* [ 1, 1, 1, 2, 2 ]\n* ];\n*\n* var x = ones5d( shapes[ 0 ] );\n* var y = zeros5d( shapes[ 1 ] );\n*\n* bunary5d( [ x, y ], shapes, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar pow = require( '@stdlib/math/base/special/pow' );\n\n\n// MAIN //\n\n/**\n* Returns the Cartesian power.\n*\n* ## Notes\n*\n* - The Cartesian power is an n-fold Cartesian product involving a single array. The main insight of this implementation is that the n-fold Cartesian product can be presented as an n-dimensional array stored in row-major order. As such, we can\n*\n* - Compute the total number of tuples, which is simply the size of the provided array (set) raised to the specified power `n`. For n-dimensional arrays, this is the equivalent of computing the product of array dimensions to determine the total number of elements.\n* - Initialize an array for storing indices for indexing into the provided array. For n-dimensional arrays, the index array is equivalent to an array of subscripts for indexing into each dimension.\n* - For the outermost loop, treat the loop index as a linear index into an n-dimensional array and resolve the corresponding subscripts.\n* - Continue iterating until all tuples have been generated.\n*\n* @param {ArrayLikeObject} x - input array\n* @param {NonNegativeInteger} n - power\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = cartesianPower( x, 2 );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\nfunction cartesianPower( x, n ) {\n\tvar out;\n\tvar tmp;\n\tvar idx;\n\tvar len;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tN = x.length;\n\tif ( N <= 0 || n <= 0 ) {\n\t\treturn [];\n\t}\n\t// Compute the total number of ordered tuples:\n\tlen = pow( N, n );\n\n\t// Initialize a list of indices for indexing into the array (equivalent to ndarray subscripts):\n\tidx = [];\n\tfor ( i = 0; i < n; i++ ) {\n\t\tidx.push( 0 );\n\t}\n\t// Compute the n-fold Cartesian product...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\t// Resolve a linear index to array indices (logic is equivalent to what is found in ndarray/base/ind2sub for an ndarray stored in row-major order; see https://github.com/stdlib-js/stdlib/blob/215ca5355f3404f15996fd0ced58a98e46f22be6/lib/node_modules/%40stdlib/ndarray/base/ind2sub/lib/assign.js)...\n\t\tk = i;\n\t\tfor ( j = n-1; j >= 0; j-- ) {\n\t\t\ts = k % N;\n\t\t\tk -= s;\n\t\t\tk /= N;\n\t\t\tidx[ j ] = s;\n\t\t}\n\t\t// Generate the next ordered tuple...\n\t\ttmp = [];\n\t\tfor ( j = 0; j < n; j++ ) {\n\t\t\ttmp.push( x[ idx[ j ] ] );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianPower;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian power.\n*\n* @module @stdlib/array/base/cartesian-power\n*\n* @example\n* var cartesianPower = require( '@stdlib/array/base/cartesian-power' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = cartesianPower( x, 2 );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the Cartesian product.\n*\n* @param {ArrayLikeObject} x1 - first input array\n* @param {ArrayLikeObject} x2 - second input array\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = cartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\nfunction cartesianProduct( x1, x2 ) {\n\tvar out;\n\tvar M;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tM = x1.length;\n\tN = x2.length;\n\tout = [];\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv = x1[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tout.push( [ v, x2[ j ] ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianProduct;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian product.\n*\n* @module @stdlib/array/base/cartesian-product\n*\n* @example\n* var cartesianProduct = require( '@stdlib/array/base/cartesian-product' );\n*\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = cartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the Cartesian square.\n*\n* @param {ArrayLikeObject} x - input array\n* @returns {Array} list of ordered tuples comprising the Cartesian product\n*\n* @example\n* var x = [ 1, 2 ];\n*\n* var out = cartesianSquare( x );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\nfunction cartesianSquare( x ) {\n\tvar out;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = x.length;\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv = x[ i ];\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tout.push( [ v, x[ j ] ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = cartesianSquare;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the Cartesian square.\n*\n* @module @stdlib/array/base/cartesian-square\n*\n* @example\n* var cartesianSquare = require( '@stdlib/array/base/cartesian-square' );\n*\n* var x = [ 1, 2 ];\n*\n* var out = cartesianSquare( x );\n* // returns [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar getter = require( './../../../base/getter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Copies the elements of an array-like object to a new \"generic\" array.\n*\n* @param {Collection} x - input array\n* @returns {Array} output array\n*\n* @example\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x ) {\n\tvar out;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\n\t// Resolve the input array data type:\n\tdt = dtype( x );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( x ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Get the number of elements to copy:\n\tlen = x.length;\n\n\t// Loop over the elements...\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( get( x, i ) ); // ensure \"fast\" elements\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Copy the elements of an array-like object to a new \"generic\" array.\n*\n* @module @stdlib/array/base/copy\n*\n* @example\n* var copy = require( '@stdlib/array/base/copy' );\n*\n* var out = copy( [ 1, 2, 3 ] );\n* // returns [ 1, 2, 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled \"generic\" array according to a provided callback function.\n*\n* @param {NonNegativeInteger} len - array length\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filledBy( 3, constantFunction( 'beep' ) );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\nfunction filledBy( len, clbk, thisArg ) {\n\tvar arr;\n\tvar i;\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tarr.push( clbk.call( thisArg, i ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled \"generic\" array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filledBy = require( '@stdlib/array/base/filled-by' );\n*\n* var out = filledBy( 3, constantFunction( 'beep' ) );\n* // returns [ 'beep', 'beep', 'beep' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled2d( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var out = filled2d( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction filled2d( value, shape ) {\n\tvar arr;\n\tvar S0;\n\tvar S1;\n\tvar i;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < S1; i++ ) {\n\t\tarr.push( filled( value, S0 ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled two-dimensional nested array.\n*\n* @module @stdlib/array/base/filled2d\n*\n* @example\n* var filled2d = require( '@stdlib/array/base/filled2d' );\n*\n* var out = filled2d( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var filled2d = require( '@stdlib/array/base/filled2d' );\n*\n* var out = filled2d( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled2dBy( [ 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep', 'beep', 'beep' ] ]\n*/\nfunction filled2dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar S0;\n\tvar S1;\n\tvar i;\n\tvar j;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i = 0; i < S1; i++ ) {\n\t\ta0 = [];\n\t\tfor ( j = 0; j < S0; j++ ) {\n\t\t\ta0.push( clbk.call( thisArg, [ i, j ] ) );\n\t\t}\n\t\tarr.push( a0 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled two-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled2d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled2dBy = require( '@stdlib/array/base/filled2d-by' );\n*\n* var out = filled2dBy( [ 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep', 'beep', 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled three-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled3d( 0.0, [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*\n* @example\n* var out = filled3d( 'beep', [ 1, 3, 1 ] );\n* // returns [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ]\n*/\nfunction filled3d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i2;\n\tvar i1;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = [];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta1.push( filled( value, S0 ) );\n\t\t}\n\t\tout.push( a1 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled three-dimensional nested array.\n*\n* @module @stdlib/array/base/filled3d\n*\n* @example\n* var filled3d = require( '@stdlib/array/base/filled3d' );\n*\n* var out = filled3d( 0.0, [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*\n* @example\n* var filled3d = require( '@stdlib/array/base/filled3d' );\n*\n* var out = filled3d( 'beep', [ 1, 3, 1 ] );\n* // returns [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled three-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled3dBy( [ 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ 'beep', 'beep', 'beep' ] ] ]\n*/\nfunction filled3dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = [];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = [];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ta0.push( clbk.call( thisArg, [ i2, i1, i0 ] ) );\n\t\t\t}\n\t\t\ta1.push( a0 );\n\t\t}\n\t\tarr.push( a1 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled three-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled3d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled3dBy = require( '@stdlib/array/base/filled3d-by' );\n*\n* var out = filled3dBy( [ 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ 'beep', 'beep', 'beep' ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled four-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled4d( 0.0, [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*\n* @example\n* var out = filled4d( 'beep', [ 1, 1, 3, 1 ] );\n* // returns [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ]\n*/\nfunction filled4d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar a2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = [];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = [];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta1.push( filled( value, S0 ) );\n\t\t\t}\n\t\t\ta2.push( a1 );\n\t\t}\n\t\tout.push( a2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled four-dimensional nested array.\n*\n* @module @stdlib/array/base/filled4d\n*\n* @example\n* var filled4d = require( '@stdlib/array/base/filled4d' );\n*\n* var out = filled4d( 0.0, [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*\n* @example\n* var filled4d = require( '@stdlib/array/base/filled4d' );\n*\n* var out = filled4d( 'beep', [ 1, 1, 3, 1 ] );\n* // returns [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled four-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled4dBy( [ 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ]\n*/\nfunction filled4dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = [];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = [];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = [];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ta0.push( clbk.call( thisArg, [ i3, i2, i1, i0 ] ) );\n\t\t\t\t}\n\t\t\t\ta1.push( a0 );\n\t\t\t}\n\t\t\ta2.push( a1 );\n\t\t}\n\t\tarr.push( a2 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled four-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled4d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled4dBy = require( '@stdlib/array/base/filled4d-by' );\n*\n* var out = filled4dBy( [ 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a filled five-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = filled5d( 0.0, [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*\n* @example\n* var out = filled5d( 'beep', [ 1, 1, 1, 3, 1 ] );\n* // returns [ [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ] ]\n*/\nfunction filled5d( value, shape ) {\n\tvar out;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tout = [];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = [];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = [];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = [];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta1.push( filled( value, S0 ) );\n\t\t\t\t}\n\t\t\t\ta2.push( a1 );\n\t\t\t}\n\t\t\ta3.push( a2 );\n\t\t}\n\t\tout.push( a3 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled five-dimensional nested array.\n*\n* @module @stdlib/array/base/filled5d\n*\n* @example\n* var filled5d = require( '@stdlib/array/base/filled5d' );\n*\n* var out = filled5d( 0.0, [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*\n* @example\n* var filled5d = require( '@stdlib/array/base/filled5d' );\n*\n* var out = filled5d( 'beep', [ 1, 1, 1, 3, 1 ] );\n* // returns [ [ [ [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns a filled five-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback function execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filled5dBy( [ 1, 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ] ]\n*/\nfunction filled5dBy( shape, clbk, thisArg ) {\n\tvar arr;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Manually push elements in order to ensure \"fast\" elements...\n\tarr = [];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = [];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = [];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = [];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = [];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ta0.push( clbk.call( thisArg, [ i4, i3, i2, i1, i0 ] ) );\n\t\t\t\t\t}\n\t\t\t\t\ta1.push( a0 );\n\t\t\t\t}\n\t\t\t\ta2.push( a1 );\n\t\t\t}\n\t\t\ta3.push( a2 );\n\t\t}\n\t\tarr.push( a3 );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filled5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled five-dimensional nested array according to a provided callback function.\n*\n* @module @stdlib/array/base/filled5d-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filled5dBy = require( '@stdlib/array/base/filled5d-by' );\n*\n* var out = filled5dBy( [ 1, 1, 1, 1, 3 ], constantFunction( 'beep' ) );\n* // returns [ [ [ [ [ 'beep', 'beep', 'beep' ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// FUNCTIONS //\n\n/**\n* Recursive fills an array.\n*\n* @private\n* @param {*} value - fill value\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Array} out - output array\n* @returns {Array} output array\n*/\nfunction recurse( value, ndims, shape, dim, out ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we're filling the last dimension:\n\td = dim + 1;\n\tif ( d === ndims ) {\n\t\treturn filled( value, S );\n\t}\n\n\t// Fill nested dimensions...\n\tfor ( i = 0; i < S; i++ ) {\n\t\tout.push( recurse( value, ndims, shape, d, [] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array.\n*\n* @param {*} value - fill value\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = fillednd( 0.0, [ 3 ] );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = fillednd( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var out = fillednd( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction fillednd( value, shape ) {\n\treturn recurse( value, shape.length, shape, 0, [] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fillednd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled n-dimensional nested array.\n*\n* @module @stdlib/array/base/fillednd\n*\n* @example\n* var fillednd = require( '@stdlib/array/base/fillednd' );\n*\n* var out = fillednd( 0.0, [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*\n* @example\n* var fillednd = require( '@stdlib/array/base/fillednd' );\n*\n* var out = fillednd( 'beep', [ 3, 1 ] );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursive fills an array.\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {NonNegativeIntegerArray} indices - outer array element indices\n* @param {Array} out - output array\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} output array\n*/\nfunction recurse( ndims, shape, dim, indices, out, clbk, thisArg ) {\n\tvar idx;\n\tvar FLG;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we're filling the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tidx = indices.slice(); // we explicitly copy in order to avoid potential mutation when calling `clbk`\n\t\tidx.push( i );\n\t\tif ( FLG ) {\n\t\t\tout.push( clbk.call( thisArg, idx ) );\n\t\t} else {\n\t\t\tout.push( recurse( ndims, shape, d, idx, [], clbk, thisArg ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a filled two-dimensional nested array according to a provided callback function.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} filled array\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n*\n* var out = filledndBy( [ 3, 1 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\nfunction filledndBy( shape, clbk, thisArg ) {\n\treturn recurse( shape.length, shape, 0, [], [], clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledndBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled n-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/fillednd-by\n*\n* @example\n* var constantFunction = require( '@stdlib/utils/constant-function' );\n* var filledndBy = require( '@stdlib/array/base/fillednd-by' );\n*\n* var out = filledndBy( [ 3, 1 ], constantFunction( 'beep' ) );\n* // returns [ [ 'beep' ], [ 'beep' ], [ 'beep' ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\nvar vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar grev = require( '@stdlib/blas/ext/base/grev' );\nvar zeros = require( './../../../base/zeros' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// FUNCTIONS //\n\n/**\n* Copies a specified number of array elements to a provided array.\n*\n* @private\n* @param {Array} x - input array\n* @param {NonNegativeInteger} N - number of elements to copy\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* copy( x, 3, out, 1, 0 );\n*\n* var o = out;\n* // returns [ 1, 2, 3 ]\n*/\nfunction copy( x, N, out, stride, offset ) {\n\tvar i;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout[ offset ] = x[ i ];\n\t\toffset += stride;\n\t}\n}\n\n/**\n* Recursively flattens an array in lexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @returns {NonNegativeInteger} offset for next output array element\n*/\nfunction recurseLexicographic( x, ndims, shape, dim, out, stride, offset ) {\n\tvar FLG;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we've reached the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tif ( FLG ) {\n\t\t\tout[ offset ] = x[ i ];\n\t\t\toffset += stride;\n\t\t} else {\n\t\t\toffset = recurseLexicographic( x[ i ], ndims, shape, d, out, stride, offset ); // eslint-disable-line max-len\n\t\t}\n\t}\n\treturn offset;\n}\n\n/**\n* Flattens an array in colexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n*/\nfunction flattenColexicographic( x, ndims, shape, out, stride, offset ) {\n\tvar len;\n\tvar tmp;\n\tvar ord;\n\tvar sh;\n\tvar sx;\n\tvar j;\n\tvar i;\n\n\t// Note that, in contrast to lexicographic iteration, we cannot readily define a straightforward recursive definition for colexicographic iteration. Accordingly, we have to perform a workaround in which we first flatten in lexicographic order and then perform an out-of-place transposition to return an array in colexicographic order.\n\n\t// Determine how many elements will be in the output array:\n\tlen = numel( shape );\n\n\t// For input arrays having an arbitrary number of dimensions, first flatten in lexicographic order:\n\ttmp = zeros( len );\n\trecurseLexicographic( x, ndims, shape, 0, tmp, 1, 0 );\n\n\t// Define the memory layout:\n\tord = 'row-major';\n\n\t// Generate a stride array for lexicographic order:\n\tsx = shape2strides( shape, ord );\n\n\t// Reverse the dimensions and strides (i.e., define the shape and strides of the transpose):\n\tsh = zeros( ndims );\n\tcopy( shape, ndims, sh, 1, 0 );\n\tgrev( ndims, sh, 1 );\n\tgrev( ndims, sx, 1 );\n\n\t// Iterate over each element based on the linear **view** index (note: this has negative performance implications due to lack of data locality)...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = vind2bind( sh, sx, 0, ord, i, MODE );\n\t\tout[ offset ] = tmp[ j ];\n\t\toffset += stride;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten( x, shape, colexicographic, out, stride, offset ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) { // 0-dimensional array\n\t\treturn out;\n\t}\n\tif ( ndims === 1 ) { // 1-dimensional array\n\t\t// For 1-dimensional arrays, we can perform a simple copy:\n\t\tcopy( x, shape[ 0 ], out, stride, offset );\n\t\treturn out;\n\t}\n\tif ( colexicographic ) {\n\t\tflattenColexicographic( x, ndims, shape, out, stride, offset );\n\t\treturn out;\n\t}\n\trecurseLexicographic( x, ndims, shape, 0, out, stride, offset );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar zeros = require( './../../../base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten( x, shape, colexicographic ) {\n\tvar out = zeros( numel( shape ) );\n\treturn assign( x, shape, colexicographic, out, 1, 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten an n-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten\n*\n* @example\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten = require( '@stdlib/array/base/flatten' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten.assign( x, [ 2, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\nvar vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar grev = require( '@stdlib/blas/ext/base/grev' );\nvar zeros = require( './../../../base/zeros' );\nvar copy = require( './../../../base/copy-indexed' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// FUNCTIONS //\n\n/**\n* Copies a specified number of array elements to a provided array according to a callback function.\n*\n* @private\n* @param {Array} x - input array\n* @param {NonNegativeInteger} N - number of elements to copy\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var out = [ 0, 0, 0 ];\n* copyBy( x, 3, out, 1, 0, scale );\n*\n* var o = out;\n* // returns [ 2, 4, 6 ]\n*/\nfunction copyBy( x, N, out, stride, offset, clbk, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout[ offset ] = clbk.call( thisArg, x[ i ], [ i ], x );\n\t\toffset += stride;\n\t}\n}\n\n/**\n* Recursively flattens an array in lexicographic order.\n*\n* @private\n* @param {Array} orig - original input array\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {NonNegativeInteger} dim - dimension index\n* @param {NonNegativeIntegerArray} indices - outer array element indices\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {NonNegativeInteger} offset for next output array element\n*/\nfunction recurseLexicographic( orig, x, ndims, shape, dim, indices, out, stride, offset, clbk, thisArg ) { // eslint-disable-line max-params\n\tvar FLG;\n\tvar idx;\n\tvar S;\n\tvar d;\n\tvar i;\n\n\t// Check whether we've reached the last dimension:\n\td = dim + 1;\n\tFLG = ( d === ndims );\n\n\tS = shape[ dim ];\n\tfor ( i = 0; i < S; i++ ) {\n\t\tidx = indices.slice(); // we explicitly copy in order to avoid potential mutation when calling `clbk`\n\t\tidx.push( i );\n\t\tif ( FLG ) {\n\t\t\tout[ offset ] = clbk.call( thisArg, x[ i ], idx, orig );\n\t\t\toffset += stride;\n\t\t} else {\n\t\t\toffset = recurseLexicographic( orig, x[ i ], ndims, shape, d, idx, out, stride, offset, clbk, thisArg );\n\t\t}\n\t}\n\treturn offset;\n}\n\n/**\n* Flattens an array in colexicographic order.\n*\n* @private\n* @param {Array} x - array to flatten\n* @param {NonNegativeInteger} ndims - number of dimensions in the input array\n* @param {NonNegativeIntegerArray} shape - shape of the input array\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n*/\nfunction flattenColexicographic( x, ndims, shape, out, stride, offset, clbk, thisArg ) {\n\tvar len;\n\tvar tmp;\n\tvar ord;\n\tvar sh;\n\tvar sx;\n\tvar j;\n\tvar i;\n\n\t// Note that, in contrast to lexicographic iteration, we cannot readily define a straightforward recursive definition for colexicographic iteration. Accordingly, we have to perform a workaround in which we first flatten in lexicographic order and then perform an out-of-place transposition to return an array in colexicographic order.\n\n\t// Determine how many elements will be in the output array:\n\tlen = numel( shape );\n\n\t// For input arrays having an arbitrary number of dimensions, first flatten in lexicographic order:\n\ttmp = zeros( len );\n\trecurseLexicographic( x, x, ndims, shape, 0, [], tmp, 1, 0, clbk, thisArg );\n\n\t// Define the memory layout:\n\tord = 'row-major';\n\n\t// Generate a stride array for lexicographic order:\n\tsx = shape2strides( shape, ord );\n\n\t// Reverse the dimensions and strides (i.e., define the shape and strides of the transpose):\n\tsh = copy( shape );\n\tgrev( ndims, sh, 1 );\n\tgrev( ndims, sx, 1 );\n\n\t// Iterate over each element based on the linear **view** index (note: this has negative performance implications due to lack of data locality)...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tj = vind2bind( sh, sx, 0, ord, i, MODE );\n\t\tout[ offset ] = tmp[ j ];\n\t\toffset += stride;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flattenBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) { // 0-dimensional array\n\t\treturn out;\n\t}\n\tif ( ndims === 1 ) { // 1-dimensional array\n\t\t// For 1-dimensional arrays, we can perform simple iteration:\n\t\tcopyBy( x, shape[ 0 ], out, stride, offset, clbk, thisArg );\n\t\treturn out;\n\t}\n\tif ( colexicographic ) {\n\t\tflattenColexicographic( x, ndims, shape, out, stride, offset, clbk, thisArg );\n\t\treturn out;\n\t}\n\trecurseLexicographic( x, x, ndims, shape, 0, [], out, stride, offset, clbk, thisArg );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flattenBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar numel = require( '@stdlib/ndarray/base/numel' );\nvar zeros = require( './../../../base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Flattens an n-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flattenBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out = zeros( numel( shape ) );\n\treturn assign( x, shape, colexicographic, out, 1, 0, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flattenBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten an n-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten-by\n*\n* @example\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flattenBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flattenBy = require( '@stdlib/array/base/flatten-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flattenBy.assign( x, [ 2, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten2d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout.push( x[ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten2d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout[ io ] = x[ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\tio += stride;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a two-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten2d\n*\n* @example\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2d( x, [ 2, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten2d = require( '@stdlib/array/base/flatten2d' );\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten2d.assign( x, [ 2, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten2dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout.push( clbk.call( thisArg, x[ i1 ][ i0 ], [ i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a two-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten2dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) { // eslint-disable-line max-len\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar a0;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 1 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i1 ][ i0 ], [ i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\ta0 = x[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\tio += stride;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a two-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten2d-by\n*\n* @example\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = flatten2dBy( x, [ 2, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten2dBy = require( '@stdlib/array/base/flatten2d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ 1, 2 ], [ 3, 4 ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten2dBy( x, [ 2, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten3d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout.push( x[ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten3d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout[ io ] = x[ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a three-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten3d\n*\n* @example\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3d( x, [ 2, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten3d = require( '@stdlib/array/base/flatten3d' );\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten3d.assign( x, [ 2, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten3dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout.push( clbk.call( thisArg, x[ i2 ][ i1 ][ i0 ], [ i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a three-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten3dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar a0;\n\tvar a1;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 2 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i2 ][ i1 ][ i0 ], [ i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\ta1 = x[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\ta0 = a1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\tio += stride;\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten3dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a three-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten3d-by\n*\n* @example\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = flatten3dBy( x, [ 2, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten3dBy = require( '@stdlib/array/base/flatten3d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten3dBy.assign( x, [ 2, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten4d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout.push( x[ i3 ][ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten4d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout[ io ] = x[ i3 ][ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a four-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten4d\n*\n* @example\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4d( x, [ 2, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten4d = require( '@stdlib/array/base/flatten4d' );\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten4d.assign( x, [ 2, 1, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten4dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout.push( clbk.call( thisArg, x[ i3 ][ i2 ][ i1 ][ i0 ], [ i3, i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i3, i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a four-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten4dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 3 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i3 ][ i2 ][ i1 ][ i0 ], [ i3, i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\ta2 = x[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\ta1 = a2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i3, i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\tio += stride;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten4dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a four-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten4d-by\n*\n* @example\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = flatten4dBy( x, [ 2, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten4dBy = require( '@stdlib/array/base/flatten4d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ 1, 2 ] ] ], [ [ [ 3, 4 ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten4dBy.assign( x, [ 2, 1, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @returns {Array} flattened array\n*\n* @example\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten5d( x, shape, colexicographic ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout.push( x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ] ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout.push( a0[ i0 ] ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*/\nfunction flatten5d( x, shape, colexicographic, out, stride, offset ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout[ io ] = x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ]; // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t\tio += stride;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout[ io ] = a0[ i0 ]; // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a five-dimensional nested array.\n*\n* @module @stdlib/array/base/flatten5d\n*\n* @example\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], false );\n* // returns [ 1, 2, 3, 4 ]\n*\n* @example\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5d( x, [ 2, 1, 1, 1, 2 ], true );\n* // returns [ 1, 3, 2, 4 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten5d = require( '@stdlib/array/base/flatten5d' );\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten5d.assign( x, [ 2, 1, 1, 1, 2 ], true, out, 1, 0 );\n* // returns [ 1, 3, 2, 4 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array according to a callback function.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Array} flattened array\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten5dBy( x, shape, colexicographic, clbk, thisArg ) {\n\tvar out;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Initialize an output array:\n\tout = [];\n\n\t// Iterate over the array dimensions...\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout.push( clbk.call( thisArg, x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ], [ i4, i3, i2, i1, i0 ], x ) ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout.push( clbk.call( thisArg, a0[ i0 ], [ i4, i3, i2, i1, i0 ], x ) ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Flattens a five-dimensional nested array according to a callback function and assigns elements to a provided output array.\n*\n* ## Notes\n*\n* - The function assumes that all nested arrays have the same length (i.e., the input array is **not** a ragged array).\n*\n* @param {Array>>>} x - input nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {boolean} colexicographic - specifies whether to flatten array values in colexicographic order\n* @param {Collection} out - output array\n* @param {integer} stride - output array stride\n* @param {NonNegativeInteger} offset - output array index offset\n* @param {Function} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, new Float64Array( 4 ), 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*/\nfunction flatten5dBy( x, shape, colexicographic, out, stride, offset, clbk, thisArg ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar a0;\n\tvar a1;\n\tvar a2;\n\tvar a3;\n\tvar io;\n\n\t// Extract loop variables:\n\tS0 = shape[ 4 ]; // for nested arrays, the last dimensions have the fastest changing indices\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\n\t// Iterate over the array dimensions...\n\tio = offset;\n\tif ( colexicographic ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, x[ i4 ][ i3 ][ i2 ][ i1 ][ i0 ], [ i4, i3, i2, i1, i0 ], x ); // equivalent to storing in column-major (Fortran-style) order\n\t\t\t\t\t\t\tio += stride;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\ta3 = x[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\ta2 = a3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\ta1 = a2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\ta0 = a1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tout[ io ] = clbk.call( thisArg, a0[ i0 ], [ i4, i3, i2, i1, i0 ], x ); // equivalent to storing in row-major (C-style) order\n\t\t\t\t\t\tio += stride;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = flatten5dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Flatten a five-dimensional nested array according to a callback function.\n*\n* @module @stdlib/array/base/flatten5d-by\n*\n* @example\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], false, scale );\n* // returns [ 2, 4, 6, 8 ]\n*\n* @example\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = flatten5dBy( x, [ 2, 1, 1, 1, 2 ], true, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var flatten5dBy = require( '@stdlib/array/base/flatten5d-by' );\n*\n* function scale( v ) {\n* return v * 2;\n* }\n*\n* var x = [ [ [ [ [ 1, 2 ] ] ] ], [ [ [ [ 3, 4 ] ] ] ] ];\n*\n* var out = new Float64Array( 4 );\n* var y = flatten5dBy.assign( x, [ 2, 1, 1, 1, 2 ], true, out, 1, 0, scale );\n* // returns [ 2, 6, 4, 8 ]\n*\n* var bool = ( y === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ceil = require( '@stdlib/math/base/special/ceil' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array according to a provided increment.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @param {number} increment - increment\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\nfunction incrspace( x1, x2, increment ) {\n\tvar arr;\n\tvar len;\n\tvar i;\n\n\tlen = ceil( ( x2-x1 ) / increment );\n\tif ( len <= 1 ) {\n\t\treturn [ x1 ];\n\t}\n\tarr = [ x1 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tarr.push( x1 + (increment*i) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = incrspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array according to a provided increment.\n*\n* @module @stdlib/array/base/incrspace\n*\n* @example\n* var incrspace = require( '@stdlib/array/base/incrspace' );\n*\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar accessorGetter = require( './../../../base/accessor-getter' );\nvar getter = require( './../../../base/getter' );\nvar dtype = require( './../../../dtype' );\n\n\n// MAIN //\n\n/**\n* Returns the last element of an array-like object.\n*\n* @param {Collection} arr - input array\n* @returns {*} - last element\n*\n* @example\n* var out = last( [ 1, 2, 3 ] );\n* // returns 3\n*/\nfunction last( arr ) {\n\tvar get;\n\tvar idx;\n\tvar dt;\n\n\t// Resolve the input array data type:\n\tdt = dtype( arr );\n\n\t// Resolve an accessor for retrieving input array elements:\n\tif ( isAccessorArray( arr ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\t// Resolve the last index:\n\tidx = arr.length - 1;\n\n\t// Return the last element:\n\tif ( idx < 0 ) {\n\t\treturn;\n\t}\n\treturn get( arr, idx );\n}\n\n\n// EXPORTS //\n\nmodule.exports = last;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the last element of an array-like object.\n*\n* @module @stdlib/array/base/last\n*\n* @example\n* var last = require( '@stdlib/array/base/last' );\n*\n* var out = last( [ 1, 2, 3 ] );\n* // returns 3\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - last array value\n* @param {NonNegativeInteger} len - length of output array\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\nfunction linspace( x1, x2, len ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Calculate the increment:\n\tN = len - 1;\n\td = ( x2-x1 ) / N;\n\n\t// Build the output array...\n\tarr = [ x1 ];\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( x1 + (d*i) );\n\t}\n\tarr.push( x2 );\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array.\n*\n* @module @stdlib/array/base/linspace\n*\n* @example\n* var linspace = require( '@stdlib/array/base/linspace' );\n*\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar pow = require( '@stdlib/math/base/special/pow' );\n\n\n// MAIN //\n\n/**\n* Generates a logarithmically spaced numeric array.\n*\n* @param {number} a - exponent of start value\n* @param {number} b - exponent of end value\n* @param {NonNegativeInteger} len - length of output array\n* @returns {Array} logarithmically spaced numeric array\n*\n* @example\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\nfunction logspace( a, b, len ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Calculate the increment:\n\tN = len - 1;\n\td = ( b-a ) / N;\n\n\t// Build the output array...\n\tarr = [ pow( 10, a ) ];\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( pow( 10, a+(d*i) ) );\n\t}\n\tarr.push( pow( 10, b ) );\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = logspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a logarithmically spaced numeric array.\n*\n* @module @stdlib/array/base/logspace\n*\n* @example\n* var logspace = require( '@stdlib/array/base/logspace' );\n*\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a binary callback to elements in two two-dimensional nested input arrays according to elements in a two-dimensional nested mask array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing two input nested arrays, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskbinary2d( [ x, y, mask, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 0.0 ], [ 2.0, 2.0 ] ]\n*/\nfunction mskbinary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar m0;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar m;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 3 ];\n\tm = arrays[ 2 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tm0 = m[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\tz0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskbinary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a binary callback to elements in two two-dimensional nested input arrays according to elements in a two-dimensional nested mask array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskbinary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var add = require( '@stdlib/math/base/ops/add' );\n* var mskbinary2d = require( '@stdlib/array/base/mskbinary2d' );\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskbinary2d( [ x, y, mask, z ], shape, add );\n*\n* console.log( z );\n* // => [ [ 2.0, 0.0 ], [ 2.0, 2.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional nested input array according to elements in a two-dimensional nested mask array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskunary2d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction mskunary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar m0;\n\tvar x;\n\tvar y;\n\tvar m;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 2 ];\n\tm = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tm0 = m[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a two-dimensional nested input array according to elements in a two-dimensional nested mask array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskunary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var mskunary2d = require( '@stdlib/array/base/mskunary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* var mask = [ [ 0, 1 ], [ 0, 0 ] ];\n*\n* mskunary2d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional nested input array according to elements in a three-dimensional nested mask array and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array, an input nested mask array, and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* var mask = [ [ [ 0, 1 ], [ 0, 0 ] ] ];\n*\n* mskunary3d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction mskunary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar m0;\n\tvar m1;\n\tvar x;\n\tvar y;\n\tvar m;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 2 ];\n\tm = arrays[ 1 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tm1 = m[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tm0 = m1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tif ( m0[ i0 ] === 0 ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = mskunary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a three-dimensional nested input array according to elements in a three-dimensional nested mask array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/mskunary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var mskunary3d = require( '@stdlib/array/base/mskunary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* var mask = [ [ [ 0, 1 ], [ 0, 0 ] ] ];\n*\n* mskunary3d( [ x, mask, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 0.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns the n-fold Cartesian product.\n*\n* ## Notes\n*\n* - The main insight of this implementation is that the n-fold Cartesian product can be presented as an n-dimensional array stored in row-major order. As such, we can\n*\n* - Compute the total number of tuples, which is simply the product of the size of each provided array (set). For n-dimensional arrays, this is the equivalent of computing the product of array dimensions to determine the total number of elements.\n* - Initialize an array for storing indices for indexing into each provided array. For n-dimensional arrays, the index array is equivalent to an array of subscripts for indexing into each dimension.\n* - For the outermost loop, treat the loop index as a linear index into an n-dimensional array and resolve the corresponding subscripts.\n* - Continue iterating until all tuples have been generated.\n*\n* @param {ArrayLikeObject} x1 - first input array\n* @param {ArrayLikeObject} x2 - second input array\n* @param {ArrayLikeObject} [...args] - additional input arrays\n* @returns {Array} list of ordered tuples comprising the n-fold Cartesian product\n*\n* @example\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = nCartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\nfunction nCartesianProduct( x1, x2 ) {\n\tvar nargs;\n\tvar dims;\n\tvar arr;\n\tvar out;\n\tvar tmp;\n\tvar arg;\n\tvar idx;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\tvar k;\n\n\tnargs = arguments.length;\n\n\t// Initialize the list of arrays:\n\tarr = [ x1, x2 ];\n\n\t// Initialize the list of array dimensions (equivalent to ndarray shape):\n\tdims = [ x1.length, x2.length ];\n\n\t// Initialize a list of indices for indexing into each array (equivalent to ndarray subscripts):\n\tidx = [ 0, 0 ];\n\n\t// Compute the total number of ordered tuples:\n\tN = dims[ 0 ] * dims[ 1 ];\n\n\t// Update loop variables for any additional arrays...\n\tfor ( i = 2; i < nargs; i++ ) {\n\t\targ = arguments[ i ];\n\t\tarr.push( arg );\n\t\tdims.push( arg.length );\n\t\tidx.push( 0 );\n\t\tN *= dims[ i ];\n\t}\n\t// Compute the n-fold Cartesian product...\n\tout = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\t// Resolve a linear index to array indices (logic is equivalent to what is found in ndarray/base/ind2sub for an ndarray stored in row-major order; see https://github.com/stdlib-js/stdlib/blob/215ca5355f3404f15996fd0ced58a98e46f22be6/lib/node_modules/%40stdlib/ndarray/base/ind2sub/lib/assign.js)...\n\t\tk = i;\n\t\tfor ( j = nargs-1; j >= 0; j-- ) {\n\t\t\ts = k % dims[ j ];\n\t\t\tk -= s;\n\t\t\tk /= dims[ j ];\n\t\t\tidx[ j ] = s;\n\t\t}\n\t\t// Generate the next ordered tuple...\n\t\ttmp = [];\n\t\tfor ( j = 0; j < nargs; j++ ) {\n\t\t\ttmp.push( arr[ j ][ idx[ j ] ] );\n\t\t}\n\t\tout.push( tmp );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nCartesianProduct;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the n-fold Cartesian product.\n*\n* @module @stdlib/array/base/n-cartesian-product\n*\n* @example\n* var nCartesianProduct = require( '@stdlib/array/base/n-cartesian-product' );\n*\n* var x1 = [ 1, 2, 3 ];\n* var x2 = [ 4, 5 ];\n*\n* var out = nCartesianProduct( x1, x2 );\n* // returns [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]\n*/\n\n// MAIN //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from one.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = oneTo( 6 );\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nfunction oneTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 1; i < n+1; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = oneTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from one.\n*\n* @module @stdlib/array/base/one-to\n*\n* @example\n* var oneTo = require( '@stdlib/array/base/one-to' );\n*\n* var arr = oneTo( 6 );\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled = require( './../../../base/filled' );\n\n\n// MAIN //\n\n/**\n* Returns a \"generic\" array filled with ones.\n*\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\nfunction ones( len ) {\n\treturn filled( 1.0, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a \"generic\" array filled with ones.\n*\n* @module @stdlib/array/base/ones\n*\n* @example\n* var ones = require( '@stdlib/array/base/ones' );\n*\n* var out = ones( 3 );\n* // returns [ 1.0, 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled2d = require( './../../../base/filled2d' );\n\n\n// MAIN //\n\n/**\n* Returns a two-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {ArrayArray} filled array\n*\n* @example\n* var out = ones2d( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\nfunction ones2d( shape ) {\n\treturn filled2d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a two-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n*\n* var out = ones2d( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled3d = require( './../../../base/filled3d' );\n\n\n// MAIN //\n\n/**\n* Returns a three-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 1.0, 1.0, 1.0 ] ] ]\n*/\nfunction ones3d( shape ) {\n\treturn filled3d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a three-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n*\n* var out = ones3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 1.0, 1.0, 1.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled4d = require( './../../../base/filled4d' );\n\n\n// MAIN //\n\n/**\n* Returns a four-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ]\n*/\nfunction ones4d( shape ) {\n\treturn filled4d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a four-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n*\n* var out = ones4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled5d = require( './../../../base/filled5d' );\n\n\n// MAIN //\n\n/**\n* Returns a five-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = ones5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ] ]\n*/\nfunction ones5d( shape ) {\n\treturn filled5d( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a five-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/ones5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n*\n* var out = ones5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 1.0, 1.0, 1.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar fillednd = require( './../../../base/fillednd' );\n\n\n// MAIN //\n\n/**\n* Returns an n-dimensional nested array filled with ones.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = onesnd( [ 3 ] );\n* // returns [ 1.0, 1.0, 1.0 ]\n*\n* @example\n* var out = onesnd( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\nfunction onesnd( shape ) {\n\treturn fillednd( 1.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = onesnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an n-dimensional nested array filled with ones.\n*\n* @module @stdlib/array/base/onesnd\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n*\n* var out = onesnd( [ 1, 3 ] );\n* // returns [ [ 1.0, 1.0, 1.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a quaternary callback to elements in four two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing four input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - quaternary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var w = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* quaternary2d( [ x, y, z, w, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 4.0, 4.0 ], [ 4.0, 4.0 ] ]\n*/\nfunction quaternary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar v0;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\tvar v;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tv = arrays[ 4 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tw0 = w[ i1 ];\n\t\tv0 = v[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ], w0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = quaternary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a quaternary callback to elements in four two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/quaternary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var quaternary2d = require( '@stdlib/array/base/quaternary2d' );\n*\n* function add( x, y, z, w ) {\n* return x + y + z + w;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var w = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* quaternary2d( [ x, y, z, w, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 4.0, 4.0 ], [ 4.0, 4.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Takes elements from an array.\n*\n* @param {Collection} x - input array\n* @param {NonNegativeIntegerArray} indices - list of indices\n* @returns {Array} output array\n*\n* @example\n* var x = [ 1, 2, 3, 4 ];\n* var indices = [ 3, 1, 2, 0 ];\n*\n* var y = take( x, indices );\n* // returns [ 4, 2, 3, 1 ]\n*/\nfunction take( x, indices ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < indices.length; i++ ) {\n\t\tout.push( x[ indices[ i ] ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = take;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Take elements from an array.\n*\n* @module @stdlib/array/base/take\n*\n* @example\n* var take = require( '@stdlib/array/base/take' );\n*\n* var x = [ 1, 2, 3, 4 ];\n*\n* var indices = [ 0, 0, 1, 1, 3, 3 ];\n* var y = take( x, indices );\n* // returns [ 1, 1, 2, 2, 4, 4 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three two-dimensional nested input arrays and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* ternary2d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\nfunction ternary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tz0 = z[ i1 ];\n\t\tw0 = w[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three two-dimensional nested input arrays and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var ternary2d = require( '@stdlib/array/base/ternary2d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = ones2d( shape );\n* var z = ones2d( shape );\n* var out = zeros2d( shape );\n*\n* ternary2d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three three-dimensional nested input arrays and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = ones3d( shape );\n* var out = zeros3d( shape );\n*\n* ternary3d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ]\n*/\nfunction ternary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tz1 = z[ i2 ];\n\t\tw1 = w[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tz0 = z1[ i1 ];\n\t\t\tw0 = w1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three three-dimensional nested input arrays and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var ternary3d = require( '@stdlib/array/base/ternary3d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = ones3d( shape );\n* var z = ones3d( shape );\n* var out = zeros3d( shape );\n*\n* ternary3d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three four-dimensional nested input arrays and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = ones4d( shape );\n* var out = zeros4d( shape );\n*\n* ternary4d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ]\n*/\nfunction ternary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x2;\n\tvar y2;\n\tvar z2;\n\tvar w2;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tz2 = z[ i3 ];\n\t\tw2 = w[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tz1 = z2[ i2 ];\n\t\t\tw1 = w2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\tw0 = w1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three four-dimensional nested input arrays and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var ternary4d = require( '@stdlib/array/base/ternary4d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = ones4d( shape );\n* var z = ones4d( shape );\n* var out = zeros4d( shape );\n*\n* ternary4d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a ternary callback to elements in three five-dimensional nested input arrays and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing three input nested arrays and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - ternary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = ones5d( shape );\n* var out = zeros5d( shape );\n*\n* ternary5d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ] ]\n*/\nfunction ternary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar y0;\n\tvar z0;\n\tvar w0;\n\tvar x1;\n\tvar y1;\n\tvar z1;\n\tvar w1;\n\tvar x2;\n\tvar y2;\n\tvar z2;\n\tvar w2;\n\tvar x3;\n\tvar y3;\n\tvar z3;\n\tvar w3;\n\tvar x;\n\tvar y;\n\tvar z;\n\tvar w;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tz = arrays[ 2 ];\n\tw = arrays[ 3 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tz3 = z[ i4 ];\n\t\tw3 = w[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tz2 = z3[ i3 ];\n\t\t\tw2 = w3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tz1 = z2[ i2 ];\n\t\t\t\tw1 = w2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tz0 = z1[ i1 ];\n\t\t\t\t\tw0 = w1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tw0[ i0 ] = fcn( x0[ i0 ], y0[ i0 ], z0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = ternary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a ternary callback to elements in three five-dimensional nested input arrays and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/ternary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var ternary5d = require( '@stdlib/array/base/ternary5d' );\n*\n* function add( x, y, z ) {\n* return x + y + z;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = ones5d( shape );\n* var z = ones5d( shape );\n* var out = zeros5d( shape );\n*\n* ternary5d( [ x, y, z, out ], shape, add );\n*\n* console.log( out );\n* // => [ [ [ [ [ 3.0, 3.0 ], [ 3.0, 3.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isAccessorArray = require( './../../../base/assert/is-accessor-array' );\nvar AccessorArray = require( './../../../base/accessor' );\n\n\n// MAIN //\n\n/**\n* Converts an array-like object to a minimal array-like object supporting the accessor protocol.\n*\n* ## Notes\n*\n* - If a provided array-like object already supports the accessor protocol, the function returns the provided array-like object; otherwise, the function wraps the provided value in a object which uses accessors for getting and setting elements.\n*\n* @param {Collection} arr - input array\n* @throws {TypeError} must provide an array-like object\n* @returns {(Collection|AccessorArray)} array-like object supporting the accessor protocol\n*\n* @example\n* var o = toAccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = o.get( 0 );\n* // returns 1\n*/\nfunction toAccessorArray( arr ) {\n\tif ( arr && typeof arr === 'object' && isAccessorArray( arr ) ) {\n\t\treturn arr;\n\t}\n\treturn new AccessorArray( arr );\n}\n\n\n// EXPORTS //\n\nmodule.exports = toAccessorArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array-like object to a minimal array-like object supporting the accessor protocol.\n*\n* @module @stdlib/array/base/to-accessor-array\n*\n* @example\n* var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );\n*\n* var o = toAccessorArray( [ 1, 2, 3 ] );\n* // returns \n*\n* var v = o.get( 0 );\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional nested input array and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction unary2d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a two-dimensional nested input array and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary2d\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var unary2d = require( '@stdlib/array/base/unary2d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional nested input array according to a callback function and assigns results to elements in a two-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback function\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* function accessor( v ) {\n* return v - 2.0;\n* }\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2dBy( [ x, y ], shape, scale, accessor );\n*\n* console.log( y );\n* // => [ [ -10.0, -10.0 ], [ -10.0, -10.0 ] ]\n*/\nfunction unary2dBy( arrays, shape, fcn, clbk ) {\n\tvar thisArg;\n\tvar S0;\n\tvar S1;\n\tvar i0;\n\tvar i1;\n\tvar x0;\n\tvar y0;\n\tvar x;\n\tvar y;\n\tvar v;\n\n\tS0 = shape[ 1 ];\n\tS1 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 ) {\n\t\treturn;\n\t}\n\tif ( arguments.length > 4 ) {\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tx0 = x[ i1 ];\n\t\ty0 = y[ i1 ];\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, x0[ i0 ], [ i1, i0 ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\ty0[ i0 ] = fcn( v );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2dBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary function to each element retrieved from a two-dimensional nested input array according to a callback function and assign results to elements in a two-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary2d-by\n*\n* @example\n* var ones2d = require( '@stdlib/array/base/ones2d' );\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n* var unary2dBy = require( '@stdlib/array/base/unary2d-by' );\n*\n* function accessor( v ) {\n* return v - 2.0;\n* }\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = ones2d( shape );\n* var y = zeros2d( shape );\n*\n* unary2dBy( [ x, y ], shape, scale, accessor );\n*\n* console.log( y );\n* // => [ [ -10.0, -10.0 ], [ -10.0, -10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional nested input array and assigns results to elements in a three-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* unary3d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\nfunction unary3d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar x0;\n\tvar x1;\n\tvar y0;\n\tvar y1;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 2 ];\n\tS1 = shape[ 1 ];\n\tS2 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tx1 = x[ i2 ];\n\t\ty1 = y[ i2 ];\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tx0 = x1[ i1 ];\n\t\t\ty0 = y1[ i1 ];\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a three-dimensional nested input array and assign results to elements in a three-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary3d\n*\n* @example\n* var ones3d = require( '@stdlib/array/base/ones3d' );\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n* var unary3d = require( '@stdlib/array/base/unary3d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 2, 2 ];\n*\n* var x = ones3d( shape );\n* var y = zeros3d( shape );\n*\n* unary3d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional nested input array and assigns results to elements in a four-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = zeros4d( shape );\n*\n* unary4d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\nfunction unary4d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 3 ];\n\tS1 = shape[ 2 ];\n\tS2 = shape[ 1 ];\n\tS3 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tx2 = x[ i3 ];\n\t\ty2 = y[ i3 ];\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tx1 = x2[ i2 ];\n\t\t\ty1 = y2[ i2 ];\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a four-dimensional nested input array and assign results to elements in a four-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary4d\n*\n* @example\n* var ones4d = require( '@stdlib/array/base/ones4d' );\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n* var unary4d = require( '@stdlib/array/base/unary4d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 2, 2 ];\n*\n* var x = ones4d( shape );\n* var y = zeros4d( shape );\n*\n* unary4d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional nested input array and assigns results to elements in a five-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject>>} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = zeros5d( shape );\n*\n* unary5d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\nfunction unary5d( arrays, shape, fcn ) {\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar x0;\n\tvar x1;\n\tvar x2;\n\tvar x3;\n\tvar y0;\n\tvar y1;\n\tvar y2;\n\tvar y3;\n\tvar x;\n\tvar y;\n\n\tS0 = shape[ 4 ];\n\tS1 = shape[ 3 ];\n\tS2 = shape[ 2 ];\n\tS3 = shape[ 1 ];\n\tS4 = shape[ 0 ];\n\tif ( S0 <= 0 || S1 <= 0 || S2 <= 0 || S3 <= 0 || S4 <= 0 ) {\n\t\treturn;\n\t}\n\tx = arrays[ 0 ];\n\ty = arrays[ 1 ];\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tx3 = x[ i4 ];\n\t\ty3 = y[ i4 ];\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tx2 = x3[ i3 ];\n\t\t\ty2 = y3[ i3 ];\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tx1 = x2[ i2 ];\n\t\t\t\ty1 = y2[ i2 ];\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tx0 = x1[ i1 ];\n\t\t\t\t\ty0 = y1[ i1 ];\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\ty0[ i0 ] = fcn( x0[ i0 ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in a five-dimensional nested input array and assign results to elements in a five-dimensional nested output array.\n*\n* @module @stdlib/array/base/unary5d\n*\n* @example\n* var ones5d = require( '@stdlib/array/base/ones5d' );\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n* var unary5d = require( '@stdlib/array/base/unary5d' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* var x = ones5d( shape );\n* var y = zeros5d( shape );\n*\n* unary5d( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ [ [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// FUNCTIONS //\n\n/**\n* Recursively applies a unary callback.\n*\n* @private\n* @param {ArrayLikeObject} x - input array\n* @param {ArrayLikeObject} y - output array\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeInteger} dim - dimension index\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*/\nfunction recurse( x, y, ndims, shape, dim, fcn ) {\n\tvar S;\n\tvar d;\n\tvar i;\n\n\tS = shape[ dim ];\n\n\t// Check whether we've reached the innermost dimension:\n\td = dim + 1;\n\n\tif ( d === ndims ) {\n\t\t// Apply the provided callback...\n\t\tfor ( i = 0; i < S; i++ ) {\n\t\t\ty[ i ] = fcn( x[ i ] );\n\t\t}\n\t\treturn;\n\t}\n\t// Continue recursing into the nested arrays...\n\tfor ( i = 0; i < S; i++ ) {\n\t\trecurse( x[ i ], y[ i ], ndims, shape, d, fcn );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional nested input array and assigns results to elements in an n-dimensional nested output array.\n*\n* ## Notes\n*\n* - The function assumes that the input and output arrays have the same shape.\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input nested array and one output nested array\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = zerosnd( shape );\n*\n* unarynd( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\nfunction unarynd( arrays, shape, fcn ) {\n\treturn recurse( arrays[ 0 ], arrays[ 1 ], shape.length, shape, 0, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Apply a unary callback to elements in an n-dimensional nested input array and assign results to elements in an n-dimensional nested output array.\n*\n* @module @stdlib/array/base/unarynd\n*\n* @example\n* var onesnd = require( '@stdlib/array/base/onesnd' );\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n* var unarynd = require( '@stdlib/array/base/unarynd' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* var shape = [ 2, 2 ];\n*\n* var x = onesnd( shape );\n* var y = zerosnd( shape );\n*\n* unarynd( [ x, y ], shape, scale );\n*\n* console.log( y );\n* // => [ [ 10.0, 10.0 ], [ 10.0, 10.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = unitspace( 0, 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction unitspace( x1, x2 ) {\n\tvar arr;\n\tvar len;\n\tvar i;\n\n\tlen = x2 - x1;\n\tif ( len <= 1 ) {\n\t\treturn [ x1 ];\n\t}\n\tarr = [ x1 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tarr.push( x1 + i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = unitspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1.\n*\n* @module @stdlib/array/base/unitspace\n*\n* @example\n* var unitspace = require( '@stdlib/array/base/unitspace' );\n*\n* var arr = unitspace( 0, 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @param {number} n - number of elements\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\nfunction zeroTo( n ) {\n\tvar arr;\n\tvar i;\n\n\tarr = [];\n\tif ( n <= 0 ) {\n\t\treturn arr;\n\t}\n\tfor ( i = 0; i < n; i++ ) {\n\t\tarr.push( i );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeroTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array whose elements increment by 1 starting from zero.\n*\n* @module @stdlib/array/base/zero-to\n*\n* @example\n* var zeroTo = require( '@stdlib/array/base/zero-to' );\n*\n* var arr = zeroTo( 6 );\n* // returns [ 0, 1, 2, 3, 4, 5 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled2d = require( './../../../base/filled2d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled two-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {ArrayArray} filled array\n*\n* @example\n* var out = zeros2d( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\nfunction zeros2d( shape ) {\n\treturn filled2d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled two-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros2d\n*\n* @example\n* var zeros2d = require( '@stdlib/array/base/zeros2d' );\n*\n* var out = zeros2d( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled3d = require( './../../../base/filled3d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled three-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*/\nfunction zeros3d( shape ) {\n\treturn filled3d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled three-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros3d\n*\n* @example\n* var zeros3d = require( '@stdlib/array/base/zeros3d' );\n*\n* var out = zeros3d( [ 1, 1, 3 ] );\n* // returns [ [ [ 0.0, 0.0, 0.0 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled4d = require( './../../../base/filled4d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled four-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*/\nfunction zeros4d( shape ) {\n\treturn filled4d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled four-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros4d\n*\n* @example\n* var zeros4d = require( '@stdlib/array/base/zeros4d' );\n*\n* var out = zeros4d( [ 1, 1, 1, 3 ] );\n* // returns [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar filled5d = require( './../../../base/filled5d' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled five-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zeros5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*/\nfunction zeros5d( shape ) {\n\treturn filled5d( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled five-dimensional nested array.\n*\n* @module @stdlib/array/base/zeros5d\n*\n* @example\n* var zeros5d = require( '@stdlib/array/base/zeros5d' );\n*\n* var out = zeros5d( [ 1, 1, 1, 1, 3 ] );\n* // returns [ [ [ [ [ 0.0, 0.0, 0.0 ] ] ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar fillednd = require( './../../../base/fillednd' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled n-dimensional nested array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} filled array\n*\n* @example\n* var out = zerosnd( [ 3 ] );\n* // returns [ 0.0, 0.0, 0.0 ]\n*\n* @example\n* var out = zerosnd( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\nfunction zerosnd( shape ) {\n\treturn fillednd( 0.0, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zerosnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled n-dimensional nested array.\n*\n* @module @stdlib/array/base/zerosnd\n*\n* @example\n* var zerosnd = require( '@stdlib/array/base/zerosnd' );\n*\n* var out = zerosnd( [ 1, 3 ] );\n* // returns [ [ 0.0, 0.0, 0.0 ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name AccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor}\n*/\nsetReadOnly( ns, 'AccessorArray', require( './../../base/accessor' ) );\n\n/**\n* @name accessorGetter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor-getter}\n*/\nsetReadOnly( ns, 'accessorGetter', require( './../../base/accessor-getter' ) );\n\n/**\n* @name accessorSetter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessor-setter}\n*/\nsetReadOnly( ns, 'accessorSetter', require( './../../base/accessor-setter' ) );\n\n/**\n* @name accessors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/accessors}\n*/\nsetReadOnly( ns, 'accessors', require( './../../base/accessors' ) );\n\n/**\n* @name arraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/arraylike2object}\n*/\nsetReadOnly( ns, 'arraylike2object', require( './../../base/arraylike2object' ) );\n\n/**\n* @name assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/array/base/assert}\n*/\nsetReadOnly( ns, 'assert', require( './../../base/assert' ) );\n\n/**\n* @name binary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary2d}\n*/\nsetReadOnly( ns, 'binary2d', require( './../../base/binary2d' ) );\n\n/**\n* @name binary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary3d}\n*/\nsetReadOnly( ns, 'binary3d', require( './../../base/binary3d' ) );\n\n/**\n* @name binary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary4d}\n*/\nsetReadOnly( ns, 'binary4d', require( './../../base/binary4d' ) );\n\n/**\n* @name binary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binary5d}\n*/\nsetReadOnly( ns, 'binary5d', require( './../../base/binary5d' ) );\n\n/**\n* @name binarynd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/binarynd}\n*/\nsetReadOnly( ns, 'binarynd', require( './../../base/binarynd' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../../base/broadcast-array' ) );\n\n/**\n* @name bbinary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary2d}\n*/\nsetReadOnly( ns, 'bbinary2d', require( './../../base/broadcasted-binary2d' ) );\n\n/**\n* @name bbinary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary3d}\n*/\nsetReadOnly( ns, 'bbinary3d', require( './../../base/broadcasted-binary3d' ) );\n\n/**\n* @name bbinary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary4d}\n*/\nsetReadOnly( ns, 'bbinary4d', require( './../../base/broadcasted-binary4d' ) );\n\n/**\n* @name bbinary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-binary5d}\n*/\nsetReadOnly( ns, 'bbinary5d', require( './../../base/broadcasted-binary5d' ) );\n\n/**\n* @name bternary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-ternary2d}\n*/\nsetReadOnly( ns, 'bternary2d', require( './../../base/broadcasted-ternary2d' ) );\n\n/**\n* @name bunary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary2d}\n*/\nsetReadOnly( ns, 'bunary2d', require( './../../base/broadcasted-unary2d' ) );\n\n/**\n* @name bunary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary3d}\n*/\nsetReadOnly( ns, 'bunary3d', require( './../../base/broadcasted-unary3d' ) );\n\n/**\n* @name bunary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary4d}\n*/\nsetReadOnly( ns, 'bunary4d', require( './../../base/broadcasted-unary4d' ) );\n\n/**\n* @name bunary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/broadcasted-unary5d}\n*/\nsetReadOnly( ns, 'bunary5d', require( './../../base/broadcasted-unary5d' ) );\n\n/**\n* @name cartesianPower\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-power}\n*/\nsetReadOnly( ns, 'cartesianPower', require( './../../base/cartesian-power' ) );\n\n/**\n* @name cartesianProduct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-product}\n*/\nsetReadOnly( ns, 'cartesianProduct', require( './../../base/cartesian-product' ) );\n\n/**\n* @name cartesianSquare\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/cartesian-square}\n*/\nsetReadOnly( ns, 'cartesianSquare', require( './../../base/cartesian-square' ) );\n\n/**\n* @name copy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/copy}\n*/\nsetReadOnly( ns, 'copy', require( './../../base/copy' ) );\n\n/**\n* @name copyIndexed\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/copy-indexed}\n*/\nsetReadOnly( ns, 'copyIndexed', require( './../../base/copy-indexed' ) );\n\n/**\n* @name filled\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled}\n*/\nsetReadOnly( ns, 'filled', require( './../../base/filled' ) );\n\n/**\n* @name filledBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled-by}\n*/\nsetReadOnly( ns, 'filledBy', require( './../../base/filled-by' ) );\n\n/**\n* @name filled2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled2d}\n*/\nsetReadOnly( ns, 'filled2d', require( './../../base/filled2d' ) );\n\n/**\n* @name filled2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled2d-by}\n*/\nsetReadOnly( ns, 'filled2dBy', require( './../../base/filled2d-by' ) );\n\n/**\n* @name filled3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled3d}\n*/\nsetReadOnly( ns, 'filled3d', require( './../../base/filled3d' ) );\n\n/**\n* @name filled3dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled3d-by}\n*/\nsetReadOnly( ns, 'filled3dBy', require( './../../base/filled3d-by' ) );\n\n/**\n* @name filled4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled4d}\n*/\nsetReadOnly( ns, 'filled4d', require( './../../base/filled4d' ) );\n\n/**\n* @name filled4dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled4d-by}\n*/\nsetReadOnly( ns, 'filled4dBy', require( './../../base/filled4d-by' ) );\n\n/**\n* @name filled5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled5d}\n*/\nsetReadOnly( ns, 'filled5d', require( './../../base/filled5d' ) );\n\n/**\n* @name filled5dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/filled5d-by}\n*/\nsetReadOnly( ns, 'filled5dBy', require( './../../base/filled5d-by' ) );\n\n/**\n* @name fillednd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/fillednd}\n*/\nsetReadOnly( ns, 'fillednd', require( './../../base/fillednd' ) );\n\n/**\n* @name filledndBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/fillednd-by}\n*/\nsetReadOnly( ns, 'filledndBy', require( './../../base/fillednd-by' ) );\n\n/**\n* @name flatten\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten}\n*/\nsetReadOnly( ns, 'flatten', require( './../../base/flatten' ) );\n\n/**\n* @name flattenBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten-by}\n*/\nsetReadOnly( ns, 'flattenBy', require( './../../base/flatten-by' ) );\n\n/**\n* @name flatten2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten2d}\n*/\nsetReadOnly( ns, 'flatten2d', require( './../../base/flatten2d' ) );\n\n/**\n* @name flatten2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten2d-by}\n*/\nsetReadOnly( ns, 'flatten2dBy', require( './../../base/flatten2d-by' ) );\n\n/**\n* @name flatten3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten3d}\n*/\nsetReadOnly( ns, 'flatten3d', require( './../../base/flatten3d' ) );\n\n/**\n* @name flatten3dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten3d-by}\n*/\nsetReadOnly( ns, 'flatten3dBy', require( './../../base/flatten3d-by' ) );\n\n/**\n* @name flatten4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten4d}\n*/\nsetReadOnly( ns, 'flatten4d', require( './../../base/flatten4d' ) );\n\n/**\n* @name flatten4dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten4d-by}\n*/\nsetReadOnly( ns, 'flatten4dBy', require( './../../base/flatten4d-by' ) );\n\n/**\n* @name flatten5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten5d}\n*/\nsetReadOnly( ns, 'flatten5d', require( './../../base/flatten5d' ) );\n\n/**\n* @name flatten5dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/flatten5d-by}\n*/\nsetReadOnly( ns, 'flatten5dBy', require( './../../base/flatten5d-by' ) );\n\n/**\n* @name getter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/getter}\n*/\nsetReadOnly( ns, 'getter', require( './../../base/getter' ) );\n\n/**\n* @name incrspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/incrspace}\n*/\nsetReadOnly( ns, 'incrspace', require( './../../base/incrspace' ) );\n\n/**\n* @name last\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/last}\n*/\nsetReadOnly( ns, 'last', require( './../../base/last' ) );\n\n/**\n* @name linspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/linspace}\n*/\nsetReadOnly( ns, 'linspace', require( './../../base/linspace' ) );\n\n/**\n* @name logspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/logspace}\n*/\nsetReadOnly( ns, 'logspace', require( './../../base/logspace' ) );\n\n/**\n* @name mskbinary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskbinary2d}\n*/\nsetReadOnly( ns, 'mskbinary2d', require( './../../base/mskbinary2d' ) );\n\n/**\n* @name mskunary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskunary2d}\n*/\nsetReadOnly( ns, 'mskunary2d', require( './../../base/mskunary2d' ) );\n\n/**\n* @name mskunary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/mskunary3d}\n*/\nsetReadOnly( ns, 'mskunary3d', require( './../../base/mskunary3d' ) );\n\n/**\n* @name nCartesianProduct\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/n-cartesian-product}\n*/\nsetReadOnly( ns, 'nCartesianProduct', require( './../../base/n-cartesian-product' ) );\n\n/**\n* @name oneTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/one-to}\n*/\nsetReadOnly( ns, 'oneTo', require( './../../base/one-to' ) );\n\n/**\n* @name ones\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones}\n*/\nsetReadOnly( ns, 'ones', require( './../../base/ones' ) );\n\n/**\n* @name ones2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones2d}\n*/\nsetReadOnly( ns, 'ones2d', require( './../../base/ones2d' ) );\n\n/**\n* @name ones3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones3d}\n*/\nsetReadOnly( ns, 'ones3d', require( './../../base/ones3d' ) );\n\n/**\n* @name ones4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones4d}\n*/\nsetReadOnly( ns, 'ones4d', require( './../../base/ones4d' ) );\n\n/**\n* @name ones5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ones5d}\n*/\nsetReadOnly( ns, 'ones5d', require( './../../base/ones5d' ) );\n\n/**\n* @name onesnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/onesnd}\n*/\nsetReadOnly( ns, 'onesnd', require( './../../base/onesnd' ) );\n\n/**\n* @name quaternary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/quaternary2d}\n*/\nsetReadOnly( ns, 'quaternary2d', require( './../../base/quaternary2d' ) );\n\n/**\n* @name setter\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/setter}\n*/\nsetReadOnly( ns, 'setter', require( './../../base/setter' ) );\n\n/**\n* @name take\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/take}\n*/\nsetReadOnly( ns, 'take', require( './../../base/take' ) );\n\n/**\n* @name ternary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary2d}\n*/\nsetReadOnly( ns, 'ternary2d', require( './../../base/ternary2d' ) );\n\n/**\n* @name ternary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary3d}\n*/\nsetReadOnly( ns, 'ternary3d', require( './../../base/ternary3d' ) );\n\n/**\n* @name ternary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary4d}\n*/\nsetReadOnly( ns, 'ternary4d', require( './../../base/ternary4d' ) );\n\n/**\n* @name ternary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/ternary5d}\n*/\nsetReadOnly( ns, 'ternary5d', require( './../../base/ternary5d' ) );\n\n/**\n* @name toAccessorArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/to-accessor-array}\n*/\nsetReadOnly( ns, 'toAccessorArray', require( './../../base/to-accessor-array' ) );\n\n/**\n* @name unary2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary2d}\n*/\nsetReadOnly( ns, 'unary2d', require( './../../base/unary2d' ) );\n\n/**\n* @name unary2dBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary2d-by}\n*/\nsetReadOnly( ns, 'unary2dBy', require( './../../base/unary2d-by' ) );\n\n/**\n* @name unary3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary3d}\n*/\nsetReadOnly( ns, 'unary3d', require( './../../base/unary3d' ) );\n\n/**\n* @name unary4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary4d}\n*/\nsetReadOnly( ns, 'unary4d', require( './../../base/unary4d' ) );\n\n/**\n* @name unary5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unary5d}\n*/\nsetReadOnly( ns, 'unary5d', require( './../../base/unary5d' ) );\n\n/**\n* @name unarynd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unarynd}\n*/\nsetReadOnly( ns, 'unarynd', require( './../../base/unarynd' ) );\n\n/**\n* @name unitspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/unitspace}\n*/\nsetReadOnly( ns, 'unitspace', require( './../../base/unitspace' ) );\n\n/**\n* @name zeroTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zero-to}\n*/\nsetReadOnly( ns, 'zeroTo', require( './../../base/zero-to' ) );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros}\n*/\nsetReadOnly( ns, 'zeros', require( './../../base/zeros' ) );\n\n/**\n* @name zeros2d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros2d}\n*/\nsetReadOnly( ns, 'zeros2d', require( './../../base/zeros2d' ) );\n\n/**\n* @name zeros3d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros3d}\n*/\nsetReadOnly( ns, 'zeros3d', require( './../../base/zeros3d' ) );\n\n/**\n* @name zeros4d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros4d}\n*/\nsetReadOnly( ns, 'zeros4d', require( './../../base/zeros4d' ) );\n\n/**\n* @name zeros5d\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zeros5d}\n*/\nsetReadOnly( ns, 'zeros5d', require( './../../base/zeros5d' ) );\n\n/**\n* @name zerosnd\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/base/zerosnd}\n*/\nsetReadOnly( ns, 'zerosnd', require( './../../base/zerosnd' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof ArrayBuffer === 'function' ) ? ArrayBuffer : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns an object used to represent a generic, fixed-length raw binary data buffer.\n*\n* @module @stdlib/array/buffer\n*\n* @example\n* var ctor = require( '@stdlib/array/buffer' );\n*\n* var buf = new ctor( 10 );\n* // returns \n*/\n\n// MODULES //\n\nvar hasArrayBufferSupport = require( '@stdlib/assert/has-arraybuffer-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'generic': Array, // TODO: replace with `stdlib` pkg\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Array constructors.\n*\n* @module @stdlib/array/ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar getType = require( './../../dtype' );\nvar ctors = require( './../../ctors' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar format = require( '@stdlib/string/format' );\nvar gcopy = require( '@stdlib/blas/base/gcopy' );\nvar copy = require( './../../base/copy' );\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether a data type is a single-precision complex floating-point number data type.\n*\n* @private\n* @param {string} dtype - data type\n* @returns {boolean} boolean indicating whether a provided data type is a single-precision complex floating-point number data type\n*\n* @example\n* var bool = isComplex64( 'float64' );\n* // returns false\n*\n* @example\n* var bool = isComplex64( 'complex64' );\n* // returns true\n*/\nfunction isComplex64( dtype ) {\n\treturn ( dtype === 'complex64' );\n}\n\n/**\n* Tests whether a data type is a double-precision complex floating-point number data type.\n*\n* @private\n* @param {string} dtype - data type\n* @returns {boolean} boolean indicating whether a provided data type is a double-precision complex floating-point number data type\n*\n* @example\n* var bool = isComplex128( 'float64' );\n* // returns false\n*\n* @example\n* var bool = isComplex128( 'complex128' );\n* // returns true\n*/\nfunction isComplex128( dtype ) {\n\treturn ( dtype === 'complex128' );\n}\n\n\n// MAIN //\n\n/**\n* Converts an array to an array of a different data type.\n*\n* @param {Collection} x - array to convert\n* @param {string} dtype - output data type\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a recognized array data type\n* @returns {(Array|TypedArray|ComplexArray)} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0, 4.0 ];\n*\n* var out = convert( arr, 'float64' );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction convert( x, dtype ) {\n\tvar isc64;\n\tvar ctor;\n\tvar xbuf;\n\tvar obuf;\n\tvar out;\n\tvar len;\n\tvar t;\n\n\tif ( !isCollection( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', x ) );\n\t}\n\t// If the output data type is \"generic\", our task is relatively straightforward...\n\tif ( dtype === 'generic' ) {\n\t\treturn copy( x );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized array data type. Value: `%s`.', dtype ) );\n\t}\n\t// Cache the input array length:\n\tlen = x.length;\n\n\t// Get the input array data type:\n\tt = getType( x );\n\tisc64 = isComplex64( t );\n\n\t// Create the output array:\n\tout = new ctor( len );\n\n\t// As the output data type is not \"generic\", we need to explicitly handle complex number input arrays...\n\tif ( isc64 || isComplex128( t ) ) {\n\t\tif ( isc64 ) {\n\t\t\txbuf = reinterpret64( x, 0 );\n\t\t} else {\n\t\t\txbuf = reinterpret128( x, 0 );\n\t\t}\n\t\t// Check whether the output data type is a complex number data type...\n\t\tif ( isComplex64( dtype ) ) { // cmplx => cmplx\n\t\t\tobuf = reinterpret64( out, 0 );\n\t\t\tgcopy( len*2, xbuf, 1, obuf, 1 );\n\t\t\treturn out;\n\t\t}\n\t\tif ( isComplex128( dtype ) ) { // cmplx => cmplx\n\t\t\tobuf = reinterpret128( out, 0 );\n\t\t\tgcopy( len*2, xbuf, 1, obuf, 1 );\n\t\t\treturn out;\n\t\t}\n\t\t// We assume that the output data type is a real number data type, given that we're looking to convert a provided complex number array; in which case, we'll only extract the real components from the complex number input array...\n\t\tgcopy( len, xbuf, 2, out, 1 ); // cmplx => real\n\t\treturn out;\n\t}\n\t// Check whether we need to explicitly handle complex number output arrays...\n\tisc64 = isComplex64( dtype );\n\tif ( isc64 || isComplex128( dtype ) ) {\n\t\tif ( isc64 ) {\n\t\t\tobuf = reinterpret64( out, 0 );\n\t\t} else {\n\t\t\tobuf = reinterpret128( out, 0 );\n\t\t}\n\t\t// We assume that the input data type is a real number data type, given that we're looking to convert to a complex number array; in which case, we'll only set the real components... (WARNING: we're assuming that the output array has been zero-initialized! The imaginary components should be zero!)\n\t\tgcopy( len, x, 1, obuf, 2 ); // real => cmplx\n\t\treturn out;\n\t}\n\t// At this point, we're no longer handling complex number arrays, so we'll just assume that we can perform a straightforward copy...\n\tgcopy( len, x, 1, out, 1 ); // note: `gcopy` is assumed to support arrays using accessors\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = convert;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array to an array of a different data type.\n*\n* @module @stdlib/array/convert\n*\n* @example\n* var convert = require( '@stdlib/array/convert' );\n*\n* var arr = [ 1.0, 2.0, 3.0, 4.0 ];\n*\n* var out = convert( arr, 'float64' );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar getType = require( './../../dtype' );\nvar convert = require( './../../convert' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts an array to the same data type as a second input array.\n*\n* @param {Collection} x - array to convert\n* @param {(Array|TypedArray|ComplexArray)} y - array having the desired output data type\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must have a recognized data type\n* @returns {(Array|TypedArray|ComplexArray)} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0 ];\n* var y = new Float64Array( 0 );\n*\n* var out = convertSame( x, y );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction convertSame( x, y ) {\n\tvar dtype = getType( y );\n\tif ( dtype === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must have a recognized/supported data type. Type: `%s`. Value: `%s`.', dtype, y ) );\n\t}\n\treturn convert( x, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = convertSame;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert an array to the same data type as a second input array.\n*\n* @module @stdlib/array/convert-same\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var convertSame = require( '@stdlib/array/convert-same' );\n*\n* var x = [ 1.0, 2.0, 3.0, 4.0 ];\n* var y = new Float64Array( 0 );\n*\n* var out = convertSame( x, y );\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof DataView === 'function' ) ? DataView : void 0; // eslint-disable-line stdlib/require-globals\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// TODO: write polyfill\n\n// MAIN //\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @throws {Error} not implemented\n*/\nfunction polyfill() {\n\tthrow new Error( 'not implemented' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor which returns a data view representing a provided array buffer.\n*\n* @module @stdlib/array/dataview\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var DataView = require( '@stdlib/array/dataview' );\n*\n* var buf = new ArrayBuffer( 10 );\n* // returns \n*\n* var dv = new DataView( buf );\n* // returns \n*/\n\n// MODULES //\n\nvar hasDataViewSupport = require( '@stdlib/assert/has-dataview-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasDataViewSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isInteger = require( '@stdlib/assert/is-integer' );\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isObject = require( '@stdlib/assert/is-object' );\nvar format = require( '@stdlib/string/format' );\nvar floor = require( '@stdlib/math/base/special/floor' );\nvar round = require( '@stdlib/math/base/special/round' );\nvar ceil = require( '@stdlib/math/base/special/ceil' );\n\n\n// VARIABLES //\n\nvar timestamp = /^\\d{10}$|^\\d{13}$/;\nvar rounders = [ 'floor', 'ceil', 'round' ];\n\n\n// FUNCTIONS //\n\n/**\n* Validates a date parameter.\n*\n* @private\n* @param {*} value - value to be validated\n* @param {string} name - name to be used in error messages\n* @throws {TypeError} value must either be a date string, Date object, Unix timestamp, or JavaScript timestamp\n* @throws {Error} numeric date must be either a Unix or JavaScript timestamp\n* @returns {Date} validated date\n*/\nfunction validDate( value, name ) {\n\tvar type;\n\n\ttype = typeof value;\n\tif ( type === 'string' ) {\n\t\tvalue = Date.parse( value );\n\t\tif ( value !== value ) {\n\t\t\tthrow new Error( format( 'invalid argument. Unable to parse %s date.', name.toLowerCase() ) );\n\t\t}\n\t\tvalue = new Date( value );\n\t}\n\tif ( type === 'number' ) {\n\t\tif ( !timestamp.test( value ) ) {\n\t\t\tthrow new Error( format( 'invalid argument. Numeric %s date must be either a Unix or JavaScript timestamp.', name.toLowerCase() ) );\n\t\t}\n\t\tif ( value.toString().length === 10 ) {\n\t\t\tvalue *= 1000; // sec to ms\n\t\t}\n\t\tvalue = new Date( value );\n\t}\n\tif ( !(value instanceof Date) ) {\n\t\tthrow new TypeError( format( 'invalid argument. %s date must either be a date string, Date object, Unix timestamp, or JavaScript timestamp.', name ) );\n\t}\n\treturn value;\n}\n\n\n// MAIN //\n\n/**\n* Generates an array of linearly spaced dates.\n*\n* @param {(Date|number|string)} start - start time as either a `Date` object, Unix timestamp, JavaScript timestamp, or date string\n* @param {(Date|number|string)} stop - stop time as either a `Date` object, Unix timestamp, JavaScript timestamp, or date string\n* @param {number} [length] - output array length (default: 100)\n* @param {Object} [options] - function options\n* @param {string} [options.round] - specifies how sub-millisecond times should be rounded: [ 'floor', 'ceil', 'round' ] (default: 'floor' )\n* @throws {TypeError} length argument must a positive integer\n* @throws {Error} must provide valid options\n* @returns {Array} array of dates\n*\n* @example\n* var stop = '2014-12-02T07:00:54.973Z';\n* var start = new Date( stop ) - 60000;\n*\n* var arr = datespace( start, stop, 6 );\n* // returns [...]\n*\n* @example\n* // Equivalent of Math.ceil():\n* var arr = datespace( 1417503655000, 1417503655001, 3, { 'round': 'ceil' } );\n* // returns [...]\n*\n* // Equivalent of Math.round():\n* arr = datespace( 1417503655000, 1417503655001, 3, { 'round': 'round' } );\n* // returns [...]\n*/\nfunction datespace( start, stop, length, options ) {\n\tvar opts;\n\tvar len;\n\tvar flg;\n\tvar arr;\n\tvar end;\n\tvar fcn;\n\tvar tmp;\n\tvar d;\n\tvar i;\n\n\tlen = 100;\n\tflg = true;\n\topts = {\n\t\t'round': 'floor'\n\t};\n\tstart = validDate( start, 'Start' );\n\tstop = validDate( stop, 'Stop' );\n\tif ( arguments.length > 2 ) {\n\t\tif ( arguments.length === 3 ) {\n\t\t\tif ( isObject( length ) ) {\n\t\t\t\topts = length;\n\t\t\t} else {\n\t\t\t\tlen = length;\n\n\t\t\t\t// Turn off checking the options object...\n\t\t\t\tflg = false;\n\t\t\t}\n\t\t} else {\n\t\t\topts = options;\n\t\t\tlen = length;\n\t\t}\n\t\tif ( len === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( !isInteger( len ) || len < 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a positive integer. Value: `%s`.', len ) );\n\t\t}\n\t\tif ( flg ) {\n\t\t\tif ( !isObject( opts ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', opts ) );\n\t\t\t}\n\t\t\tif ( hasOwnProp( opts, 'round' ) ) {\n\t\t\t\tif ( !isString( opts.round ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'round', opts.round ) );\n\t\t\t\t}\n\t\t\t\tif ( rounders.indexOf( opts.round ) === -1 ) {\n\t\t\t\t\tthrow new Error( format( 'invalid option. `%s` option must be one of the following: \"%s\". Option: `%s`.', 'round', rounders.join( '\", \"' ), opts.round ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tswitch ( opts.round ) {\n\tcase 'round':\n\t\tfcn = round;\n\t\tbreak;\n\tcase 'ceil':\n\t\tfcn = ceil;\n\t\tbreak;\n\tcase 'floor':\n\tdefault:\n\t\tfcn = floor;\n\t\tbreak;\n\t}\n\n\t// Calculate the increment...\n\tend = len - 1;\n\td = ( stop.getTime() - start.getTime() ) / end;\n\n\t// Build the output array...\n\tarr = new Array( len );\n\ttmp = start;\n\tarr[ 0 ] = tmp;\n\ttmp = tmp.getTime();\n\tfor ( i = 1; i < end; i++ ) {\n\t\ttmp += d;\n\t\tarr[ i ] = new Date( fcn( tmp ) );\n\t}\n\tarr[ end ] = stop;\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = datespace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate an array of linearly spaced dates.\n*\n* @module @stdlib/array/datespace\n*\n* @example\n* var datespace = require( '@stdlib/array/datespace' );\n*\n* var stop = '2014-12-02T07:00:54.973Z';\n* var start = new Date( stop ) - 60000;\n*\n* var arr = datespace( start, stop, 6 );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"generic\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\",\n \"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types.\n*\n* @returns {StringArray} list of array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'generic', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types.\n*\n* @module @stdlib/array/dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'generic', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar isUint8Array = require( '@stdlib/assert/is-uint8array' );\n\n\n// MAIN //\n\n/**\n* Checks whether an environment supports Node.js buffer instances which inherit from `Uint8Array`.\n*\n* @private\n* @returns {boolean} boolean indicating whether an environment supports Node.js buffer instances inheriting from `Uint8Array`\n*\n* @example\n* var bool = check();\n* // returns \n*/\nfunction check() {\n\tvar buf = allocUnsafe( 1 );\n\treturn isUint8Array( buf );\n}\n\n\n// EXPORTS //\n\nmodule.exports = check;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray,\n\t'complex64': Complex64Array,\n\t'complex128': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructors.\n*\n* @module @stdlib/array/typed-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar ctors = require( './../../typed-ctors' );\nvar zeros = require( './../../base/zeros' );\nvar bytesPerElement = require( '@stdlib/ndarray/base/bytes-per-element' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tvar nbytes;\n\tvar offset;\n\tvar dtype;\n\tvar ctor;\n\tvar buf;\n\tvar out;\n\tvar nb;\n\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn zeros( length );\n\t}\n\tnbytes = bytesPerElement( dtype );\n\tif ( nbytes === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type. Value: `%s`.', dtype ) );\n\t}\n\t// Resolve typed array constructor:\n\tctor = ctors( dtype );\n\n\t// Compute the number of bytes to allocate:\n\tnb = nbytes * length;\n\tif ( dtype === 'complex128' ) {\n\t\tnb += 8; // Note: need to allocate additional bytes to ensure alignment\n\t}\n\t// Allocate binary buffer:\n\tbuf = allocUnsafe( nb );\n\n\t// Resolve the byte offset:\n\toffset = buf.byteOffset;\n\tif ( dtype === 'complex128' ) {\n\t\tif ( !isNonNegativeInteger( offset/nbytes ) ) {\n\t\t\toffset += 8; // Note: ensure alignment\n\t\t}\n\t}\n\t// Reinterpret the binary buffer:\n\tout = new ctor( buf.buffer, offset, length );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar ctors = require( './../../ctors' );\nvar gzeros = require( './../../base/zeros' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zeros( length ) {\n\tvar dtype;\n\tvar ctor;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn gzeros( length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ctor( length ); // WARNING: we assume that, apart from 'generic', the constructors for supported array data types are zero-filled by default\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled array having a specified length.\n*\n* @module @stdlib/array/zeros\n*\n* @example\n* var zeros = require( '@stdlib/array/zeros' );\n*\n* var arr = zeros( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var zeros = require( '@stdlib/array/zeros' );\n*\n* var arr = zeros( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar zeros = require( './../../zeros' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having a specified length.\n*\n* @private\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\nfunction empty( length ) {\n\tif ( arguments.length > 1 ) {\n\t\treturn zeros( length, arguments[ 1 ] );\n\t}\n\treturn zeros( length );\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an uninitialized array having a specified length.\n*\n* @module @stdlib/array/empty\n*\n* @example\n* var empty = require( '@stdlib/array/empty' );\n*\n* var arr = empty( 2 );\n* // returns \n*\n* @example\n* var empty = require( '@stdlib/array/empty' );\n*\n* var arr = empty( 2, 'float32' );\n* // returns \n*/\n\n// MODULES //\n\nvar isBufferUint8Array = require( './is_buffer_uint8array.js' );\nvar main = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar empty;\nif ( isBufferUint8Array() ) {\n\tempty = main;\n} else {\n\tempty = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = empty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar empty = require( './../../empty' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\nfunction emptyLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn empty( x.length, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = emptyLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an uninitialized array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/empty-like\n*\n* @example\n* var emptyLike = require( '@stdlib/array/empty-like' );\n*\n* var arr = emptyLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var emptyLike = require( '@stdlib/array/empty-like' );\n*\n* var arr = emptyLike( [ 0.0, 0.0 ], 'float32' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar ctors = require( './../../ctors' );\nvar gfill = require( '@stdlib/blas/ext/base/gfill' );\nvar filled = require( './../../base/filled' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar iterLength = require( '@stdlib/iter/length' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Creates a filled \"generic\" array from an iterator.\n*\n* @private\n* @param {Iterator} it - iterator\n* @param {*} value - fill value\n* @returns {Array} filled array\n*/\nfunction filledIterator( it, value ) {\n\tvar arr;\n\tvar v;\n\n\tarr = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tarr.push( value );\n\t}\n\treturn arr;\n}\n\n/**\n* Fills an array exposing accessors for getting and setting array elements.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {*} value - fill value\n* @returns {Collection} input array\n*/\nfunction filledAccessors( arr, value ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tarr.set( value, i );\n\t}\n\treturn arr;\n}\n\n\n// MAIN //\n\n/**\n* Creates a filled array.\n*\n* @param {*} [value] - fill value\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer|Iterable)} [arg] - a length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @throws {TypeError} must provide a length, typed array, array-like object, buffer, or iterable\n* @throws {Error} creating a generic array from an `ArrayBuffer` is not supported\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = filledarray();\n* // returns \n*\n* @example\n* var arr = filledarray( 1.0, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, 2, 'generic' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1.0, [ 0.5, 0.5 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = filledarray( 1, [ 5, -3 ], 'int32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var arr1 = filledarray( 2, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1.0, arr1 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr1 = filledarray( 2, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1, arr1, 'uint32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 'float32' );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8 );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1.0, buf, 8, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1, buf, 8, 2, 'int32' );\n* // returns [ 1, 1 ]\n*/\nfunction filledarray() {\n\tvar value;\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arr;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tnargs -= 1;\n\tif ( nargs >= 0 && isString( arguments[ nargs ] ) ) {\n\t\tdtype = arguments[ nargs ];\n\t\tnargs -= 1;\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( dtype === 'generic' ) {\n\t\tif ( nargs <= 0 ) {\n\t\t\treturn [];\n\t\t}\n\t\tvalue = arguments[ 0 ];\n\t\targ = arguments[ 1 ];\n\t\tif ( nargs === 1 ) {\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tlen = arg;\n\t\t\t} else if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t}\n\t\t\tif ( len !== void 0 ) {\n\t\t\t\treturn filled( value, len );\n\t\t\t}\n\t\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t\t}\n\t\t\tif ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\treturn filledIterator( arg, value );\n\t\t\t}\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) { // length || array-like || ArrayBuffer || iterable\n\t\targ = arguments[ 1 ];\n\t\tif ( isCollection( arg ) ) {\n\t\t\tarr = new ctor( arg.length );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isNonNegativeInteger( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tarr = new ctor( iterLength( arg ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else if ( nargs === 2 ) {\n\t\tarr = new ctor( arguments[1], arguments[2] ); // (ArrayBuffer, byteOffset)\n\t} else {\n\t\tarr = new ctor( arguments[1], arguments[2], arguments[3] ); // (ArrayBuffer, byteOffset, length)\n\t}\n\tif ( arr.length > 0 ) {\n\t\tif ( /^complex/.test( dtype ) ) {\n\t\t\tfilledAccessors( arr, arguments[ 0 ] );\n\t\t} else {\n\t\t\tgfill( arr.length, arguments[ 0 ], arr, 1 );\n\t\t}\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2020 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array.\n*\n* @module @stdlib/array/filled\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray();\n* // returns \n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, 2, 'generic' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1.0, [ 0.5, 0.5 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr = filledarray( 1, [ 5, -3 ], 'int32' );\n* // returns [ 1, 1 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr1 = filledarray( 10, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 1.0, arr1 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var arr1 = filledarray( 1, [ 5, 3 ], 'int32' );\n* var arr2 = filledarray( 2, arr1, 'uint32' );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 'float32' );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8 );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarray( 1.0, buf, 8, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1.0, buf, 8, 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarray = require( '@stdlib/array/filled' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarray( 1, buf, 8, 2, 'int32' );\n* // returns [ 1, 1 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isObject = require( '@stdlib/assert/is-object' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar ctors = require( './../../ctors' );\nvar gfillBy = require( '@stdlib/blas/ext/base/gfill-by' );\nvar filledArray = require( './../../base/filled-by' );\nvar hasIteratorSymbolSupport = require( '@stdlib/assert/has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol/iterator' );\nvar iterLength = require( '@stdlib/iter/length' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\nvar DEFAULT_DTYPE = 'float64';\n\n\n// FUNCTIONS //\n\n/**\n* Creates a filled \"generic\" array from an iterator.\n*\n* @private\n* @param {Iterable} it - iterator\n* @param {Callback} clbk - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {Array} filled array\n*/\nfunction filledArrayIterator( it, clbk, thisArg ) {\n\tvar arr;\n\tvar i;\n\tvar v;\n\n\tarr = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tarr.push( clbk.call( thisArg, i ) );\n\t}\n\treturn arr;\n}\n\n/**\n* Fills an array exposing accessors for getting and setting array elements.\n*\n* @private\n* @param {Collection} arr - input array\n* @param {Callback} clbk - callback function\n* @param {*} thisArg - callback function execution context\n* @returns {Collection} input array\n*/\nfunction filledAccessors( arr, clbk, thisArg ) {\n\tvar i;\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tarr.set( clbk.call( thisArg, i ), i );\n\t}\n\treturn arr;\n}\n\n\n// MAIN //\n\n/**\n* Creates a filled array according to a provided callback function.\n*\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer|Iterable)} [arg] - a length, typed array, array-like object, buffer, or iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @param {Callback} [clbk] - callback to invoke\n* @param {*} [thisArg] - callback execution context\n* @throws {TypeError} must provide a recognized data type\n* @throws {TypeError} must provide a length, typed array, array-like object, buffer, or iterable\n* @throws {TypeError} callback argument must be a function.\n* @throws {Error} creating a generic array from an `ArrayBuffer` is not supported\n* @returns {(TypedArray|Array)} array or typed array\n*\n* @example\n* var arr = filledarrayBy();\n* // returns \n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'generic', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( [ 0.5, 0.5 ], clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk() {\n* return 1;\n* }\n*\n* var arr = filledarrayBy( [ 5, -3 ], 'int32', clbk );\n* // returns [ 1, 1 ]\n*\n* @example\n* function clbk1() {\n* return 10;\n* }\n*\n* function clbk2() {\n* return 1.0;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, clbk2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* function clbk1() {\n* return 1.0;\n* }\n*\n* function clbk2() {\n* return 2;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, 'uint32', clbk2 );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 'float32', clbk );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, clbk );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, 'int32', clbk );\n* // returns [ 1, 1 ]\n*/\nfunction filledarrayBy() {\n\tvar thisArg;\n\tvar nargs;\n\tvar dtype;\n\tvar clbk;\n\tvar ctor;\n\tvar arr;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\n\t// If we weren't provided any arguments, return an empty array...\n\tif ( nargs === 0 ) {\n\t\tctor = ctors( DEFAULT_DTYPE );\n\t\treturn new ctor( 0 );\n\t}\n\t// Check if we were provided a dtype as the first argument...\n\tdtype = arguments[ 0 ];\n\tif ( isString( dtype ) ) {\n\t\t// Invoking this function with arguments `f( dtype, clbk[, thisArg] )` is not allowed (otherwise, we'd need to also allow `f( clbk[, thisArg] )`)...\n\t\tif ( nargs > 1 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t\t}\n\t\tctor = ctors( dtype );\n\t\tif ( ctor === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t\t}\n\t\t// Return an empty array having the specified dtype:\n\t\treturn new ctor( 0 );\n\t}\n\t// For all other supported invocations, we need at least two arguments...\n\tif ( nargs < 2 ) {\n\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t}\n\t// At this point, we need to do some argument juggling...\n\tnargs -= 1; // henceforth, the number of available arguments is `nargs+1`\n\n\t// Determine whether the last argument is a callback or \"this\" context...\n\tif ( isFunction( arguments[ nargs ] ) ) {\n\t\t// If the last argument is a function, we need to check the next-to-last argument, and, if the next-to-last argument is a function, assume that the next-to-last argument is the callback and the last argument is a \"this\" context...\n\t\tif ( isFunction( arguments[ nargs-1 ] ) ) {\n\t\t\tthisArg = arguments[ nargs ];\n\t\t\tnargs -= 1;\n\t\t\tclbk = arguments[ nargs ];\n\n\t\t\t// Check if we were provided only a callback and a \"this\" context..\n\t\t\tif ( nargs === 0 ) {\n\t\t\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t\t\t}\n\t\t} else {\n\t\t\t// \"this\" context is left undefined...\n\t\t\tclbk = arguments[ nargs ];\n\t\t}\n\t}\n\t// If we were provided 3 or more arguments and the last argument was not a function, assume that we were provided a callback and a \"this\" context...\n\telse if ( nargs >= 2 ) {\n\t\tthisArg = arguments[ nargs ];\n\t\tnargs -= 1;\n\t\tclbk = arguments[ nargs ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t}\n\t// If were were only provided 2 arguments and the last argument was not a function, we've been provided an insufficient number of arguments...\n\telse {\n\t\tthrow new TypeError( 'invalid arguments. Must provide a length, typed array, array-like object, or an iterable.' );\n\t}\n\t// Now that we've processed the callback arguments, let's continue working backward to see if we've been provided a `dtype` argument...\n\tnargs -= 1;\n\tif ( nargs >= 0 && isString( arguments[ nargs ] ) ) {\n\t\tdtype = arguments[ nargs ];\n\t\tnargs -= 1;\n\t} else {\n\t\tdtype = DEFAULT_DTYPE;\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\t// At this point, we've resolved the output array data type, and now we can actually create the output array...\n\tif ( dtype === 'generic' ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( nargs === 0 ) {\n\t\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\t\tlen = arg;\n\t\t\t} else if ( isCollection( arg ) ) {\n\t\t\t\tlen = arg.length;\n\t\t\t}\n\t\t\tif ( len !== void 0 ) {\n\t\t\t\treturn filledArray( len, clbk, thisArg );\n\t\t\t}\n\t\t\tif ( isArrayBuffer( arg ) ) {\n\t\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t\t}\n\t\t\tif ( isObject( arg ) ) {\n\t\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t\t}\n\t\t\t\treturn filledArrayIterator( arg, clbk, thisArg );\n\t\t\t}\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tthrow new Error( 'invalid arguments. Creating a generic array from an ArrayBuffer is not supported.' );\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t}\n\tif ( nargs === 0 ) { // length || array-like || ArrayBuffer || iterable\n\t\targ = arguments[ 0 ];\n\t\tif ( isCollection( arg ) ) {\n\t\t\tarr = new ctor( arg.length );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isNonNegativeInteger( arg ) ) {\n\t\t\tarr = new ctor( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\targ = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( arg.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tarr = new ctor( iterLength( arg ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else if ( nargs === 1 ) {\n\t\tarr = new ctor( arguments[0], arguments[1] ); // (ArrayBuffer, byteOffset)\n\t} else {\n\t\tarr = new ctor( arguments[0], arguments[1], arguments[2] ); // (ArrayBuffer, byteOffset, length)\n\t}\n\tif ( arr.length > 0 ) {\n\t\tif ( /^complex/.test( dtype ) ) {\n\t\t\tfilledAccessors( arr, clbk, thisArg );\n\t\t} else {\n\t\t\tgfillBy( arr.length, arr, 1, callback );\n\t\t}\n\t}\n\treturn arr;\n\n\t/**\n\t* Callback which wraps a provided callback and is invoked for each array element.\n\t*\n\t* @private\n\t* @param {*} value - element value\n\t* @param {NonNegativeInteger} aidx - array index\n\t* @param {NonNegativeInteger} sidx - strided index\n\t* @param {Collection} array - input array/collection\n\t* @returns {*} callback return value\n\t*/\n\tfunction callback( value, aidx ) {\n\t\treturn clbk.call( thisArg, aidx );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = filledarrayBy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array according to a provided callback function.\n*\n* @module @stdlib/array/filled-by\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* var arr = filledarrayBy();\n* // returns \n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( 2, 'generic', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var arr = filledarrayBy( [ 0.5, 0.5 ], clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var arr = filledarrayBy( [ 5, -3 ], 'int32', clbk );\n* // returns [ 1, 1 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk1() {\n* return 10;\n* }\n*\n* function clbk2() {\n* return 1.0;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, clbk2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk1() {\n* return 1.0;\n* }\n*\n* function clbk2() {\n* return 2;\n* }\n*\n* var arr1 = filledarrayBy( [ 5, 3 ], 'int32', clbk1 );\n* var arr2 = filledarrayBy( arr1, 'uint32', clbk2 );\n* // returns [ 2, 2 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 'float32', clbk );\n* // returns [ 1.0, 1.0, 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, clbk );\n* // returns [ 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = filledarrayBy( buf, 8, 'float32', clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1.0;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, clbk );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var filledarrayBy = require( '@stdlib/array/filled-by' );\n*\n* function clbk() {\n* return 1;\n* }\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = filledarrayBy( buf, 8, 2, 'int32', clbk );\n* // returns [ 1, 1 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isIteratorLike = require( '@stdlib/assert/is-iterator-like' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar accessorSetter = require( './../../base/accessor-setter' );\nvar setter = require( './../../base/setter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates (or fills) an array from an iterator.\n*\n* @param {Iterator} iterator - source iterator\n* @param {Collection} [out] - output array\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} iterator argument must be an iterator\n* @throws {TypeError} callback argument must be a function\n* @returns {Collection} output array\n*\n* @example\n* var randu = require( '@stdlib/random/iter/randu' );\n*\n* var iter = randu({\n* 'iter': 10\n* });\n*\n* var arr = iterator2array( iter );\n* // returns \n*/\nfunction iterator2array() {\n\tvar iterator;\n\tvar thisArg;\n\tvar fcn;\n\tvar out;\n\tvar len;\n\tvar set;\n\tvar dt;\n\tvar i;\n\tvar v;\n\n\titerator = arguments[ 0 ];\n\tif ( arguments.length > 1 ) {\n\t\tif ( isCollection( arguments[ 1 ] ) ) {\n\t\t\tout = arguments[ 1 ];\n\t\t\tif ( arguments.length > 2 ) {\n\t\t\t\tfcn = arguments[ 2 ];\n\t\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t\t}\n\t\t\t\tthisArg = arguments[ 3 ];\n\t\t\t}\n\t\t} else {\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t}\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Iterator argument must be an iterator protocol-compliant object. Value: `%s`.', iterator ) );\n\t}\n\ti = -1;\n\tif ( out === void 0 ) {\n\t\tout = [];\n\t\tif ( fcn ) {\n\t\t\twhile ( true ) {\n\t\t\t\ti += 1;\n\t\t\t\tv = iterator.next();\n\t\t\t\tif ( v.done ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tout.push( fcn.call( thisArg, v.value, i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\twhile ( true ) {\n\t\t\tv = iterator.next();\n\t\t\tif ( v.done ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tout.push( v.value );\n\t\t}\n\t\treturn out;\n\t}\n\tlen = out.length;\n\tdt = dtype( out );\n\tif ( isAccessorArray( out ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tif ( fcn ) {\n\t\twhile ( i < len-1 ) {\n\t\t\ti += 1;\n\t\t\tv = iterator.next();\n\t\t\tif ( v.done ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tset( out, i, fcn.call( thisArg, v.value, i ) );\n\t\t}\n\t\treturn out;\n\t}\n\twhile ( i < len-1 ) {\n\t\ti += 1;\n\t\tv = iterator.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tset( out, i, v.value );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iterator2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create (or fill) an array from an iterator.\n*\n* @module @stdlib/array/from-iterator\n*\n* @example\n* var randu = require( '@stdlib/random/iter/randu' );\n* var iterator2array = require( '@stdlib/array/from-iterator' );\n*\n* var iter = randu({\n* 'iter': 10\n* });\n*\n* var arr = iterator2array( iter );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar ctors = require( './../../ctors' );\nvar afill = require( './../../base/filled' );\nvar gfill = require( '@stdlib/blas/ext/base/gfill' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a filled array having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {*} value - fill value\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = full( 2, 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = full( 2, 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction full( length, value ) {\n\tvar dtype;\n\tvar ctor;\n\tvar out;\n\tif ( !isNonNegativeInteger( length ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', length ) );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tdtype = arguments[ 2 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'generic' ) {\n\t\treturn afill( value, length );\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tout = new ctor( length );\n\n\t// TODO: revisit the following, as using `gfill` is not the most performant, especially for large arrays. We have two options: (1) use a native add-on which delegates to an appropriate C function which performs the loop or (2) use @stdlib/blas/ext/base/(d|s|c|z)fill functions which use native add-ons. The latter option is not great, as we only get perf boosts for large arrays for a select number of dtypes. The former option is more work, as we may need to write a bespoke add-on for handling the argument signature and the various types that `value` can assume (e.g., number, complex, etc). If we had a generic strided `copy` package with an add-on, we could wrap the value as a single element strided array with a stride of `0` and copy from `x` to `y`, and thus would not need to write a bespoke add-on. Note, however, that calling into a native add-on is not free. For shorter arrays, we'll likely observe a perf hit in Node.js. For now, we focus on just getting something working...\n\tgfill( length, value, out, 1 );\n\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = full;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array having a specified length.\n*\n* @module @stdlib/array/full\n*\n* @example\n* var full = require( '@stdlib/array/full' );\n*\n* var arr = full( 2, 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var full = require( '@stdlib/array/full' );\n*\n* var arr = full( 2, 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar format = require( '@stdlib/string/format' );\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\n\n\n// MAIN //\n\n/**\n* Creates a filled array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {number} value - fill value\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} third argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction fullLike( x, value ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 2 ) {\n\t\tdt = arguments[ 2 ];\n\t}\n\tif ( typeof value === 'number' ) {\n\t\tif ( dt === 'complex128' ) {\n\t\t\tv = new Complex128( value, 0.0 );\n\t\t} else if ( dt === 'complex64' ) {\n\t\t\tv = new Complex64( value, 0.0 );\n\t\t} else {\n\t\t\tv = value;\n\t\t}\n\t} else {\n\t\tv = value;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fullLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a filled array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/full-like\n*\n* @example\n* var fullLike = require( '@stdlib/array/full-like' );\n*\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var fullLike = require( '@stdlib/array/full-like' );\n*\n* var arr = fullLike( [ 0.0, 0.0 ], 1.0, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ceil = require( '@stdlib/math/base/special/ceil' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar format = require( '@stdlib/string/format' );\nvar MAX_LENGTH = require( '@stdlib/constants/uint32/max' );\nvar gen = require( './../../base/incrspace' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced numeric array using a provided increment.\n*\n* @param {number} x1 - first array value\n* @param {number} x2 - array element bound\n* @param {number} [increment=1] - increment\n* @throws {TypeError} first argument must be numeric\n* @throws {TypeError} second argument must be numeric\n* @throws {TypeError} third argument must be numeric\n* @throws {RangeError} length of created array must be less than `4294967295` (`2**32 - 1`)\n* @returns {Array} linearly spaced numeric array\n*\n* @example\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\nfunction incrspace( x1, x2, increment ) {\n\tvar len;\n\tvar inc;\n\tif ( !isNumber( x1 ) || isnan( x1 ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Start must be numeric. Value: `%s`.', x1 ) );\n\t}\n\tif ( !isNumber( x2 ) || isnan( x2 ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Stop must be numeric. Value: `%s`.', x2 ) );\n\t}\n\tif ( arguments.length < 3 ) {\n\t\tinc = 1;\n\t} else {\n\t\tinc = increment;\n\t\tif ( !isNumber( inc ) || isnan( inc ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Increment must be numeric. Value: `%s`.', inc ) );\n\t\t}\n\t}\n\tlen = ceil( ( x2-x1 ) / inc );\n\tif ( len > MAX_LENGTH ) {\n\t\tthrow new RangeError( 'invalid arguments. Generated array exceeds maximum array length.' );\n\t}\n\treturn gen( x1, x2, inc );\n}\n\n\n// EXPORTS //\n\nmodule.exports = incrspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced numeric array using a provided increment.\n*\n* @module @stdlib/array/incrspace\n*\n* @example\n* var incrspace = require( '@stdlib/array/incrspace' );\n*\n* var arr = incrspace( 0, 11, 2 );\n* // returns [ 0, 2, 4, 6, 8, 10 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Complex128Array = require( './../../complex128' );\nvar Complex64Array = require( './../../complex64' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'complex128': Complex128Array,\n\t'complex64': Complex64Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a floating-point typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Floating-point typed array constructors.\n*\n* @module @stdlib/array/typed-float-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-float-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2021 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced array over a specified interval.\n*\n* @private\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Array} linearly spaced array\n*\n* @example\n* var arr = linspace( 0, 100, 6, true );\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*\n* @example\n* var arr = linspace( 0, 100, 5, false );\n* // returns [ 0, 20, 40, 60, 80 ]\n*/\nfunction linspace( start, stop, len, endpoint ) {\n\tvar arr;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\treturn [ stop ];\n\t\t}\n\t\treturn [ start ];\n\t}\n\tarr = [ start ];\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tarr.push( start + (d*i) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tarr.push( stop );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number array over a specified interval.\n*\n* @private\n* @param {string} dt1 - start value data type\n* @param {(number|ComplexLike)} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Array} linearly spaced array\n*/\nfunction linspace( dt1, start, dt2, stop, len, endpoint ) {\n\tvar cmplx;\n\tvar isf32;\n\tvar arr;\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar re;\n\tvar im;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn [];\n\t}\n\tisf32 = 0;\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Determine which complex number constructor to use according to type promotion rules:\n\tif ( isf32 === 2 ) {\n\t\tcmplx = Complex64;\n\t} else {\n\t\tcmplx = Complex128;\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\treturn [ new cmplx( re2, im2 ) ];\n\t\t}\n\t\treturn [ new cmplx( re1, im1 ) ];\n\t}\n\tarr = [ new cmplx( re1, im1 ) ];\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tre = re1 + (dr*i);\n\t\tim = im1 + (di*i);\n\t\tarr.push( new cmplx( re, im ) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tarr.push( new cmplx( re2, im2 ) );\n\t}\n\treturn arr;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns the results to a provided output array.\n*\n* @private\n* @param {TypedArray} out - output array\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {TypedArray} linearly spaced array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 6 );\n* var arr = linspace( out, 0, 100, out.length, true );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 5 );\n* var arr = linspace( out, 0, 100, out.length, false );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction linspace( out, start, stop, len, endpoint ) {\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tout[ 0 ] = stop;\n\t\t} else {\n\t\t\tout[ 0 ] = start;\n\t\t}\n\t\treturn out;\n\t}\n\tout[ 0 ] = start;\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tout[ i ] = start + (d*i);\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tout[ N ] = stop;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number sequence over a specified interval and assigns the results to a provided output array strided view.\n*\n* @private\n* @param {(Float32Array|Float64Array)} out - output array strided view\n* @param {string} dt1 - start value data type\n* @param {(number|ComplexLike)} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {(Float32Array|Float64Array)} complex number array view\n*/\nfunction linspace( out, dt1, start, dt2, stop, len, endpoint ) {\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tout[ 0 ] = re2;\n\t\t\tout[ 1 ] = im2;\n\t\t} else {\n\t\t\tout[ 0 ] = re1;\n\t\t\tout[ 1 ] = im1;\n\t\t}\n\t\treturn out;\n\t}\n\tout[ 0 ] = re1;\n\tout[ 1 ] = im1;\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate linearly spaced complex numbers:\n\tj = 2;\n\tfor ( i = 1; i < N; i++ ) {\n\t\tout[ j ] = re1 + (dr*i);\n\t\tout[ j+1 ] = im1 + (di*i);\n\t\tj += 2;\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tout[ j ] = re2;\n\t\tout[ j+1 ] = im2;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {string} [options.dtype] - output array data type\n* @param {boolean} [options.endpoint] - boolean indicating whether the `stop` value in the output array\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'endpoint': true\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\topts.dtype = options.dtype;\n\t\tif ( !isString( opts.dtype ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a string. Option: `%s`.', 'dtype', opts.dtype ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'endpoint' ) ) {\n\t\topts.endpoint = options.endpoint;\n\t\tif ( !isBoolean( opts.endpoint ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'endpoint', opts.endpoint ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = validate;\n", "{\n \"endpoint\": true\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar dtype = require( '@stdlib/complex/dtype' );\nvar ctors = require( './../../typed-float-ctors' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\nvar genreal = require( './generic_real.js' );\nvar gencmplx = require( './generic_complex.js' );\nvar typedreal = require( './typed_real.js' );\nvar typedcmplx = require( './typed_complex.js' );\nvar validate = require( './validate.js' );\nvar defaults = require( './defaults.json' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced array over a specified interval.\n*\n* @param {(number|ComplexLike)} start - start of interval\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {Options} [options] - options\n* @param {string} [options.dtype] - output array data type\n* @param {boolean} [options.endpoint=true] - boolean indicating whether to include the `stop` value in the output array\n* @throws {TypeError} first argument must be either a real or complex number\n* @throws {TypeError} second argument must be either a real or complex number\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {TypeError} last argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} the output array data type must be a complex number data type or \"generic\" when either `start` or `stop` is a complex number\n* @throws {TypeError} the output array data type must be a real or complex floating-point number data type or \"generic\"\n* @returns {(Array|TypedArray|ComplexArray)} linearly spaced array\n*\n* @example\n* var arr = linspace( 0, 100, 6, {\n* 'dtype': 'generic'\n* });\n* // returns [ 0, 20, 40, 60, 80, 100 ]\n*/\nfunction linspace( start, stop, len ) {\n\tvar opts;\n\tvar ctor;\n\tvar err;\n\tvar out;\n\tvar dt1;\n\tvar dt2;\n\tvar flg;\n\n\tif ( typeof start === 'object' ) {\n\t\tdt1 = dtype( start );\n\t\tif ( dt1 === null ) {\n\t\t\tif ( !isComplexLike( start ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t\t\t}\n\t\t\tdt1 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( start ) || isnan( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t} else {\n\t\tdt1 = 'float64';\n\t}\n\tif ( typeof stop === 'object' ) {\n\t\tdt2 = dtype( stop );\n\t\tif ( dt2 === null ) {\n\t\t\tif ( !isComplexLike( stop ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t\t\t}\n\t\t\tdt2 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( stop ) || isnan( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t} else {\n\t\tdt2 = 'float64';\n\t}\n\tif ( !isNonNegativeInteger( len ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', len ) );\n\t}\n\topts = {\n\t\t'endpoint': defaults.endpoint\n\t};\n\tif ( dt1 === dt2 ) {\n\t\topts.dtype = dt1; // one of 'float64' || 'complex64' || 'complex128'\n\t} else {\n\t\t// If dtypes are different, then at least one is a complex number. According to type promotion rules, for all possible dtype permutations, the default output data type should be 'complex128'...\n\t\topts.dtype = 'complex128';\n\t}\n\tif ( arguments.length > 3 ) {\n\t\terr = validate( opts, arguments[ 3 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tif ( opts.dtype === 'generic' ) {\n\t\tif ( flg ) {\n\t\t\treturn gencmplx( dt1, start, dt2, stop, len, opts.endpoint );\n\t\t}\n\t\treturn genreal( start, stop, len, opts.endpoint );\n\t}\n\tctor = ctors( opts.dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a real or complex floating-point data type or \"generic\". Option: `%s`.', 'dtype', opts.dtype ) );\n\t}\n\tout = new ctor( len );\n\tif ( opts.dtype === 'complex64' ) {\n\t\ttypedcmplx( reinterpret64( out, 0 ), dt1, start, dt2, stop, len, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( opts.dtype === 'complex128' ) {\n\t\ttypedcmplx( reinterpret128( out, 0 ), dt1, start, dt2, stop, len, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( flg ) {\n\t\tthrow new TypeError( 'invalid arguments. If either of the first two arguments are complex numbers, the output array data type must be a complex number data type or \"generic\".' );\n\t}\n\treturn typedreal( out, start, stop, len, opts.endpoint );\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\nvar realf = require( '@stdlib/complex/realf' );\nvar imagf = require( '@stdlib/complex/imagf' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced complex number sequence over a specified interval and assigns results to a provided output array.\n*\n* @private\n* @param {Object} out - output array object\n* @param {ArrayLikeObject} out.data - output array data\n* @param {Array} out.accessors - array element accessors\n* @param {string} dt1 - start value data type\n* @param {ComplexLike} start - start of interval\n* @param {string} dt2 - stop value data type\n* @param {ComplexLike} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Object} output array object\n*/\nfunction linspace( out, dt1, start, dt2, stop, len, endpoint ) {\n\tvar cmplx;\n\tvar isf32;\n\tvar re1;\n\tvar re2;\n\tvar im1;\n\tvar im2;\n\tvar set;\n\tvar buf;\n\tvar re;\n\tvar im;\n\tvar dr;\n\tvar di;\n\tvar N;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\tisf32 = 0;\n\tif ( dt1 === 'float64' ) {\n\t\tre1 = start;\n\t\tim1 = 0.0;\n\t} else if ( dt1 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre1 = realf( start );\n\t\tim1 = imagf( start );\n\t} else {\n\t\tre1 = real( start );\n\t\tim1 = imag( start );\n\t}\n\tif ( dt2 === 'float64' ) {\n\t\tre2 = stop;\n\t\tim2 = 0.0;\n\t} else if ( dt2 === 'complex64' ) {\n\t\tisf32 += 1;\n\t\tre2 = realf( stop );\n\t\tim2 = imagf( stop );\n\t} else {\n\t\tre2 = real( stop );\n\t\tim2 = imag( stop );\n\t}\n\t// Determine which complex number constructor to use according to type promotion rules:\n\tif ( isf32 === 2 ) {\n\t\tcmplx = Complex64;\n\t} else {\n\t\tcmplx = Complex128;\n\t}\n\t// Cache array object references:\n\tbuf = out.data;\n\tset = out.accessors[ 1 ];\n\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tset( buf, 0, new cmplx( re2, im2 ) );\n\t\t} else {\n\t\t\tset( buf, 0, new cmplx( re1, im1 ) );\n\t\t}\n\t\treturn out;\n\t}\n\tset( buf, 0, new cmplx( re1, im1 ) );\n\n\t// Calculate the increments:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\tdr = ( re2-re1 ) / N;\n\tdi = ( im2-im1 ) / N;\n\n\t// Generate the linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tre = re1 + (dr*i);\n\t\tim = im1 + (di*i);\n\t\tset( buf, i, new cmplx( re, im ) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tset( buf, N, new cmplx( re2, im2 ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns results to a provided output array.\n*\n* @private\n* @param {Object} out - output array object\n* @param {ArrayLikeObject} out.data - output array data\n* @param {Array} out.accessors - array element accessors\n* @param {number} start - start of interval\n* @param {number} stop - end of interval\n* @param {NonNegativeInteger} len - length of output array\n* @param {boolean} endpoint - boolean indicating whether to include `stop` in the output array\n* @returns {Object} output array object\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function set( buf, i, v ) {\n* buf[ i ] = v * 2.0;\n* }\n*\n* var out = new Float64Array( 6 );\n* var obj = {\n* 'data': out,\n* 'accessors': [ null, set ]\n* };\n* linspace( obj, 0, 100, out.length, true );\n*\n* var arr = obj.data;\n* // returns [ 0.0, 40.0, 80.0, 120.0, 160.0, 200.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function set( buf, i, v ) {\n* buf[ i ] = v * 2.0;\n* }\n*\n* var out = new Float64Array( 5 );\n* var obj = {\n* 'data': out,\n* 'accessors': [ null, set ]\n* };\n* linspace( obj, 0, 100, out.length, false );\n*\n* var arr = obj.data;\n* // returns [ 0.0, 40.0, 80.0, 120.0, 160.0 ]\n*/\nfunction linspace( out, start, stop, len, endpoint ) {\n\tvar buf;\n\tvar set;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( len === 0 ) {\n\t\treturn out;\n\t}\n\t// Cache array object references:\n\tbuf = out.data;\n\tset = out.accessors[ 1 ];\n\n\t// Set the first value:\n\tif ( len === 1 ) {\n\t\tif ( endpoint ) {\n\t\t\tset( buf, 0, stop );\n\t\t} else {\n\t\t\tset( buf, 0, start );\n\t\t}\n\t\treturn out;\n\t}\n\tset( buf, 0, start );\n\n\t// Calculate the increment:\n\tif ( endpoint ) {\n\t\tN = len - 1;\n\t} else {\n\t\tN = len;\n\t}\n\td = ( stop-start ) / N;\n\n\t// Generate linearly spaced values:\n\tfor ( i = 1; i < N; i++ ) {\n\t\tset( buf, i, start + (d*i) );\n\t}\n\t// Check whether to include the `stop` value in the output array:\n\tif ( endpoint ) {\n\t\tset( buf, N, stop );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar dtype = require( '@stdlib/complex/dtype' );\nvar adtype = require( './../../dtype' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar arraylike2object = require( './../../base/arraylike2object' );\nvar acccmplx = require( './accessors_complex.js' );\nvar accreal = require( './accessors_real.js' );\nvar typedcmplx = require( './typed_complex.js' );\nvar typedreal = require( './typed_real.js' );\nvar validate = require( './validate.js' );\nvar defaults = require( './defaults.json' );\n\n\n// MAIN //\n\n/**\n* Generates a linearly spaced sequence over a specified interval and assigns the results to a provided output array.\n*\n* @param {(number|ComplexLike)} start - start of interval\n* @param {(number|ComplexLike)} stop - end of interval\n* @param {Collection} out - output array\n* @param {Options} [options] - options\n* @param {boolean} [options.endpoint=true] - boolean indicating whether to include the `stop` value in the output array\n* @throws {TypeError} first argument must be either a real or complex number\n* @throws {TypeError} second argument must be either a real or complex number\n* @throws {TypeError} third argument must be an array-like object\n* @throws {TypeError} last argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} the output array data type must be a complex number data type or \"generic\" when either `start` or `stop` is a complex number\n* @returns {Collection} output array\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var out = new Float64Array( 6 );\n* var arr = linspace( 0, 100, out );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*/\nfunction linspace( start, stop, out ) {\n\tvar opts;\n\tvar err;\n\tvar dt1;\n\tvar dt2;\n\tvar flg;\n\tvar odt;\n\tvar o;\n\n\tif ( typeof start === 'object' ) {\n\t\tdt1 = dtype( start );\n\t\tif ( dt1 === null ) {\n\t\t\tif ( !isComplexLike( start ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t\t\t}\n\t\t\tdt1 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( start ) || isnan( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a real or complex number. Value: `%s`.', start ) );\n\t} else {\n\t\tdt1 = 'float64';\n\t}\n\tif ( typeof stop === 'object' ) {\n\t\tdt2 = dtype( stop );\n\t\tif ( dt2 === null ) {\n\t\t\tif ( !isComplexLike( stop ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t\t\t}\n\t\t\tdt2 = 'complex128';\n\t\t}\n\t\tflg = true;\n\t} else if ( !isNumber( stop ) || isnan( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a real or complex number. Value: `%s`.', stop ) );\n\t} else {\n\t\tdt2 = 'float64';\n\t}\n\tif ( !isCollection( out ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object. Value: `%s`.', out ) );\n\t}\n\topts = {\n\t\t'endpoint': defaults.endpoint\n\t};\n\tif ( arguments.length > 3 ) {\n\t\terr = validate( opts, arguments[ 3 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\todt = adtype( out );\n\tif ( odt === null ) {\n\t\todt = 'generic';\n\t}\n\tif ( odt === 'complex64' ) {\n\t\ttypedcmplx( reinterpret64( out, 0 ), dt1, start, dt2, stop, out.length, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( odt === 'complex128' ) {\n\t\ttypedcmplx( reinterpret128( out, 0 ), dt1, start, dt2, stop, out.length, opts.endpoint ); // eslint-disable-line max-len\n\t\treturn out;\n\t}\n\tif ( flg ) {\n\t\tif ( odt === 'generic' ) {\n\t\t\to = arraylike2object( out );\n\t\t\tacccmplx( o, dt1, start, dt2, stop, out.length, opts.endpoint );\n\t\t\treturn out;\n\t\t}\n\t\tthrow new TypeError( 'invalid arguments. If either of the first two arguments are complex numbers, the output array must be a complex number array or a \"generic\" array-like object.' );\n\t}\n\to = arraylike2object( out );\n\tif ( o.accessorProtocol ) {\n\t\taccreal( o, start, stop, out.length, opts.endpoint );\n\t\treturn out;\n\t}\n\ttypedreal( out, start, stop, out.length, opts.endpoint );\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = linspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a linearly spaced array.\n*\n* @module @stdlib/array/linspace\n*\n* @example\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = linspace( 0, 100, 6 );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* @example\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = linspace( 0, 100, 5, {\n* 'endpoint': false\n* });\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = new Float64Array( 6 );\n* var out = linspace.assign( 0, 100, out );\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0, 100.0 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var linspace = require( '@stdlib/array/linspace' );\n*\n* var arr = new Float64Array( 5 );\n* var out = linspace.assign( 0, 100, out, {\n* 'endpoint': false\n* });\n* // returns [ 0.0, 20.0, 40.0, 60.0, 80.0 ]\n*\n* var bool = ( arr === out );\n* // returns true\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'assign', assign );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar isnan = require( '@stdlib/math/base/assert/is-nan' );\nvar gen = require( './../../base/logspace' );\n\n\n// MAIN //\n\n/**\n* Generates a logarithmically spaced numeric array.\n*\n* @param {number} a - exponent of start value\n* @param {number} b - exponent of end value\n* @param {NonNegativeInteger} [len=10] - length of output array\n* @throws {TypeError} first argument must be numeric\n* @throws {TypeError} second argument must be numeric\n* @throws {TypeError} third argument must be a nonnegative integer\n* @returns {Array} logarithmically spaced numeric array\n*\n* @example\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\nfunction logspace( a, b, len ) {\n\tif ( !isNumber( a ) || isnan( a ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Exponent of start value must be numeric. Value: `%s`.', a ) );\n\t}\n\tif ( !isNumber( b ) || isnan( b ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Exponent of stop value must be numeric. Value: `%s`.', b ) );\n\t}\n\tif ( arguments.length < 3 ) {\n\t\tlen = 10;\n\t} else if ( !isNonNegativeInteger( len ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t}\n\treturn gen( a, b, len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = logspace;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Generate a logarithmically spaced numeric array.\n*\n* @module @stdlib/array/logspace\n*\n* @example\n* var logspace = require( '@stdlib/array/logspace' );\n*\n* var arr = logspace( 0, 2, 6 );\n* // returns [ 1, ~2.5, ~6.31, ~15.85, ~39.81, 100 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\nvar isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' );\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar PINF = require( '@stdlib/constants/float64/pinf' );\nvar NINF = require( '@stdlib/constants/float64/ninf' );\nvar FLOAT32_SMALLEST_SUBNORMAL = require( '@stdlib/constants/float32/smallest-subnormal' ); // eslint-disable-line id-length\nvar FLOAT32_MAX_SAFE_INTEGER = require( '@stdlib/constants/float32/max-safe-integer' );\nvar FLOAT32_MIN_SAFE_INTEGER = require( '@stdlib/constants/float32/min-safe-integer' );\nvar INT8_MIN = require( '@stdlib/constants/int8/min' );\nvar INT16_MIN = require( '@stdlib/constants/int16/min' );\nvar INT32_MIN = require( '@stdlib/constants/int32/min' );\nvar UINT8_MAX = require( '@stdlib/constants/uint8/max' );\nvar UINT16_MAX = require( '@stdlib/constants/uint16/max' );\nvar UINT32_MAX = require( '@stdlib/constants/uint32/max' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns the minimum floating-point array data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} array data type\n*/\nfunction minFloatDataType( value ) {\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value >= FLOAT32_MIN_SAFE_INTEGER && value <= FLOAT32_MAX_SAFE_INTEGER ) { // eslint-disable-line max-len\n\t\t\treturn 'float32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// MAIN //\n\n/**\n* Returns the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} array data type\n*\n* @example\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* @example\n* var dt = minDataType( 3 );\n* // returns 'uint8'\n*/\nfunction minDataType( value ) {\n\tif ( typeof value !== 'number' ) {\n\t\tif ( isComplexLike( value ) ) {\n\t\t\tif ( minFloatDataType( value.re ) === 'float64' || minFloatDataType( value.im ) === 'float64' ) {\n\t\t\t\treturn 'complex128';\n\t\t\t}\n\t\t\treturn 'complex64';\n\t\t}\n\t\treturn 'generic';\n\t}\n\tif ( value !== value || value === PINF || value === NINF ) {\n\t\treturn 'float32';\n\t}\n\tif ( isInteger( value ) ) {\n\t\tif ( value === 0 && isNegativeZero( value ) ) {\n\t\t\treturn 'float32';\n\t\t}\n\t\tif ( value < 0 ) {\n\t\t\tif ( value >= INT8_MIN ) {\n\t\t\t\treturn 'int8';\n\t\t\t}\n\t\t\tif ( value >= INT16_MIN ) {\n\t\t\t\treturn 'int16';\n\t\t\t}\n\t\t\tif ( value >= INT32_MIN ) {\n\t\t\t\treturn 'int32';\n\t\t\t}\n\t\t\treturn 'float64';\n\t\t}\n\t\tif ( value <= UINT8_MAX ) {\n\t\t\treturn 'uint8';\n\t\t}\n\t\tif ( value <= UINT16_MAX ) {\n\t\t\treturn 'uint16';\n\t\t}\n\t\tif ( value <= UINT32_MAX ) {\n\t\t\treturn 'uint32';\n\t\t}\n\t\treturn 'float64';\n\t}\n\t// Assume that if we are provided a tiny value, we don't want to underflow to zero by storing as `float32`...\n\tif (\n\t\tvalue > -FLOAT32_SMALLEST_SUBNORMAL &&\n\t\tvalue < FLOAT32_SMALLEST_SUBNORMAL\n\t) {\n\t\treturn 'float64';\n\t}\n\t// Any number which reaches this point is less than the maximum single-precision floating-point number, as floating-point format supports a limited number of decimals (e.g., (1.0+EPS)*10**15 => 1000000000000000.2, which is less than ~3.4e38)...\n\treturn 'float32';\n}\n\n\n// EXPORTS //\n\nmodule.exports = minDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine the minimum array data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @module @stdlib/array/min-dtype\n*\n* @example\n* var minDataType = require( '@stdlib/array/min-dtype' );\n*\n* var dt = minDataType( 3.141592653589793 );\n* // returns 'float32'\n*\n* dt = minDataType( 3 );\n* // returns 'uint8'\n*/\n\n// MODULES //\n\nvar minDataType = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = minDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar full = require( './../../full' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( NaN, NaN );\nvar Z64 = new Complex64( NaN, NaN );\nvar DTYPES = [ 'float64', 'float32', 'complex128', 'complex64', 'generic' ];\n\n\n// MAIN //\n\n/**\n* Creates an array filled with NaNs and having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a supported data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = nans( 2 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var arr = nans( 2, 'float32' );\n* // returns [ NaN, NaN ]\n*/\nfunction nans( length ) {\n\tvar dtype;\n\tvar value;\n\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t\tif ( DTYPES.indexOf( dtype ) === -1 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be one of the following: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dtype ) );\n\t\t}\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'complex128' ) {\n\t\tvalue = Z128;\n\t} else if ( dtype === 'complex64' ) {\n\t\tvalue = Z64;\n\t} else {\n\t\tvalue = NaN;\n\t}\n\treturn full( length, value, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nans;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with NaNs and having a specified length.\n*\n* @module @stdlib/array/nans\n*\n* @example\n* var nans = require( '@stdlib/array/nans' );\n*\n* var arr = nans( 2 );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var nans = require( '@stdlib/array/nans' );\n*\n* var arr = nans( 2, 'float32' );\n* // returns [ NaN, NaN ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( NaN, NaN );\nvar Z64 = new Complex64( NaN, NaN );\nvar DTYPES = [ 'float64', 'float32', 'complex128', 'complex64', 'generic' ];\n\n\n// MAIN //\n\n/**\n* Creates an array filled with NaNs and having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a supported data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = nansLike( [ 0.0, 0.0 ] );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var arr = nansLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ NaN, NaN ]\n*/\nfunction nansLike( x ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t\tif ( DTYPES.indexOf( dt ) === -1 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be one of the following: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dt ) );\n\t\t}\n\t} else if ( DTYPES.indexOf( dt ) === -1 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be one of the following data types: \"%s\". Value: `%s`.', DTYPES.join( '\", \"' ), dt ) );\n\t}\n\tif ( dt === 'complex128' ) {\n\t\tv = Z128;\n\t} else if ( dt === 'complex64' ) {\n\t\tv = Z64;\n\t} else {\n\t\tv = NaN;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nansLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with NaNs and having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/nans-like\n*\n* @example\n* var nansLike = require( '@stdlib/array/nans-like' );\n*\n* var arr = nansLike( [ 0.0, 0.0 ] );\n* // returns [ NaN, NaN ]\n*\n* @example\n* var nansLike = require( '@stdlib/array/nans-like' );\n*\n* var arr = nansLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ NaN, NaN ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": -1,\n\t\"float32\": \"float64\",\n\t\"int32\": -1,\n\t\"int16\": \"int32\",\n\t\"int8\": \"int16\",\n\t\"uint32\": -1,\n\t\"uint16\": \"uint32\",\n\t\"uint8\": \"uint16\",\n\t\"uint8c\": \"uint16\",\n\t\"generic\": -1,\n \"complex64\": \"complex128\",\n \"complex128\": -1\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar NEXT_DTYPES = require( './next_dtypes.json' );\n\n\n// FUNCTIONS //\n\n/**\n* Generates a table.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( NEXT_DTYPES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tout[ dtypes[i] ] = NEXT_DTYPES[ dtypes[i] ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next larger array data type of the same kind.\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|string|integer|null)} next larger data type(s) or null\n*\n* @example\n* var dt = nextDataType( 'float32' );\n* // returns 'float64'\n*/\nfunction nextDataType( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateTable();\n\t}\n\tif ( hasOwnProp( NEXT_DTYPES, dtype ) ) {\n\t\treturn NEXT_DTYPES[ dtype ];\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the next larger array data type of the same kind.\n*\n* @module @stdlib/array/next-dtype\n*\n* @example\n* var nextDataType = require( '@stdlib/array/next-dtype' );\n*\n* var dt = nextDataType( 'float32' );\n* // returns 'float64'\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar full = require( './../../full' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( 1.0, 0.0 );\nvar Z64 = new Complex64( 1.0, 0.0 );\n\n\n// MAIN //\n\n/**\n* Creates an array filled with ones and having a specified length.\n*\n* @param {NonNegativeInteger} length - array length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = ones( 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = ones( 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction ones( length ) {\n\tvar dtype;\n\tvar value;\n\n\tif ( arguments.length > 1 ) {\n\t\tdtype = arguments[ 1 ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tif ( dtype === 'complex128' ) {\n\t\tvalue = Z128;\n\t} else if ( dtype === 'complex64' ) {\n\t\tvalue = Z64;\n\t} else {\n\t\tvalue = 1;\n\t}\n\treturn full( length, value, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = ones;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with ones and having a specified length.\n*\n* @module @stdlib/array/ones\n*\n* @example\n* var ones = require( '@stdlib/array/ones' );\n*\n* var arr = ones( 2 );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var ones = require( '@stdlib/array/ones' );\n*\n* var arr = ones( 2, 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar dtype = require( './../../dtype' );\nvar full = require( './../../full' );\nvar Complex128 = require( '@stdlib/complex/float64' );\nvar Complex64 = require( '@stdlib/complex/float32' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Z128 = new Complex128( 1.0, 0.0 );\nvar Z64 = new Complex64( 1.0, 0.0 );\n\n\n// MAIN //\n\n/**\n* Creates an array filled with ones and having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = onesLike( [ 0.0, 0.0 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var arr = onesLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\nfunction onesLike( x ) {\n\tvar dt;\n\tvar v;\n\n\tdt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\tif ( dt === 'complex128' ) {\n\t\tv = Z128;\n\t} else if ( dt === 'complex64' ) {\n\t\tv = Z64;\n\t} else {\n\t\tv = 1.0;\n\t}\n\treturn full( x.length, v, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = onesLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an array filled with ones and having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/ones-like\n*\n* @example\n* var onesLike = require( '@stdlib/array/ones-like' );\n*\n* var arr = onesLike( [ 0.0, 0.0 ] );\n* // returns [ 1.0, 1.0 ]\n*\n* @example\n* var onesLike = require( '@stdlib/array/ones-like' );\n*\n* var arr = onesLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 1.0, 1.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns default options.\n*\n* @private\n* @returns {Object} default options\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t'highWaterMark': 9007199254740992\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Validates function options.\n*\n* @private\n* @param {Object} opts - destination object\n* @param {Options} options - function options\n* @param {NonNegativeInteger} [options.highWaterMark] - maximum total memory which can be allocated\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'highWaterMark': 1024\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'highWaterMark' ) ) {\n\t\topts.highWaterMark = options.highWaterMark;\n\t\tif ( !isNonNegativeInteger( opts.highWaterMark ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'highWaterMark', opts.highWaterMark ) );\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = validate;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Initializes a cache for pooled typed array buffers.\n*\n* @private\n* @param {NonNegativeInteger} n - base-2 logarithm of the maximum typed array size\n* @returns {ArrayArray} initialized cache\n*/\nfunction pool( n ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < n+1; i++ ) {\n\t\tout.push( [] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = pool;\n", "{\n\t\"float64\": 8,\n\t\"float32\": 4,\n\t\"int16\": 2,\n\t\"int32\": 4,\n\t\"int8\": 1,\n\t\"uint16\": 2,\n\t\"uint32\": 4,\n\t\"uint8\": 1,\n\t\"uint8c\": 1,\n \"complex64\": 8,\n \"complex128\": 16\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isTypedArrayLike = require( '@stdlib/assert/is-typed-array-like' );\nvar isArrayBuffer = require( '@stdlib/assert/is-arraybuffer' );\nvar isComplex64Array = require( '@stdlib/assert/is-complex64array' );\nvar isComplex128Array = require( '@stdlib/assert/is-complex128array' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar ctors = require( './../../typed-ctors' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar accessors = require( './../../base/accessors' );\nvar adtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\nvar ArrayBuffer = require( './../../buffer' );\nvar ceil = require( '@stdlib/math/base/special/ceil' );\nvar floor = require( '@stdlib/math/base/special/floor' );\nvar ceil2 = require( '@stdlib/math/base/special/ceil2' );\nvar log2 = require( '@stdlib/math/base/special/log2' );\nvar min = require( '@stdlib/math/base/special/min' );\nvar defaults = require( './defaults.js' );\nvar validate = require( './validate.js' );\nvar createPool = require( './pool.js' );\nvar BYTES_PER_ELEMENT = require( './bytes_per_element.json' );\n\n\n// VARIABLES //\n\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\n\n\n// FUNCTIONS //\n\n/**\n* Tests whether an array is a single-precision complex floating-point number array.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {boolean} boolean indicating whether an input array is a single-precision complex floating-point number array\n*/\nfunction isCmplx64Array( arr ) {\n\treturn ( arr instanceof Complex64Array );\n}\n\n/**\n* Tests whether an array is a double-precision complex floating-point number array.\n*\n* @private\n* @param {Collection} arr - input array\n* @returns {boolean} boolean indicating whether an input array is a double-precision complex floating-point number array\n*/\nfunction isCmplx128Array( arr ) {\n\treturn ( arr instanceof Complex128Array );\n}\n\n\n// MAIN //\n\n/**\n* Creates a typed array pool.\n*\n* @param {Options} [options] - pool options\n* @param {NonNegativeInteger} [options.highWaterMark] - maximum total memory which can be allocated\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} allocator\n*\n* @example\n* var typedarraypool = factory();\n*\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\nfunction factory( options ) {\n\tvar nbytes;\n\tvar pool;\n\tvar opts;\n\tvar err;\n\n\topts = defaults();\n\tif ( arguments.length ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tpool = createPool( ceil( log2( opts.highWaterMark ) ) );\n\tnbytes = 0;\n\n\tsetReadOnly( malloc, 'malloc', malloc ); // circular reference\n\tsetReadOnly( malloc, 'calloc', calloc );\n\tsetReadOnly( malloc, 'free', free );\n\tsetReadOnly( malloc, 'clear', clear );\n\tsetReadOnly( malloc, 'highWaterMark', opts.highWaterMark );\n\tsetReadOnlyAccessor( malloc, 'nbytes', getBytes );\n\n\treturn malloc;\n\n\t/**\n\t* Returns the number of allocated bytes.\n\t*\n\t* @private\n\t* @returns {NonNegativeInteger} number of allocated bytes\n\t*/\n\tfunction getBytes() {\n\t\treturn nbytes;\n\t}\n\n\t/**\n\t* Returns an array buffer.\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} n - number of bytes\n\t* @returns {(ArrayBuffer|null)} array buffer or null\n\t*/\n\tfunction arraybuffer( n ) {\n\t\tvar buf;\n\t\tvar i;\n\n\t\t// Convert the number of bytes to an index in our pool table:\n\t\ti = log2( n );\n\n\t\t// If we already have an available array buffer, use it...\n\t\tif ( i < pool.length && pool[ i ].length ) {\n\t\t\treturn pool[ i ].pop();\n\t\t}\n\t\t// Before allocating a new array buffer, ensure that we have not exceeded the maximum number of bytes we are allowed to allocate...\n\t\tif ( nbytes+n > opts.highWaterMark ) {\n\t\t\treturn null;\n\t\t}\n\t\tbuf = new ArrayBuffer( n );\n\n\t\t// Update the running counter of allocated bytes:\n\t\tnbytes += n;\n\n\t\treturn buf;\n\t}\n\n\t/**\n\t* Returns a typed array.\n\t*\n\t* @private\n\t* @param {Function} ctor - typed array constructor\n\t* @param {NonNegativeInteger} len - view length\n\t* @param {string} dtype - data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction typedarray( ctor, len, dtype ) {\n\t\tvar buf;\n\t\tif ( len === 0 ) {\n\t\t\treturn new ctor( 0 );\n\t\t}\n\t\tbuf = arraybuffer( ceil2( len )*BYTES_PER_ELEMENT[ dtype ] );\n\t\tif ( buf === null ) {\n\t\t\treturn buf;\n\t\t}\n\t\treturn new ctor( buf, 0, len );\n\t}\n\n\t/**\n\t* Returns an uninitialized typed array.\n\t*\n\t* ## Notes\n\t*\n\t* - Memory is **not** initialized.\n\t* - Memory is lazily allocated.\n\t* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n\t*\n\t* @private\n\t* @param {(NonNegativeInteger|Collection)} [arg] - an array length or an array-like object\n\t* @param {string} [dtype=\"float64\"] - data type\n\t* @throws {TypeError} must provide a valid array length or an array-like object\n\t* @throws {TypeError} must provide a recognized data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction malloc() {\n\t\tvar nargs;\n\t\tvar dtype;\n\t\tvar ctor;\n\t\tvar arr;\n\t\tvar out;\n\t\tvar set;\n\t\tvar get;\n\t\tvar len;\n\t\tvar i;\n\n\t\tnargs = arguments.length;\n\t\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\t\tnargs -= 1;\n\t\t\tdtype = arguments[ nargs ];\n\t\t} else {\n\t\t\tdtype = 'float64';\n\t\t}\n\t\tctor = ctors( dtype );\n\t\tif ( ctor === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t\t}\n\t\tif ( nargs <= 0 ) {\n\t\t\treturn new ctor( 0 );\n\t\t}\n\t\t// Check if provided a typed array length...\n\t\tif ( isNonNegativeInteger( arguments[ 0 ] ) ) {\n\t\t\treturn typedarray( ctor, arguments[ 0 ], dtype );\n\t\t}\n\t\t// Check if provided an array-like object containing data elements...\n\t\tif ( isCollection( arguments[ 0 ] ) ) {\n\t\t\tarr = arguments[ 0 ];\n\t\t\tlen = arr.length;\n\t\t\tif ( isComplex128Array( arr ) ) {\n\t\t\t\tarr = reinterpret128( arr, 0 );\n\t\t\t} else if ( isComplex64Array( arr ) ) {\n\t\t\t\tarr = reinterpret64( arr, 0 );\n\t\t\t} else if ( /^complex/.test( dtype ) ) {\n\t\t\t\t// Assume we've been provided an array of interleaved real and imaginary components...\n\t\t\t\tlen /= 2;\n\t\t\t}\n\t\t\tout = typedarray( ctor, len, dtype );\n\t\t\tif ( out === null ) {\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\tif ( isCmplx128Array( out ) || isCmplx64Array( out ) ) {\n\t\t\t\tout.set( arr );\n\t\t\t\treturn out;\n\t\t\t}\n\t\t\t// Wrap the arrays in order to account for the possibility that `arr` is a complex number array. As we don't prohibit other \"unsafe\" casts (e.g., providing a `Float64Array` and specifying a `dtype` of `uint8`), we don't prohibit providing a complex number array and specifying a real `dtype`. The results will probably be unexpected/gibberish, but I am not sure we should be overly pedantic in ensuring users don't do ill-advised things...\n\t\t\tget = accessors( adtype( arr ) ).accessors[ 0 ];\n\t\t\tset = accessors( dtype ).accessors[ 1 ];\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tset( out, i, get( arr, i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array length or an array-like object. Value: `%s`.', arguments[ 0 ] ) );\n\t}\n\n\t/**\n\t* Returns a zero-initialized typed array.\n\t*\n\t* ## Notes\n\t*\n\t* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} [len=0] - array length\n\t* @param {string} [dtype=\"float64\"] - data type\n\t* @throws {TypeError} must provide a valid array length\n\t* @throws {TypeError} must provide a recognized data type\n\t* @returns {(TypedArray|null)} typed array or null\n\t*/\n\tfunction calloc() {\n\t\tvar nargs;\n\t\tvar out;\n\t\tvar tmp;\n\t\tvar i;\n\n\t\tnargs = arguments.length;\n\t\tif ( nargs === 0 ) {\n\t\t\tout = malloc();\n\t\t} else if ( nargs === 1 ) {\n\t\t\tout = malloc( arguments[ 0 ] );\n\t\t} else {\n\t\t\tout = malloc( arguments[ 0 ], arguments[ 1 ] );\n\t\t}\n\t\tif ( out !== null ) {\n\t\t\t// Initialize the memory...\n\t\t\tif ( isCmplx128Array( out ) ) {\n\t\t\t\ttmp = reinterpret128( out, 0 );\n\t\t\t} else if ( isCmplx64Array( out ) ) {\n\t\t\t\ttmp = reinterpret64( out, 0 );\n\t\t\t} else {\n\t\t\t\ttmp = out;\n\t\t\t}\n\t\t\tfor ( i = 0; i < tmp.length; i++ ) {\n\t\t\t\ttmp[ i ] = 0.0;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\n\t/**\n\t* Frees a typed array or typed array buffer.\n\t*\n\t* ## Notes\n\t*\n\t* - Implicitly, we support providing non-internally allocated arrays and array buffer (e.g., \"freeing\" a typed array allocated in userland); however, the freed array buffer is likely to have excess capacity when compared to other members in its pool.\n\t*\n\t* @private\n\t* @param {(TypedArray|ArrayBuffer)} buf - typed array or array buffer to free\n\t* @throws {TypeError} must provide a typed array or typed array buffer\n\t* @returns {boolean} boolean indicating whether the typed array or array buffer was successfully freed\n\t*/\n\tfunction free( buf ) {\n\t\tvar n;\n\t\tvar p;\n\t\tvar i;\n\t\tif ( isTypedArrayLike( buf ) && buf.buffer ) {\n\t\t\tbuf = buf.buffer;\n\t\t} else if ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array or ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tif ( buf.byteLength > 0 ) {\n\t\t\tn = floor( log2( buf.byteLength ) );\n\n\t\t\t// Prohibit \"freeing\" array buffers which would potentially allow users to circumvent high water mark limits:\n\t\t\tn = min( pool.length-1, n );\n\n\t\t\t// Ensure that we do not attempt to free the same buffer more than once...\n\t\t\tp = pool[ n ];\n\t\t\tfor ( i = 0; i < p.length; i++ ) {\n\t\t\t\tif ( p[ i ] === buf ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Add the buffer to our pool of free buffers:\n\t\t\tp.push( buf );\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t* Clears the typed array pool allowing garbage collection of previously allocated (and currently free) array buffers.\n\t*\n\t* @private\n\t*/\n\tfunction clear() {\n\t\tvar i;\n\t\tfor ( i = 0; i < pool.length; i++ ) {\n\t\t\tpool[ i ].length = 0;\n\t\t}\n\t\tnbytes = 0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\n/**\n* Returns an uninitialized typed array.\n*\n* ## Notes\n*\n* - Memory is **not** initialized.\n* - Memory is lazily allocated.\n* - If the function returns `null`, the function was unable to allocate a new typed array from the typed array pool (most likely due to insufficient memory).\n*\n* @name typedarraypool\n* @type {Function}\n* @param {(NonNegativeInteger|ArrayLikeObject)} [arg] - an array length or an array-like object\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a valid array length or an array-like object\n* @throws {TypeError} must provide a recognized data type\n* @returns {(TypedArray|null)} typed array or null\n*\n* @example\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // e.g., returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\nvar typedarraypool = factory();\n\n\n// EXPORTS //\n\nmodule.exports = typedarraypool;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array pool.\n*\n* @module @stdlib/array/pool\n*\n* @example\n* var typedarraypool = require( '@stdlib/array/pool' );\n*\n* // Allocate an array of doubles:\n* var arr = typedarraypool( 5, 'float64' );\n* // returns [ 0.0, 0.0, 0.0, 0.0, 0.0 ]\n*\n* arr[ 0 ] = 3.14;\n* arr[ 1 ] = 3.14;\n*\n* // ...\n*\n* // Free the allocated memory to be used in a future allocation:\n* typedarraypool.free( arr );\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar factory = require( './factory.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float64\",\n\t\t\"int8\": \"float64\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"float64\",\n\t\t\"uint8\": \"float64\",\n\t\t\"uint8c\": \"float64\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"float32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float32\",\n\t\t\"int8\": \"float32\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"float32\",\n\t\t\"uint8\": \"float32\",\n\t\t\"uint8c\": \"float32\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int32\",\n\t\t\"int8\": \"int32\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int32\",\n\t\t\"uint8c\": \"int32\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int16\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int16\",\n\t\t\"uint8c\": \"int16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"int8\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int8\",\n\t\t\"uint32\": \"float64\",\n\t\t\"uint16\": \"int32\",\n\t\t\"uint8\": \"int16\",\n\t\t\"uint8c\": \"int16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint32\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float64\",\n\t\t\"int32\": \"float64\",\n\t\t\"int16\": \"float64\",\n\t\t\"int8\": \"float64\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint32\",\n\t\t\"uint8\": \"uint32\",\n\t\t\"uint8c\": \"uint32\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint16\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int32\",\n\t\t\"int8\": \"int32\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint16\",\n\t\t\"uint8c\": \"uint16\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint8\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint8\",\n\t\t\"uint8c\": \"uint8\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": \"float64\",\n\t\t\"float32\": \"float32\",\n\t\t\"int32\": \"int32\",\n\t\t\"int16\": \"int16\",\n\t\t\"int8\": \"int16\",\n\t\t\"uint32\": \"uint32\",\n\t\t\"uint16\": \"uint16\",\n\t\t\"uint8\": \"uint8\",\n\t\t\"uint8c\": \"uint8\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n\t\t\"generic\": \"generic\"\n\t},\n \"complex128\": {\n \"float64\": \"complex128\",\n \"float32\": \"complex128\",\n \"int32\": \"complex128\",\n \"int16\": \"complex128\",\n \"int8\": \"complex128\",\n \"uint32\": \"complex128\",\n \"uint16\": \"complex128\",\n \"uint8\": \"complex128\",\n \"uint8c\": \"complex128\",\n \"complex64\": \"complex128\",\n \"complex128\": \"complex128\",\n \"generic\": \"generic\"\n },\n \"complex64\": {\n \"float64\": \"complex128\",\n \"float32\": \"complex64\",\n \"int32\": \"complex128\",\n \"int16\": \"complex64\",\n \"int8\": \"complex64\",\n \"uint32\": \"complex128\",\n \"uint16\": \"complex64\",\n \"uint8\": \"complex64\",\n \"uint8c\": \"complex64\",\n \"complex64\": \"complex64\",\n \"complex128\": \"complex128\",\n \"generic\": \"generic\"\n },\n\t\"generic\": {\n\t\t\"float64\": \"generic\",\n\t\t\"float32\": \"generic\",\n\t\t\"int32\": \"generic\",\n\t\t\"int16\": \"generic\",\n\t\t\"int8\": \"generic\",\n\t\t\"uint32\": \"generic\",\n\t\t\"uint16\": \"generic\",\n\t\t\"uint8\": \"generic\",\n\t\t\"uint8c\": \"generic\",\n \"complex64\": \"generic\",\n \"complex128\": \"generic\",\n\t\t\"generic\": \"generic\"\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar PROMOTION_RULES = require( './promotion_rules.json' );\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of promotion rules.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( PROMOTION_RULES );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = PROMOTION_RULES[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the array data type with the smallest size and closest \"kind\" to which array data types can be safely cast.\n*\n* @param {string} [dtype1] - array data type\n* @param {string} [dtype2] - array data type\n* @returns {(Object|integer|string|null)} promotion rule(s) or null\n*\n* @example\n* var table = promotionRules();\n* // returns {...}\n*\n* @example\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* @example\n* var dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\nfunction promotionRules( dtype1, dtype2 ) {\n\tvar o;\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tif ( hasOwnProp( o, dtype2 ) ) {\n\t\t\treturn o[ dtype2 ];\n\t\t}\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = promotionRules;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return the array data type with the smallest size and closest \"kind\" to which array data types can be safely cast.\n*\n* @module @stdlib/array/promotion-rules\n*\n* @example\n* var promotionRules = require( '@stdlib/array/promotion-rules' );\n*\n* var table = promotionRules();\n* // returns {...}\n*\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* dt = promotionRules( 'float32', 'foo' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\nvar ctors = {\n\t'Float64Array': Float64Array,\n\t'Float32Array': Float32Array,\n\t'Int32Array': Int32Array,\n\t'Uint32Array': Uint32Array,\n\t'Int16Array': Int16Array,\n\t'Uint16Array': Uint16Array,\n\t'Int8Array': Int8Array,\n\t'Uint8Array': Uint8Array,\n\t'Uint8ClampedArray': Uint8ClampedArray,\n\t'Complex64Array': Complex64Array,\n\t'Complex128Array': Complex128Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArray = require( '@stdlib/assert/is-array' );\nvar ctors = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Revives a JSON-serialized typed array.\n*\n* @param {string} key - key\n* @param {*} value - value\n* @returns {(*|TypedArray)} value or typed array\n*\n* @example\n* var parseJSON = require( '@stdlib/utils/parse-json' );\n*\n* var str = '{\"type\":\"Float64Array\",\"data\":[5,3]}';\n*\n* var arr = parseJSON( str, reviveTypedArray );\n* // returns [ 5.0, 3.0 ]\n*/\nfunction reviveTypedArray( key, value ) {\n\tvar ctor;\n\tif (\n\t\tvalue &&\n\t\tvalue.type &&\n\t\tisArray( value.data )\n\t) {\n\t\tctor = ctors[ value.type ];\n\t\tif ( ctor ) {\n\t\t\treturn new ctor( value.data );\n\t\t}\n\t}\n\treturn value;\n}\n\n\n// EXPORTS //\n\nmodule.exports = reviveTypedArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Revive a JSON-serialized typed array.\n*\n* @module @stdlib/array/reviver\n*\n* @example\n* var parseJSON = require( '@stdlib/utils/parse-json' );\n* var reviveTypedArray = require( '@stdlib/array/reviver' );\n*\n* var str = '{\"type\":\"Float64Array\",\"data\":[5,3]}';\n*\n* var arr = parseJSON( str, reviveTypedArray );\n* // returns [ 5.0, 3.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"float32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"int16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"uint16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n \"complex128\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n \"generic\": 1\n },\n \"complex64\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 1\n },\n\t\"generic\": {\n\t\t\"float64\": 0,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 0,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar SAFE_CASTS = require( './safe_casts.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of safe casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of safe casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAFE_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAFE_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types to which a provided array data type can be safely cast.\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|StringArray|null)} list of array data types or null\n*\n* @example\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\nfunction safeCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = safeCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types to which a provided array data type can be safely cast.\n*\n* @module @stdlib/array/safe-casts\n*\n* @example\n* var safeCasts = require( '@stdlib/array/safe-casts' );\n*\n* var list = safeCasts( 'float32' );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"float64\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"float32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"int16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"int8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 1,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint32\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"uint16\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n\t\"uint8c\": {\n\t\t\"float64\": 1,\n\t\t\"float32\": 1,\n\t\t\"int32\": 1,\n\t\t\"int16\": 1,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 1,\n\t\t\"uint16\": 1,\n\t\t\"uint8\": 1,\n\t\t\"uint8c\": 1,\n \"complex128\": 1,\n \"complex64\": 1,\n\t\t\"generic\": 1\n\t},\n \"complex128\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 0\n },\n \"complex64\": {\n \"float64\": 0,\n \"float32\": 0,\n \"int32\": 0,\n \"int16\": 0,\n \"int8\": 0,\n \"uint32\": 0,\n \"uint16\": 0,\n \"uint8\": 0,\n \"uint8c\": 0,\n \"complex128\": 1,\n \"complex64\": 1,\n \"generic\": 0\n },\n\t\"generic\": {\n\t\t\"float64\": 0,\n\t\t\"float32\": 0,\n\t\t\"int32\": 0,\n\t\t\"int16\": 0,\n\t\t\"int8\": 0,\n\t\t\"uint32\": 0,\n\t\t\"uint16\": 0,\n\t\t\"uint8\": 0,\n\t\t\"uint8c\": 0,\n \"complex128\": 0,\n \"complex64\": 0,\n\t\t\"generic\": 1\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar objectKeys = require( '@stdlib/utils/keys' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar SAME_KIND_CASTS = require( './same_kind_casts.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of same \"kind\" casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateFullTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = {};\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\ttmp[ dt2 ] = o[ dt2 ];\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n/**\n* Generates a table of same \"kind\" casts for each array data type.\n*\n* @private\n* @returns {Object} table\n*/\nfunction generateTable() {\n\tvar dtypes;\n\tvar ntypes;\n\tvar out;\n\tvar tmp;\n\tvar dt1;\n\tvar dt2;\n\tvar o;\n\tvar j;\n\tvar i;\n\n\tout = {};\n\tdtypes = objectKeys( SAME_KIND_CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = SAME_KIND_CASTS[ dt1 ];\n\t\ttmp = [];\n\t\tfor ( j = 0; j < ntypes; j++ ) {\n\t\t\tdt2 = dtypes[ j ];\n\t\t\tif ( o[ dt2 ] === 1 ) {\n\t\t\t\ttmp.push( dt2 );\n\t\t\t}\n\t\t}\n\t\tout[ dt1 ] = tmp;\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns a list of array data types to which a provided array data type can be safely cast or cast within the same \"kind\".\n*\n* @param {string} [dtype] - array data type\n* @returns {(Object|StringArray|null)} list of array data types or null\n*\n* @example\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\nfunction sameKindCasts( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn generateFullTable();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\t// Lazily generate table...\n\t\tTABLE = generateTable();\n\t}\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sameKindCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of array data types to which a provided array data type can be safely cast or cast within the same \"kind\".\n*\n* @module @stdlib/array/same-kind-casts\n*\n* @example\n* var sameKindCasts = require( '@stdlib/array/same-kind-casts' );\n*\n* var list = sameKindCasts( 'float32' );\n* // returns [...]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar format = require( '@stdlib/string/format' );\n\n\n// FUNCTIONS //\n\n/**\n* Recursively (and eagerly) attempts to resolve nested array dimensions.\n*\n* @private\n* @param {Array} shape - output array\n* @param {ArrayLikeObject} arr - array\n* @returns {Array} shape array\n*/\nfunction recurse( shape, arr ) {\n\tvar v = arr[ 0 ];\n\tif ( isArrayLikeObject( v ) ) {\n\t\tshape.push( v.length );\n\t\trecurse( shape, v );\n\t}\n\treturn shape;\n}\n\n/**\n* Recursively verifies that all nested arrays have consistent dimensions.\n*\n* @private\n* @param {PositiveInteger} ndims - number of dimensions\n* @param {Array} shape - shape array\n* @param {NonNegativeInteger} d - dimension\n* @param {ArrayLikeObject} arr - array element to verify\n* @param {boolean} flg - boolean indicating whether to continue recursing\n* @returns {NonNegativeInteger} number of consistent dimensions\n*/\nfunction check( ndims, shape, d, arr, flg ) {\n\tvar len;\n\tvar v;\n\tvar i;\n\n\t// Get the size of the current dimension:\n\tlen = shape[ d ];\n\n\t// Ensure that each array element is an array of the same size:\n\tfor ( i = 0; i < arr.length; i++ ) {\n\t\tv = arr[ i ];\n\n\t\t// If the array element is not an array or is not the same size, we have found an inconsistent dimension:\n\t\tif ( !isArrayLikeObject( v ) || v.length !== len ) {\n\t\t\t// `d` is one more than the index of the last consistent dimension and thus equal to the number of consistent dimensions:\n\t\t\treturn d;\n\t\t}\n\t\t// Recursively examine nested elements:\n\t\tif ( flg ) {\n\t\t\tv = check( ndims, shape, d+1, v, d+1 < ndims-1 );\n\t\t\tif ( v < ndims ) {\n\t\t\t\t// Propagate the number of consistent dimensions up the recursion chain...\n\t\t\t\treturn v;\n\t\t\t}\n\t\t}\n\t}\n\treturn ndims;\n}\n\n\n// MAIN //\n\n/**\n* Determines (nested) array dimensions.\n*\n* @param {ArrayLikeObject} arr - array\n* @throws {TypeError} must provide an array\n* @returns {Array} array shape\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3, 3 ]\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*\n* @example\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], null ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*/\nfunction arrayShape( arr ) {\n\tvar shape;\n\tvar ndims;\n\n\tif ( !isArrayLikeObject( arr ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an array-like object. Value: `%s`.', arr ) );\n\t}\n\t// Initialize the shape/dimensions array:\n\tshape = [ arr.length ];\n\n\t// Eagerly determine array dimensions:\n\trecurse( shape, arr );\n\tndims = shape.length;\n\n\t// Check that all array element dimensions are consistent:\n\tif ( ndims > 1 ) {\n\t\t// If `check()` returns a value less than `ndims`, trim off the inconsistent dimensions:\n\t\tshape.length = check( ndims, shape, 1, arr, ndims > 2 );\n\t}\n\treturn shape;\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayShape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Determine (nested) array dimensions.\n*\n* @module @stdlib/array/shape\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3, 3 ]\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8 ] ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*\n* @example\n* var arrayShape = require( '@stdlib/array/shape' );\n*\n* var arr = [ [ 1, 2, 3 ], [ 4, 5, 6 ], null ];\n*\n* var shape = arrayShape( arr );\n* // returns [ 3 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\nvar ctor = ( typeof SharedArrayBuffer === 'function' ) ? SharedArrayBuffer : null; // eslint-disable-line stdlib/require-globals, no-undef\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Constructor returning an object used to represent a generic, fixed-length raw binary data buffer which can be used to create views of shared memory.\n*\n* @param {NonNegativeInteger} size - number of bytes\n* @throws {Error} not implemented\n*/\nfunction polyfill( size ) { // eslint-disable-line no-unused-vars\n\tthrow new Error( 'not supported. The current environment does not support SharedArrayBuffers, and, unfortunately, SharedArrayBuffers cannot be polyfilled. For shared memory applications, upgrade your runtime environment to one which supports SharedArrayBuffers.' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = polyfill;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Constructor returning an object used to represent a generic, fixed-length raw binary data buffer which can be used to create views of shared memory.\n*\n* @module @stdlib/array/shared-buffer\n*\n* @example\n* var ctor = require( '@stdlib/array/shared-buffer' );\n*\n* var buf;\n* try {\n* buf = new ctor( 10 );\n* // returns \n* } catch ( err ) {\n* console.log( 'Environment does not support SharedArrayBuffers.' );\n* }\n*/\n\n// MODULES //\n\nvar hasSharedArrayBufferSupport = require( '@stdlib/assert/has-sharedarraybuffer-support' ); // eslint-disable-line id-length\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar ctor;\nif ( hasSharedArrayBufferSupport() ) {\n\tctor = builtin;\n} else {\n\tctor = polyfill;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which repeatedly iterates over each element in an array-like object.\n*\n* @param {Collection} src - input value\n* @param {Options} [options] - function options\n* @param {NonNegativeInteger} [options.iter] - number of iterations\n* @param {integer} [options.dir=1] - iteration direction\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {TypeError} callback argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = circarray2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction circarray2iterator( src ) {\n\tvar thisArg;\n\tvar options;\n\tvar count;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\topts = {\n\t\t'iter': 1e308, // ~infinity\n\t\t'dir': 1 // left to right iteration\n\t};\n\tif ( arguments.length > 1 ) {\n\t\tif ( isObject( arguments[ 1 ] ) ) {\n\t\t\toptions = arguments[ 1 ];\n\t\t\tif ( arguments.length > 2 ) {\n\t\t\t\tfcn = arguments[ 2 ];\n\t\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Callback argument must be a function. Value: `%s`.', fcn ) );\n\t\t\t\t}\n\t\t\t\tthisArg = arguments[ 3 ];\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'iter' ) ) {\n\t\t\t\topts.iter = options.iter;\n\t\t\t\tif ( !isNonNegativeInteger( options.iter ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'iter', options.iter ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'dir' ) ) {\n\t\t\t\topts.dir = options.dir;\n\t\t\t\tif ( options.dir !== 1 && options.dir !== -1 ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be either `1` or `-1`. Option: `%s`.', 'dir', options.dir ) );\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tif ( !isFunction( fcn ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either a function or an options object. Value: `%s`.', fcn ) );\n\t\t\t}\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tcount = 0;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tif ( opts.dir === 1 ) {\n\t\t\ti = -1;\n\t\t\tsetReadOnly( iter, 'next', next1a );\n\t\t} else {\n\t\t\ti = src.length;\n\t\t\tsetReadOnly( iter, 'next', next1b );\n\t\t}\n\t} else if ( opts.dir === 1 ) {\n\t\ti = -1;\n\t\tsetReadOnly( iter, 'next', next2a );\n\t} else {\n\t\ti = src.length;\n\t\tsetReadOnly( iter, 'next', next2b );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1a() {\n\t\ti = (i+1) % src.length;\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, count, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1b() {\n\t\ti -= 1;\n\t\tif ( i < 0 ) {\n\t\t\ti += src.length;\n\t\t}\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, count, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2a() {\n\t\ti = (i+1) % src.length;\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2b() {\n\t\ti -= 1;\n\t\tif ( i < 0 ) {\n\t\t\ti += src.length;\n\t\t}\n\t\tcount += 1;\n\t\tif ( FLG || count > opts.iter || src.length === 0 ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn circarray2iterator( src, opts, fcn, thisArg );\n\t\t}\n\t\treturn circarray2iterator( src, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = circarray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator which repeatedly iterates over the elements of an array-like object.\n*\n* @module @stdlib/array/to-circular-iterator\n*\n* @example\n* var circarray2iterator = require( '@stdlib/array/to-circular-iterator' );\n*\n* var iter = circarray2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in an array-like object.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = array2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction array2iterator( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += 1;\n\t\tif ( FLG || i >= src.length ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += 1;\n\t\tif ( FLG || i >= src.length ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn array2iterator( src, fcn, thisArg );\n\t\t}\n\t\treturn array2iterator( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = array2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object.\n*\n* @module @stdlib/array/to-iterator\n*\n* @example\n* var array2iterator = require( '@stdlib/array/to-iterator' );\n*\n* var iter = array2iterator( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in an array-like object.\n*\n* ## Notes\n*\n* - For dynamic array resizing, the only behavior made intentionally consistent with iterating from left to right is when elements are pushed onto the beginning (end) of an array. In other words, iterating from left to right combined with `[].push()` is consistent with iterating from right to left combined with `[].unshift()`.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = array2iteratorRight( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\nfunction array2iteratorRight( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\tlen = src.length;\n\ti = len;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\tif ( FLG || i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\tif ( FLG || i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn array2iteratorRight( src, fcn, thisArg );\n\t\t}\n\t\treturn array2iteratorRight( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = array2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object, iterating from right to left.\n*\n* @module @stdlib/array/to-iterator-right\n*\n* @example\n* var array2iteratorRight = require( '@stdlib/array/to-iterator-right' );\n*\n* var iter = array2iteratorRight( [ 1, 2, 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int8Array = require( './../../int8' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\nvar Int16Array = require( './../../int16' );\nvar Uint16Array = require( './../../uint16' );\nvar Int32Array = require( './../../int32' );\nvar Uint32Array = require( './../../uint32' );\nvar Float32Array = require( './../../float32' );\nvar Float64Array = require( './../../float64' );\nvar Complex64Array = require( './../../complex64' );\nvar Complex128Array = require( './../../complex128' );\n\n\n// MAIN //\n\nvar CTORS = [\n\t[ Float64Array, 'Float64Array' ],\n\t[ Float32Array, 'Float32Array' ],\n\t[ Int32Array, 'Int32Array' ],\n\t[ Uint32Array, 'Uint32Array' ],\n\t[ Int16Array, 'Int16Array' ],\n\t[ Uint16Array, 'Uint16Array' ],\n\t[ Int8Array, 'Int8Array' ],\n\t[ Uint8Array, 'Uint8Array' ],\n\t[ Uint8ClampedArray, 'Uint8ClampedArray' ],\n\t[ Complex64Array, 'Complex64Array' ],\n\t[ Complex128Array, 'Complex128Array' ]\n];\n\n\n// EXPORTS //\n\nmodule.exports = CTORS;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar instanceOf = require( '@stdlib/assert/instance-of' );\nvar ctorName = require( '@stdlib/utils/constructor-name' );\nvar getPrototypeOf = require( '@stdlib/utils/get-prototype-of' );\nvar CTORS = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns the typed array type.\n*\n* @private\n* @param {TypedArray} arr - typed array\n* @returns {(string|void)} typed array type\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( 5 );\n* var str = typeName( arr );\n* // returns 'Float64Array'\n*/\nfunction typeName( arr ) {\n\tvar v;\n\tvar i;\n\n\t// Check for typed array objects from the same realm (same Node.js `vm` or same `Window` object)...\n\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\tif ( instanceOf( arr, CTORS[ i ][ 0 ] ) ) {\n\t\t\treturn CTORS[ i ][ 1 ];\n\t\t}\n\t}\n\t// Walk the prototype tree until we find an object having a desired native class...\n\twhile ( arr ) {\n\t\tv = ctorName( arr );\n\t\tfor ( i = 0; i < CTORS.length; i++ ) {\n\t\t\tif ( v === CTORS[ i ][ 1 ] ) {\n\t\t\t\treturn CTORS[ i ][ 1 ];\n\t\t\t}\n\t\t}\n\t\tarr = getPrototypeOf( arr );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = typeName;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isTypedArray = require( '@stdlib/assert/is-typed-array' );\nvar isComplexTypedArray = require( '@stdlib/assert/is-complex-typed-array' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar format = require( '@stdlib/string/format' );\nvar typeName = require( './type.js' );\n\n\n// MAIN //\n\n/**\n* Returns a JSON representation of a typed array.\n*\n* ## Notes\n*\n* - We build a JSON object representing a typed array similar to how Node.js `Buffer` objects are represented. See [Buffer][1].\n*\n* [1]: https://nodejs.org/api/buffer.html#buffer_buf_tojson\n*\n* @param {TypedArray} arr - typed array to serialize\n* @throws {TypeError} first argument must be a typed array\n* @returns {Object} JSON representation\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\nfunction typedarray2json( arr ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\n\tif ( isTypedArray( arr ) ) {\n\t\tdata = arr;\n\t} else if ( isComplexTypedArray( arr ) ) {\n\t\tif ( arr.BYTES_PER_ELEMENT === 8 ) {\n\t\t\tdata = reinterpret64( arr, 0 );\n\t\t} else { // arr.BYTES_PER_ELEMENT === 16\n\t\t\tdata = reinterpret128( arr, 0 );\n\t\t}\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a typed array. Value: `%s`.', arr ) );\n\t}\n\tout = {\n\t\t'type': typeName( arr ),\n\t\t'data': []\n\t};\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tout.data.push( data[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = typedarray2json;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a JSON representation of a typed array.\n*\n* @module @stdlib/array/to-json\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var typedarray2json = require( '@stdlib/array/to-json' );\n*\n* var arr = new Float64Array( [ 5.0, 3.0 ] );\n* var json = typedarray2json( arr );\n* // returns { 'type': 'Float64Array', 'data': [ 5.0, 3.0 ] }\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in a sparse array-like object.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = sparsearray2iterator( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 4\n*/\nfunction sparsearray2iterator( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tvar len;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tlen = src.length;\n\t\ti += 1;\n\t\twhile ( i < len && get( src, i ) === void 0 ) {\n\t\t\ti += 1;\n\t\t}\n\t\tif ( i >= len ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tvar len;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tlen = src.length;\n\t\ti += 1;\n\t\twhile ( i < len && get( src, i ) === void 0 ) {\n\t\t\ti += 1;\n\t\t}\n\t\tif ( i >= len ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn sparsearray2iterator( src, fcn, thisArg );\n\t\t}\n\t\treturn sparsearray2iterator( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sparsearray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a sparse array-like value.\n*\n* @module @stdlib/array/to-sparse-iterator\n*\n* @example\n* var sparsearray2iterator = require( '@stdlib/array/to-sparse-iterator' );\n*\n* var iter = sparsearray2iterator( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 1\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 4\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in a sparse array-like object.\n*\n* ## Notes\n*\n* - For dynamic array resizing, the only behavior made intentionally consistent with iterating from left to right is when elements are pushed onto the beginning (end) of an array. In other words, iterating from left to right combined with `[].push()` is consistent with iterating from right to left combined with `[].unshift()`.\n*\n* @param {Collection} src - input value\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = sparsearray2iteratorRight( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 1\n*/\nfunction sparsearray2iteratorRight( src ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar len;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tfcn = arguments[ 1 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 2 ];\n\t}\n\tlen = src.length;\n\ti = len;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\twhile ( i >= 0 && get( src, i ) === void 0 ) {\n\t\t\ti -= 1;\n\t\t}\n\t\tif ( i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\ti += src.length - len - 1; // accounts for a dynamic array\n\t\tlen = src.length;\n\t\twhile ( i >= 0 && get( src, i ) === void 0 ) {\n\t\t\ti -= 1;\n\t\t}\n\t\tif ( i < 0 ) {\n\t\t\tFLG = true;\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn sparsearray2iteratorRight( src, fcn, thisArg );\n\t\t}\n\t\treturn sparsearray2iteratorRight( src );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sparsearray2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a sparse array-like value, iterating from right to left.\n*\n* @module @stdlib/array/to-sparse-iterator-right\n*\n* @example\n* var sparsearray2iteratorRight = require( '@stdlib/array/to-sparse-iterator-right' );\n*\n* var iter = sparsearray2iteratorRight( [ 1, , 3, 4 ] );\n*\n* var v = iter.next().value;\n* // returns 4\n*\n* v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 1\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over elements in an array-like object according to specified stride parameters.\n*\n* @param {NonNegativeInteger} N - number of values to iterate\n* @param {Collection} src - input value\n* @param {integer} stride - stride length\n* @param {NonNegativeInteger} offset - starting index\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be a nonnegative integer\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} fourth argument must be a nonnegative integer\n* @throws {TypeError} fifth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var values = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n*\n* var N = 4;\n* var stride = -2;\n* var offset = 6;\n*\n* var iter = stridedarray2iterator( N, values, stride, offset );\n*\n* var v = iter.next().value;\n* // returns 7\n*\n* v = iter.next().value;\n* // returns 5\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\nfunction stridedarray2iterator( N, src, stride, offset ) {\n\tvar thisArg;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar idx;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isNonNegativeInteger( N ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a nonnegative integer. Value: `%s`.', N ) );\n\t}\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tif ( !isInteger( stride ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', stride ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( arguments.length > 4 ) {\n\t\tfcn = arguments[ 4 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 5 ];\n\t}\n\tidx = offset;\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\tvar v;\n\t\ti += 1;\n\t\tif ( FLG || i >= N ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = fcn.call( thisArg, get( src, idx ), idx, i, src );\n\t\tidx += stride;\n\t\treturn {\n\t\t\t'value': v,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\tvar v;\n\t\ti += 1;\n\t\tif ( FLG || i >= N ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = get( src, idx );\n\t\tidx += stride;\n\t\treturn {\n\t\t\t'value': v,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn stridedarray2iterator( N, src, stride, offset, fcn, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn stridedarray2iterator( N, src, stride, offset );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = stridedarray2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from a strided array-like value.\n*\n* @module @stdlib/array/to-strided-iterator\n*\n* @example\n* var stridedarray2iterator = require( '@stdlib/array/to-strided-iterator' );\n*\n* var values = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n*\n* var N = 4;\n* var stride = -2;\n* var offset = 6;\n*\n* var iter = stridedarray2iterator( N, values, stride, offset );\n*\n* var v = iter.next().value;\n* // returns 7\n*\n* v = iter.next().value;\n* // returns 5\n*\n* v = iter.next().value;\n* // returns 3\n*\n* // ...\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each element in an array-like object view.\n*\n* @param {Collection} src - input value\n* @param {integer} [begin=0] - starting index (inclusive)\n* @param {integer} [end=src.length] - ending index (non-inclusive)\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be either an integer (starting index) or a function\n* @throws {TypeError} third argument must be either an integer (ending index) or a function\n* @throws {TypeError} fourth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = arrayview2iterator( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction arrayview2iterator( src ) {\n\tvar thisArg;\n\tvar begin;\n\tvar nargs;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar end;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs === 1 ) {\n\t\tbegin = 0;\n\t\tend = src.length;\n\t} else if ( nargs === 2 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tfcn = arguments[ 1 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t}\n\t\tend = src.length;\n\t} else if ( nargs === 3 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tthisArg = arguments[ 2 ];\n\t\t} else if ( isFunction( arguments[ 2 ] ) ) {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 2 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = arguments[ 2 ];\n\t\t}\n\t} else { // nargs >= 4\n\t\tbegin = arguments[ 1 ];\n\t\tend = arguments[ 2 ];\n\t\tfcn = arguments[ 3 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tif ( !isInteger( begin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an integer (starting index) or a function. Value: `%s`.', begin ) );\n\t}\n\tif ( !isInteger( end ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either an integer (ending index) or a function. Value: `%s`.', end ) );\n\t}\n\tif ( end < 0 ) {\n\t\tend = src.length + end;\n\t\tif ( end < 0 ) {\n\t\t\tend = 0;\n\t\t}\n\t} else if ( end > src.length ) {\n\t\tend = src.length;\n\t}\n\tif ( begin < 0 ) {\n\t\tbegin = src.length + begin;\n\t\tif ( begin < 0 ) {\n\t\t\tbegin = 0;\n\t\t}\n\t}\n\ti = begin - 1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', finish );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti += 1;\n\t\tif ( FLG || i >= end ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, i-begin, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti += 1;\n\t\tif ( FLG || i >= end ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction finish( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn arrayview2iterator( src, begin, end, fcn, thisArg );\n\t\t}\n\t\treturn arrayview2iterator( src, begin, end );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayview2iterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object view.\n*\n* @module @stdlib/array/to-view-iterator\n*\n* @example\n* var arrayview2iterator = require( '@stdlib/array/to-view-iterator' );\n*\n* var iter = arrayview2iterator( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 2\n*\n* v = iter.next().value;\n* // returns 3\n*\n* var bool = iter.next().done;\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isAccessorArray = require( './../../base/assert/is-accessor-array' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar accessorGetter = require( './../../base/accessor-getter' );\nvar getter = require( './../../base/getter' );\nvar dtype = require( './../../dtype' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates from right to left over each element in an array-like object view.\n*\n* @param {Collection} src - input value\n* @param {integer} [begin=0] - starting **view** index (inclusive)\n* @param {integer} [end=src.length] - ending **view** index (non-inclusive)\n* @param {Function} [mapFcn] - function to invoke for each iterated value\n* @param {*} [thisArg] - execution context\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be either an integer (starting index) or a function\n* @throws {TypeError} third argument must be either an integer (ending index) or a function\n* @throws {TypeError} fourth argument must be a function\n* @returns {Iterator} iterator\n*\n* @example\n* var iter = arrayview2iteratorRight( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nfunction arrayview2iteratorRight( src ) {\n\tvar thisArg;\n\tvar begin;\n\tvar nargs;\n\tvar iter;\n\tvar FLG;\n\tvar fcn;\n\tvar end;\n\tvar get;\n\tvar dt;\n\tvar i;\n\tif ( !isCollection( src ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', src ) );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs === 1 ) {\n\t\tbegin = 0;\n\t\tend = src.length;\n\t} else if ( nargs === 2 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tfcn = arguments[ 1 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t}\n\t\tend = src.length;\n\t} else if ( nargs === 3 ) {\n\t\tif ( isFunction( arguments[ 1 ] ) ) {\n\t\t\tbegin = 0;\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 1 ];\n\t\t\tthisArg = arguments[ 2 ];\n\t\t} else if ( isFunction( arguments[ 2 ] ) ) {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = src.length;\n\t\t\tfcn = arguments[ 2 ];\n\t\t} else {\n\t\t\tbegin = arguments[ 1 ];\n\t\t\tend = arguments[ 2 ];\n\t\t}\n\t} else { // nargs >= 4\n\t\tbegin = arguments[ 1 ];\n\t\tend = arguments[ 2 ];\n\t\tfcn = arguments[ 3 ];\n\t\tif ( !isFunction( fcn ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a function. Value: `%s`.', fcn ) );\n\t\t}\n\t\tthisArg = arguments[ 4 ];\n\t}\n\tif ( !isInteger( begin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be either an integer (starting view index) or a function. Value: `%s`.', begin ) );\n\t}\n\tif ( !isInteger( end ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either an integer (ending view index) or a function. Value: `%s`.', end ) );\n\t}\n\tif ( end < 0 ) {\n\t\tend = src.length + end;\n\t\tif ( end < 0 ) {\n\t\t\tend = 0;\n\t\t}\n\t} else if ( end > src.length ) {\n\t\tend = src.length;\n\t}\n\tif ( begin < 0 ) {\n\t\tbegin = src.length + begin;\n\t\tif ( begin < 0 ) {\n\t\t\tbegin = 0;\n\t\t}\n\t}\n\ti = end;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tif ( fcn ) {\n\t\tsetReadOnly( iter, 'next', next1 );\n\t} else {\n\t\tsetReadOnly( iter, 'next', next2 );\n\t}\n\tsetReadOnly( iter, 'return', finish );\n\n\t// If an environment supports `Symbol.iterator`, make the iterator iterable:\n\tif ( iteratorSymbol ) {\n\t\tsetReadOnly( iter, iteratorSymbol, factory );\n\t}\n\t// Resolve an accessor for retrieving array elements (e.g., to accommodate `Complex64Array`, etc):\n\tdt = dtype( src );\n\tif ( isAccessorArray( src ) ) {\n\t\tget = accessorGetter( dt );\n\t} else {\n\t\tget = getter( dt );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next1() {\n\t\ti -= 1;\n\t\tif ( FLG || i < begin ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': fcn.call( thisArg, get( src, i ), i, end-i-1, src ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next2() {\n\t\ti -= 1;\n\t\tif ( FLG || i < begin ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': get( src, i ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction finish( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\tif ( fcn ) {\n\t\t\treturn arrayview2iteratorRight( src, begin, end, fcn, thisArg );\n\t\t}\n\t\treturn arrayview2iteratorRight( src, begin, end );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = arrayview2iteratorRight;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2019 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create an iterator from an array-like object view, iterating from right to left.\n*\n* @module @stdlib/array/to-view-iterator-right\n*\n* @example\n* var arrayview2iteratorRight = require( '@stdlib/array/to-view-iterator-right' );\n*\n* var iter = arrayview2iteratorRight( [ 1, 2, 3, 4 ], 1, 3 );\n*\n* var v = iter.next().value;\n* // returns 3\n*\n* v = iter.next().value;\n* // returns 2\n*\n* var bool = iter.next().done;\n* // returns true\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar ctors = require( './../../typed-ctors' );\nvar reinterpret128 = require( '@stdlib/strided/base/reinterpret-complex128' );\nvar reinterpret64 = require( '@stdlib/strided/base/reinterpret-complex64' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar Complex64Array = ctors( 'complex64' );\nvar Complex128Array = ctors( 'complex128' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {(ComplexArray|TypedArray)} typed array\n*\n* @example\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction typedarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\n\t\t// Note: the following checks are not particularly robust, as `instanceof` will fail for cross-realm instances...\n\t\tif ( arg instanceof Complex64Array ) {\n\t\t\targ = reinterpret64( arg, 0 );\n\t\t} else if ( arg instanceof Complex128Array ) {\n\t\t\targ = reinterpret128( arg, 0 );\n\t\t}\n\t\treturn new ctor( arg );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = typedarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a typed array.\n*\n* @module @stdlib/array/typed\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray();\n* // returns \n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr = typedarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var arr1 = typedarray( [ 5, 3 ], 'int32' );\n* var arr2 = typedarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = typedarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var typedarray = require( '@stdlib/array/typed' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = typedarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Complex128Array = require( './../../complex128' );\nvar Complex64Array = require( './../../complex64' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'complex128': Complex128Array,\n\t'complex64': Complex64Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a complex typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Complex typed array constructors.\n*\n* @module @stdlib/array/typed-complex-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-complex-ctors' );\n*\n* var ctor = ctors( 'complex128' );\n* // returns \n*\n* ctor = ctors( 'float64' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar ctors = require( './../../typed-complex-ctors' );\n\n\n// MAIN //\n\n/**\n* Creates a complex number typed array.\n*\n* @param {(NonNegativeInteger|ComplexArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"complex128\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {ComplexArray} typed array\n*\n* @example\n* var arr = complexarray();\n* // returns \n*\n* @example\n* var arr = complexarray( 2 );\n* // returns \n*\n* @example\n* var arr = complexarray( 2, 'complex64' );\n* // returns \n*\n* @example\n* var arr = complexarray( [ 0.5, 0.5 ] );\n* // returns \n*\n* @example\n* var arr = complexarray( [ 5.0, -3.0 ], 'complex64' );\n* // returns \n*\n* @example\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex64' );\n* var arr2 = complexarray( arr1 );\n* // returns \n*\n* @example\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex128' );\n* var arr2 = complexarray( arr1, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2, 'complex64' );\n* // returns \n*/\nfunction complexarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'complex128';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\treturn new ctor( arguments[0] );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = complexarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a complex number typed array.\n*\n* @module @stdlib/array/typed-complex\n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray();\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( 2 );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( 2, 'complex64' );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( [ 0.5, 0.5 ] );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr = complexarray( [ 5.0, -3.0 ], 'complex64' );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex64' );\n* var arr2 = complexarray( arr1 );\n* // returns \n*\n* @example\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var arr1 = complexarray( [ 5.0, 3.0 ], 'complex128' );\n* var arr2 = complexarray( arr1, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = complexarray( buf, 16, 'complex64' );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2 );\n* // returns \n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var complexarray = require( '@stdlib/array/typed-complex' );\n*\n* var buf = new ArrayBuffer( 64 );\n* var arr = complexarray( buf, 16, 2, 'complex64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"complex64\",\n\t\"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of complex typed array data types.\n*\n* @returns {StringArray} list of complex typed array data types\n*\n* @example\n* var list = dtypes();\n* // returns [ 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of complex typed array data types.\n*\n* @module @stdlib/array/typed-complex-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-complex-dtypes' );\n*\n* var list = dtypes();\n* // returns [ 'complex64', 'complex128' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\",\n \"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array data types.\n*\n* @returns {StringArray} list of typed array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array data types.\n*\n* @module @stdlib/array/typed-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c', 'complex128', 'complex64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"complex64\",\n \"complex128\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array floating-point data types.\n*\n* @returns {StringArray} list of typed array floating-point data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'complex64', 'complex128' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array floating-point data types.\n*\n* @module @stdlib/array/typed-float-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-float-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'complex64', 'complex128' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an integer-valued typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'int' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Integer-valued typed array constructors.\n*\n* @module @stdlib/array/typed-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-integer-ctors' );\n*\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array integer data types.\n*\n* @returns {StringArray} list of typed array integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array integer data types.\n*\n* @module @stdlib/array/typed-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isString = require( '@stdlib/assert/is-string' ).isPrimitive;\nvar format = require( '@stdlib/string/format' );\nvar ctors = require( './../../typed-ctors' );\n\n\n// MAIN //\n\n/**\n* Creates a typed array.\n*\n* @param {(NonNegativeInteger|TypedArray|ArrayLikeObject|ArrayBuffer)} [arg] - a length, typed array, array-like object, or buffer\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @param {string} [dtype=\"float64\"] - data type\n* @throws {TypeError} must provide a recognized data type\n* @returns {TypedArray} typed array\n*\n* @example\n* var arr = realarray();\n* // returns \n*\n* @example\n* var arr = realarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = realarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = realarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var arr = realarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\nfunction realarray() {\n\tvar nargs;\n\tvar dtype;\n\tvar ctor;\n\n\tnargs = arguments.length;\n\tif ( nargs && isString( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\tdtype = arguments[ nargs ];\n\t} else {\n\t\tdtype = 'float64';\n\t}\n\tctor = ctors( dtype );\n\tif ( ctor === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( nargs <= 0 ) {\n\t\treturn new ctor( 0 );\n\t}\n\tif ( nargs === 1 ) {\n\t\treturn new ctor( arguments[0] );\n\t}\n\tif ( nargs === 2 ) {\n\t\treturn new ctor( arguments[0], arguments[1] );\n\t}\n\treturn new ctor( arguments[0], arguments[1], arguments[2] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = realarray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a typed array.\n*\n* @module @stdlib/array/typed-real\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray();\n* // returns \n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( 2, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( [ 0.5, 0.5 ] );\n* // returns [ 0.5, 0.5 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr = realarray( [ 5, -3 ], 'int32' );\n* // returns [ 5, -3 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1 );\n* // returns [ 5.0, 3.0 ]\n*\n* @example\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var arr1 = realarray( [ 5, 3 ], 'int32' );\n* var arr2 = realarray( arr1, 'uint32' );\n* // returns [ 5, 3 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 'float32' );\n* // returns [ 0.0, 0.0, 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8 );\n* // returns [ 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = realarray( buf, 8, 'float32' );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2 );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array/buffer' );\n* var realarray = require( '@stdlib/array/typed-real' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = realarray( buf, 8, 2, 'int32' );\n* // returns [ 0, 0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array,\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array,\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Typed array constructors.\n*\n* @module @stdlib/array/typed-real-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-real-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\",\n\t\"int16\",\n\t\"int32\",\n\t\"int8\",\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array data types.\n*\n* @returns {StringArray} list of typed array data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array data types.\n*\n* @module @stdlib/array/typed-real-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-real-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64', 'int16', 'int32', 'int8', 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Float64Array = require( './../../float64' );\nvar Float32Array = require( './../../float32' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'float64': Float64Array,\n\t'float32': Float32Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a real-valued floating-point typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'float' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Real-valued floating-point typed array constructors.\n*\n* @module @stdlib/array/typed-real-float-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-real-float-ctors' );\n*\n* var ctor = ctors( 'float64' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"float32\",\n\t\"float64\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array real-valued floating-point data types.\n*\n* @returns {StringArray} list of typed array real-valued floating-point data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array real-valued floating-point data types.\n*\n* @module @stdlib/array/typed-real-float-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-real-float-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'float32', 'float64' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Int16Array = require( './../../int16' );\nvar Int32Array = require( './../../int32' );\nvar Int8Array = require( './../../int8' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'int16': Int16Array,\n\t'int32': Int32Array,\n\t'int8': Int8Array\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns a signed integer typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'int' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Signed integer typed array constructors.\n*\n* @module @stdlib/array/typed-signed-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-signed-integer-ctors' );\n*\n* var ctor = ctors( 'int32' );\n* // returns \n*\n* ctor = ctors( 'int' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"int16\",\n\t\"int32\",\n\t\"int8\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array signed integer data types.\n*\n* @returns {StringArray} list of typed array signed integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array signed integer data types.\n*\n* @module @stdlib/array/typed-signed-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-signed-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'int16', 'int32', 'int8' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Uint16Array = require( './../../uint16' );\nvar Uint32Array = require( './../../uint32' );\nvar Uint8Array = require( './../../uint8' );\nvar Uint8ClampedArray = require( './../../uint8c' );\n\n\n// MAIN //\n\n// Mapping from data types to constructors...\nvar ctors = {\n\t'uint16': Uint16Array,\n\t'uint32': Uint32Array,\n\t'uint8': Uint8Array,\n\t'uint8c': Uint8ClampedArray\n};\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar table = require( './ctors.js' );\n\n\n// MAIN //\n\n/**\n* Returns an unsigned integer typed array constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} constructor or null\n*\n* @example\n* var ctor = ctors( 'uint32' );\n* // returns \n*\n* @example\n* var ctor = ctors( 'uint' );\n* // returns null\n*/\nfunction ctors( dtype ) {\n\treturn table[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ctors;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Unsigned integer typed array constructors.\n*\n* @module @stdlib/array/typed-unsigned-integer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/array/typed-unsigned-integer-ctors' );\n*\n* var ctor = ctors( 'uint32' );\n* // returns \n*\n* ctor = ctors( 'uint' );\n* // returns null\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"uint16\",\n\t\"uint32\",\n\t\"uint8\",\n\t\"uint8c\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar DTYPES = require( './dtypes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of typed array unsigned integer data types.\n*\n* @returns {StringArray} list of typed array unsigned integer data types\n*\n* @example\n* var list = dtypes();\n* // e.g., returns [ 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\nfunction dtypes() {\n\treturn DTYPES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Return a list of typed array unsigned integer data types.\n*\n* @module @stdlib/array/typed-unsigned-integer-dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/array/typed-unsigned-integer-dtypes' );\n*\n* var list = dtypes();\n* // e.g., returns [ 'uint16', 'uint32', 'uint8', 'uint8c' ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar format = require( '@stdlib/string/format' );\nvar dtype = require( './../../dtype' );\nvar zeros = require( './../../zeros' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled array having the same length and data type as a provided input array.\n*\n* @param {(Array|TypedArray|ComplexArray)} x - input array\n* @param {string} [dtype] - data type\n* @throws {TypeError} first argument must be an array or typed array\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {(TypedArray|Array|ComplexArray)} array or typed array\n*\n* @example\n* var arr = zerosLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var arr = zerosLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\nfunction zerosLike( x ) {\n\tvar dt = dtype( x ); // delegate input argument validation to dtype resolution\n\tif ( dt === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either an array, typed array, or complex typed array. Value: `%s`.', x ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tdt = arguments[ 1 ];\n\t}\n\treturn zeros( x.length, dt );\n}\n\n\n// EXPORTS //\n\nmodule.exports = zerosLike;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2022 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Create a zero-filled array having the same length and data type as a provided input array.\n*\n* @module @stdlib/array/zeros-like\n*\n* @example\n* var zerosLike = require( '@stdlib/array/zeros-like' );\n*\n* var arr = zerosLike( [ 0.0, 0.0 ] );\n* // returns [ 0.0, 0.0 ]\n*\n* @example\n* var zerosLike = require( '@stdlib/array/zeros-like' );\n*\n* var arr = zerosLike( [ 0.0, 0.0 ], 'float32' );\n* // returns [ 0.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2018 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/*\n* When adding modules to the namespace, ensure that they are added in alphabetical order according to module name.\n*/\n\n/*\n* The following modules are intentionally not exported: generic\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-read-only-property' );\n\n\n// MAIN //\n\n/**\n* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name base\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/array/base}\n*/\nsetReadOnly( ns, 'base', require( './../base' ) );\n\n/**\n* @name ArrayBuffer\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/buffer}\n*/\nsetReadOnly( ns, 'ArrayBuffer', require( './../buffer' ) );\n\n/**\n* @name Complex64Array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/complex64}\n*/\nsetReadOnly( ns, 'Complex64Array', require( './../complex64' ) );\n\n/**\n* @name Complex128Array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/complex128}\n*/\nsetReadOnly( ns, 'Complex128Array', require( './../complex128' ) );\n\n/**\n* @name convertArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/convert}\n*/\nsetReadOnly( ns, 'convertArray', require( './../convert' ) );\n\n/**\n* @name convertArraySame\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/convert-same}\n*/\nsetReadOnly( ns, 'convertArraySame', require( './../convert-same' ) );\n\n/**\n* @name arrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/ctors}\n*/\nsetReadOnly( ns, 'arrayCtors', require( './../ctors' ) );\n\n/**\n* @name DataView\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/dataview}\n*/\nsetReadOnly( ns, 'DataView', require( './../dataview' ) );\n\n/**\n* @name datespace\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/datespace}\n*/\nsetReadOnly( ns, 'datespace', require( './../datespace' ) );\n\n/**\n* @name arrayDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/dtype}\n*/\nsetReadOnly( ns, 'arrayDataType', require( './../dtype' ) );\n\n/**\n* @name arrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/dtypes}\n*/\nsetReadOnly( ns, 'arrayDataTypes', require( './../dtypes' ) );\n\n/**\n* @name aempty\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/empty}\n*/\nsetReadOnly( ns, 'aempty', require( './../empty' ) );\n\n/**\n* @name aemptyLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/empty-like}\n*/\nsetReadOnly( ns, 'aemptyLike', require( './../empty-like' ) );\n\n/**\n* @name filledarray\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/filled}\n*/\nsetReadOnly( ns, 'filledarray', require( './../filled' ) );\n\n/**\n* @name filledarrayBy\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/filled-by}\n*/\nsetReadOnly( ns, 'filledarrayBy', require( './../filled-by' ) );\n\n/**\n* @name Float32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/float32}\n*/\nsetReadOnly( ns, 'Float32Array', require( './../float32' ) );\n\n/**\n* @name Float64Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/float64}\n*/\nsetReadOnly( ns, 'Float64Array', require( './../float64' ) );\n\n/**\n* @name iterator2array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/from-iterator}\n*/\nsetReadOnly( ns, 'iterator2array', require( './../from-iterator' ) );\n\n/**\n* @name afull\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/full}\n*/\nsetReadOnly( ns, 'afull', require( './../full' ) );\n\n/**\n* @name afullLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/full-like}\n*/\nsetReadOnly( ns, 'afullLike', require( './../full-like' ) );\n\n/**\n* @name incrspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/incrspace}\n*/\nsetReadOnly( ns, 'incrspace', require( './../incrspace' ) );\n\n/**\n* @name Int8Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int8}\n*/\nsetReadOnly( ns, 'Int8Array', require( './../int8' ) );\n\n/**\n* @name Int16Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int16}\n*/\nsetReadOnly( ns, 'Int16Array', require( './../int16' ) );\n\n/**\n* @name Int32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/int32}\n*/\nsetReadOnly( ns, 'Int32Array', require( './../int32' ) );\n\n/**\n* @name linspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/linspace}\n*/\nsetReadOnly( ns, 'linspace', require( './../linspace' ) );\n\n/**\n* @name logspace\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/logspace}\n*/\nsetReadOnly( ns, 'logspace', require( './../logspace' ) );\n\n/**\n* @name arrayMinDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/min-dtype}\n*/\nsetReadOnly( ns, 'arrayMinDataType', require( './../min-dtype' ) );\n\n/**\n* @name anans\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/nans}\n*/\nsetReadOnly( ns, 'anans', require( './../nans' ) );\n\n/**\n* @name anansLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/nans-like}\n*/\nsetReadOnly( ns, 'anansLike', require( './../nans-like' ) );\n\n/**\n* @name arrayNextDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/next-dtype}\n*/\nsetReadOnly( ns, 'arrayNextDataType', require( './../next-dtype' ) );\n\n/**\n* @name aones\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/ones}\n*/\nsetReadOnly( ns, 'aones', require( './../ones' ) );\n\n/**\n* @name aonesLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/ones-like}\n*/\nsetReadOnly( ns, 'aonesLike', require( './../ones-like' ) );\n\n/**\n* @name typedarraypool\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/pool}\n*/\nsetReadOnly( ns, 'typedarraypool', require( './../pool' ) );\n\n/**\n* @name arrayPromotionRules\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/promotion-rules}\n*/\nsetReadOnly( ns, 'arrayPromotionRules', require( './../promotion-rules' ) );\n\n/**\n* @name reviveTypedArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/reviver}\n*/\nsetReadOnly( ns, 'reviveTypedArray', require( './../reviver' ) );\n\n/**\n* @name arraySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/safe-casts}\n*/\nsetReadOnly( ns, 'arraySafeCasts', require( './../safe-casts' ) );\n\n/**\n* @name arraySameKindCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/same-kind-casts}\n*/\nsetReadOnly( ns, 'arraySameKindCasts', require( './../same-kind-casts' ) );\n\n/**\n* @name arrayShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/shape}\n*/\nsetReadOnly( ns, 'arrayShape', require( './../shape' ) );\n\n/**\n* @name SharedArrayBuffer\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/shared-buffer}\n*/\nsetReadOnly( ns, 'SharedArrayBuffer', require( './../shared-buffer' ) );\n\n/**\n* @name circarray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-circular-iterator}\n*/\nsetReadOnly( ns, 'circarray2iterator', require( './../to-circular-iterator' ) );\n\n/**\n* @name array2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-iterator}\n*/\nsetReadOnly( ns, 'array2iterator', require( './../to-iterator' ) );\n\n/**\n* @name array2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-iterator-right}\n*/\nsetReadOnly( ns, 'array2iteratorRight', require( './../to-iterator-right' ) );\n\n/**\n* @name typedarray2json\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-json}\n*/\nsetReadOnly( ns, 'typedarray2json', require( './../to-json' ) );\n\n/**\n* @name sparsearray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-sparse-iterator}\n*/\nsetReadOnly( ns, 'sparsearray2iterator', require( './../to-sparse-iterator' ) );\n\n/**\n* @name sparsearray2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-sparse-iterator-right}\n*/\nsetReadOnly( ns, 'sparsearray2iteratorRight', require( './../to-sparse-iterator-right' ) );\n\n/**\n* @name stridedarray2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-strided-iterator}\n*/\nsetReadOnly( ns, 'stridedarray2iterator', require( './../to-strided-iterator' ) );\n\n/**\n* @name arrayview2iterator\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-view-iterator}\n*/\nsetReadOnly( ns, 'arrayview2iterator', require( './../to-view-iterator' ) );\n\n/**\n* @name arrayview2iteratorRight\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/to-view-iterator-right}\n*/\nsetReadOnly( ns, 'arrayview2iteratorRight', require( './../to-view-iterator-right' ) );\n\n/**\n* @name typedarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed}\n*/\nsetReadOnly( ns, 'typedarray', require( './../typed' ) );\n\n/**\n* @name complexarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex}\n*/\nsetReadOnly( ns, 'complexarray', require( './../typed-complex' ) );\n\n/**\n* @name complexarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex-ctors}\n*/\nsetReadOnly( ns, 'complexarrayCtors', require( './../typed-complex-ctors' ) );\n\n/**\n* @name complexarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-complex-dtypes}\n*/\nsetReadOnly( ns, 'complexarrayDataTypes', require( './../typed-complex-dtypes' ) );\n\n/**\n* @name typedarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-ctors}\n*/\nsetReadOnly( ns, 'typedarrayCtors', require( './../typed-ctors' ) );\n\n/**\n* @name typedarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-dtypes}\n*/\nsetReadOnly( ns, 'typedarrayDataTypes', require( './../typed-dtypes' ) );\n\n/**\n* @name floatarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-float-ctors}\n*/\nsetReadOnly( ns, 'floatarrayCtors', require( './../typed-float-ctors' ) );\n\n/**\n* @name floatarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-float-dtypes}\n*/\nsetReadOnly( ns, 'floatarrayDataTypes', require( './../typed-float-dtypes' ) );\n\n/**\n* @name intarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-integer-ctors}\n*/\nsetReadOnly( ns, 'intarrayCtors', require( './../typed-integer-ctors' ) );\n\n/**\n* @name intarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarrayDataTypes', require( './../typed-integer-dtypes' ) );\n\n/**\n* @name realarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real}\n*/\nsetReadOnly( ns, 'realarray', require( './../typed-real' ) );\n\n/**\n* @name realarrayCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-ctors}\n*/\nsetReadOnly( ns, 'realarrayCtors', require( './../typed-real-ctors' ) );\n\n/**\n* @name realarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-dtypes}\n*/\nsetReadOnly( ns, 'realarrayDataTypes', require( './../typed-real-dtypes' ) );\n\n/**\n* @name realarrayFloatCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-float-ctors}\n*/\nsetReadOnly( ns, 'realarrayFloatCtors', require( './../typed-real-float-ctors' ) );\n\n/**\n* @name realarrayFloatDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-real-float-dtypes}\n*/\nsetReadOnly( ns, 'realarrayFloatDataTypes', require( './../typed-real-float-dtypes' ) );\n\n/**\n* @name intarraySignedCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-signed-integer-ctors}\n*/\nsetReadOnly( ns, 'intarraySignedCtors', require( './../typed-signed-integer-ctors' ) );\n\n/**\n* @name intarraySignedDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-signed-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarraySignedDataTypes', require( './../typed-signed-integer-dtypes' ) );\n\n/**\n* @name intarrayUnsignedCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-unsigned-integer-ctors}\n*/\nsetReadOnly( ns, 'intarrayUnsignedCtors', require( './../typed-unsigned-integer-ctors' ) );\n\n/**\n* @name intarrayUnsignedDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/array/typed-unsigned-integer-dtypes}\n*/\nsetReadOnly( ns, 'intarrayUnsignedDataTypes', require( './../typed-unsigned-integer-dtypes' ) );\n\n/**\n* @name Uint8Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint8}\n*/\nsetReadOnly( ns, 'Uint8Array', require( './../uint8' ) );\n\n/**\n* @name Uint8ClampedArray\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint8c}\n*/\nsetReadOnly( ns, 'Uint8ClampedArray', require( './../uint8c' ) );\n\n/**\n* @name Uint16Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint16}\n*/\nsetReadOnly( ns, 'Uint16Array', require( './../uint16' ) );\n\n/**\n* @name Uint32Array\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/uint32}\n*/\nsetReadOnly( ns, 'Uint32Array', require( './../uint32' ) );\n\n/**\n* @name azeros\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/zeros}\n*/\nsetReadOnly( ns, 'azeros', require( './../zeros' ) );\n\n/**\n* @name azerosLike\n* @memberof ns\n* @readonly\n* @constructor\n* @see {@link module:@stdlib/array/zeros-like}\n*/\nsetReadOnly( ns, 'azerosLike', require( './../zeros-like' ) );\n\n/**\n* @name constants\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/constants/array}\n*/\nsetReadOnly( ns, 'constants', require( '@stdlib/constants/array' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n"], + "mappings": "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", + "names": ["require_main", "__commonJSMin", "exports", "module", "TYPE", "isAccessorArray", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "GETTERS", "getFloat64", "getFloat32", "getInt32", "getInt16", "getInt8", "getUint32", "getUint16", "getUint8", "getUint8c", "getGeneric", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "SETTERS", "setFloat64", "setFloat32", "setInt32", "setInt16", "setInt8", "setUint32", "setUint16", "setUint8", "setUint8c", "setGeneric", "setArrayLike", "arr", "idx", "value", "setter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "GETTERS", "getComplex128", "getComplex64", "getArrayLike", "arr", "idx", "getter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "SETTERS", "setComplex128", "setComplex64", "setArrayLike", "arr", "idx", "value", "setter", "dtype", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctor2dtype", "__commonJSMin", "exports", "module", "ctor2dtypes", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasFloat64ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasFloat32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt32ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint16ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt16ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint8ArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasUint8ClampedArraySupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasInt8ArraySupport", "builtin", "polyfill", "ctor", "require_from_iterator", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "realf", "imagf", "format", "fromIterator", "it", "out", "v", "z", "require_from_iterator_map", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "realf", "imagf", "format", "fromIteratorMap", "it", "clbk", "thisArg", "out", "v", "z", "i", "require_from_array", "__commonJSMin", "exports", "module", "isComplexLike", "realf", "imagf", "fromArray", "buf", "arr", "len", "v", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isArrayLikeObject", "isCollection", "isArrayBuffer", "isObject", "isArray", "isFunction", "isComplexLike", "isEven", "isInteger", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "setReadOnly", "setReadOnlyAccessor", "Float32Array", "Complex64", "format", "realf", "imagf", "reinterpret64", "reinterpret128", "getter", "accessorGetter", "fromIterator", "fromIteratorMap", "fromArray", "BYTES_PER_ELEMENT", "HAS_ITERATOR_SYMBOL", "isComplexArray", "value", "Complex64Array", "isComplexArrayConstructor", "isComplex64Array", "isComplex128Array", "byteOffset", "nargs", "buf", "len", "src", "thisArg", "clbk", "out", "tmp", "get", "flg", "v", "i", "j", "args", "target", "start", "buffer", "self", "iter", "FLG", "next", "end", "factory", "z", "idx", "sbuf", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_from_iterator", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "format", "real", "imag", "fromIterator", "it", "out", "v", "z", "require_from_iterator_map", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isComplexLike", "format", "real", "imag", "fromIteratorMap", "it", "clbk", "thisArg", "out", "v", "z", "i", "require_from_array", "__commonJSMin", "exports", "module", "isComplexLike", "real", "imag", "fromArray", "buf", "arr", "len", "v", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isArrayLikeObject", "isCollection", "isArrayBuffer", "isObject", "isArray", "isFunction", "isComplexLike", "isEven", "isInteger", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "setReadOnly", "setReadOnlyAccessor", "Float64Array", "Complex128", "real", "imag", "reinterpret64", "reinterpret128", "getter", "accessorGetter", "format", "fromIterator", "fromIteratorMap", "fromArray", "BYTES_PER_ELEMENT", "HAS_ITERATOR_SYMBOL", "isComplexArray", "value", "Complex128Array", "isComplexArrayConstructor", "isComplex64Array", "isComplex128Array", "byteOffset", "nargs", "buf", "len", "src", "thisArg", "clbk", "out", "tmp", "get", "flg", "v", "i", "j", "args", "target", "start", "buffer", "self", "iter", "FLG", "next", "end", "factory", "z", "idx", "sbuf", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Uint32Array", "Int32Array", "Uint16Array", "Int16Array", "Uint8Array", "Uint8ClampedArray", "Int8Array", "Complex64Array", "Complex128Array", "CTORS", "require_dtypes", "__commonJSMin", "exports", "module", "DTYPES", "require_main", "__commonJSMin", "exports", "module", "isBuffer", "isArray", "constructorName", "ctor2dtype", "CTORS", "DTYPES", "NTYPES", "dtype", "value", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "getter", "setter", "accessorGetter", "accessorSetter", "dtype", "accessors", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadWriteAccessor", "setReadOnly", "accessors", "isCollection", "format", "setLength", "len", "getLength", "AccessorArray", "arr", "o", "idx", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "accessors", "arraylike2object", "x", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "contains", "x", "value", "len", "get", "dt", "i", "require_factory", "__commonJSMin", "exports", "module", "isCollection", "isAccessorArray", "accessorGetter", "dtype", "format", "factory", "x", "get", "len", "dt", "contains", "accessors", "value", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "factory", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "binary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "z0", "z1", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "x1", "x2", "y0", "y1", "y2", "z0", "z1", "z2", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "binary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "z0", "z1", "z2", "z3", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "x", "y", "z", "ndims", "shape", "dim", "fcn", "S", "d", "i", "binarynd", "arrays", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copy", "x", "out", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "value", "len", "arr", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "zeros", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copy", "zeros", "format", "broadcastArray", "x", "inShape", "outShape", "data", "dim", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "dy0", "dy1", "S0", "S1", "i0", "i1", "j0", "j1", "k0", "k1", "x0", "y0", "z0", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary3d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "S0", "S1", "S2", "i0", "i1", "i2", "j0", "j1", "j2", "k0", "k1", "k2", "x0", "x1", "y0", "y1", "z0", "z1", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary4d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "k0", "k1", "k2", "k3", "x0", "x1", "x2", "y0", "y1", "y2", "z0", "z1", "z2", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bbinary5d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "k0", "k1", "k2", "k3", "k4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "z0", "z1", "z2", "z3", "sh", "st", "o", "x", "y", "z", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bternary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "dy0", "dy1", "dz0", "dz1", "S0", "S1", "i0", "i1", "j0", "j1", "k0", "k1", "m0", "m1", "x0", "y0", "z0", "w0", "sh", "st", "o", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary2d", "arrays", "shapes", "fcn", "dx0", "dx1", "S0", "S1", "i0", "i1", "j0", "j1", "x0", "y0", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary3d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "S0", "S1", "S2", "i0", "i1", "i2", "j0", "j1", "j2", "x0", "x1", "y0", "y1", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary4d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "x0", "x1", "x2", "y0", "y1", "y2", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastArray", "bunary5d", "arrays", "shapes", "fcn", "dx0", "dx1", "dx2", "dx3", "dx4", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "sh", "st", "o", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "pow", "cartesianPower", "x", "n", "out", "tmp", "idx", "len", "N", "s", "i", "j", "k", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "cartesianProduct", "x1", "x2", "out", "M", "N", "v", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "cartesianSquare", "x", "out", "N", "v", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "copy", "x", "out", "len", "get", "dt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filledBy", "len", "clbk", "thisArg", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled2d", "value", "shape", "arr", "S0", "S1", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2dBy", "shape", "clbk", "thisArg", "arr", "a0", "S0", "S1", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled3d", "value", "shape", "out", "a1", "S0", "S1", "S2", "i2", "i1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "S0", "S1", "S2", "i0", "i1", "i2", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled4d", "value", "shape", "out", "a1", "a2", "S0", "S1", "S2", "S3", "i1", "i2", "i3", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "a2", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "filled5d", "value", "shape", "out", "a1", "a2", "a3", "S0", "S1", "S2", "S3", "S4", "i1", "i2", "i3", "i4", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5dBy", "shape", "clbk", "thisArg", "arr", "a0", "a1", "a2", "a3", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "recurse", "value", "ndims", "shape", "dim", "out", "S", "d", "i", "fillednd", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "ndims", "shape", "dim", "indices", "out", "clbk", "thisArg", "idx", "FLG", "S", "d", "i", "filledndBy", "require_lib", "__commonJSMin", "exports", "module", "main", "require_assign", "__commonJSMin", "exports", "module", "shape2strides", "vind2bind", "numel", "grev", "zeros", "MODE", "copy", "x", "N", "out", "stride", "offset", "i", "recurseLexicographic", "ndims", "shape", "dim", "FLG", "S", "d", "flattenColexicographic", "len", "tmp", "ord", "sh", "sx", "j", "flatten", "colexicographic", "require_main", "__commonJSMin", "exports", "module", "numel", "zeros", "assign", "flatten", "x", "shape", "colexicographic", "out", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_assign", "__commonJSMin", "exports", "module", "shape2strides", "vind2bind", "numel", "grev", "zeros", "copy", "MODE", "copyBy", "x", "N", "out", "stride", "offset", "clbk", "thisArg", "i", "recurseLexicographic", "orig", "ndims", "shape", "dim", "indices", "FLG", "idx", "S", "d", "flattenColexicographic", "len", "tmp", "ord", "sh", "sx", "j", "flattenBy", "colexicographic", "require_main", "__commonJSMin", "exports", "module", "numel", "zeros", "assign", "flattenBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten2d", "x", "shape", "colexicographic", "out", "S0", "S1", "i0", "i1", "a0", "require_assign", "__commonJSMin", "exports", "module", "flatten2d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "i0", "i1", "a0", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten2dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "i0", "i1", "a0", "require_assign", "__commonJSMin", "exports", "module", "flatten2dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "i0", "i1", "a0", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten3d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "require_assign", "__commonJSMin", "exports", "module", "flatten3d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten3dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "require_assign", "__commonJSMin", "exports", "module", "flatten3dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "i0", "i1", "i2", "a0", "a1", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten4d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "require_assign", "__commonJSMin", "exports", "module", "flatten4d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten4dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "require_assign", "__commonJSMin", "exports", "module", "flatten4dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "a0", "a1", "a2", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten5d", "x", "shape", "colexicographic", "out", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "require_assign", "__commonJSMin", "exports", "module", "flatten5d", "x", "shape", "colexicographic", "out", "stride", "offset", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "flatten5dBy", "x", "shape", "colexicographic", "clbk", "thisArg", "out", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "require_assign", "__commonJSMin", "exports", "module", "flatten5dBy", "x", "shape", "colexicographic", "out", "stride", "offset", "clbk", "thisArg", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "a0", "a1", "a2", "a3", "io", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "ceil", "incrspace", "x1", "x2", "increment", "arr", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "getter", "dtype", "last", "arr", "get", "idx", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "linspace", "x1", "x2", "len", "arr", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "pow", "logspace", "a", "b", "len", "arr", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskbinary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "m0", "x", "y", "z", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskunary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "m0", "x", "y", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "mskunary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "m0", "m1", "x", "y", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "nCartesianProduct", "x1", "x2", "nargs", "dims", "arr", "out", "tmp", "arg", "idx", "N", "s", "i", "j", "k", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "oneTo", "n", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled", "ones", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2d", "ones2d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3d", "ones3d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4d", "ones4d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5d", "ones5d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "fillednd", "onesnd", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "quaternary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "w0", "v0", "x", "y", "z", "w", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "take", "x", "indices", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "z0", "w0", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x2", "y2", "z2", "w2", "x", "y", "z", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ternary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "y0", "z0", "w0", "x1", "y1", "z1", "w1", "x2", "y2", "z2", "w2", "x3", "y3", "z3", "w3", "x", "y", "w", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "AccessorArray", "toAccessorArray", "arr", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary2d", "arrays", "shape", "fcn", "S0", "S1", "i0", "i1", "x0", "y0", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary2dBy", "arrays", "shape", "fcn", "clbk", "thisArg", "S0", "S1", "i0", "i1", "x0", "y0", "x", "y", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary3d", "arrays", "shape", "fcn", "S0", "S1", "S2", "i0", "i1", "i2", "x0", "x1", "y0", "y1", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary4d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "i0", "i1", "i2", "i3", "x0", "x1", "x2", "y0", "y1", "y2", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unary5d", "arrays", "shape", "fcn", "S0", "S1", "S2", "S3", "S4", "i0", "i1", "i2", "i3", "i4", "x0", "x1", "x2", "x3", "y0", "y1", "y2", "y3", "x", "y", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "recurse", "x", "y", "ndims", "shape", "dim", "fcn", "S", "d", "i", "unarynd", "arrays", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "unitspace", "x1", "x2", "arr", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "n", "arr", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled2d", "zeros2d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled3d", "zeros3d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled4d", "zeros4d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "filled5d", "zeros5d", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "fillednd", "zerosnd", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasArrayBufferSupport", "builtin", "polyfill", "ctor", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isCollection", "getType", "ctors", "reinterpret128", "reinterpret64", "format", "gcopy", "copy", "isComplex64", "dtype", "isComplex128", "convert", "x", "isc64", "ctor", "xbuf", "obuf", "out", "len", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "getType", "convert", "format", "convertSame", "x", "y", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "require_lib", "__commonJSMin", "exports", "module", "hasDataViewSupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "hasOwnProp", "isInteger", "isString", "isObject", "format", "floor", "round", "ceil", "timestamp", "rounders", "validDate", "value", "name", "type", "datespace", "start", "stop", "length", "options", "opts", "len", "flg", "arr", "end", "fcn", "tmp", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_buffer_uint8array", "__commonJSMin", "exports", "module", "allocUnsafe", "isUint8Array", "check", "buf", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "allocUnsafe", "ctors", "zeros", "bytesPerElement", "format", "empty", "length", "nbytes", "offset", "dtype", "ctor", "buf", "out", "nb", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "ctors", "gzeros", "format", "zeros", "length", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_polyfill", "__commonJSMin", "exports", "module", "zeros", "empty", "length", "require_lib", "__commonJSMin", "exports", "module", "isBufferUint8Array", "main", "polyfill", "empty", "require_main", "__commonJSMin", "exports", "module", "dtype", "empty", "format", "emptyLike", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isArrayBuffer", "isObject", "isFunction", "ctors", "gfill", "filled", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "iterLength", "format", "HAS_ITERATOR_SYMBOL", "filledIterator", "it", "value", "arr", "v", "filledAccessors", "i", "filledarray", "nargs", "dtype", "ctor", "len", "arg", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isArrayBuffer", "isObject", "isFunction", "ctors", "gfillBy", "filledArray", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "iterLength", "format", "HAS_ITERATOR_SYMBOL", "DEFAULT_DTYPE", "filledArrayIterator", "it", "clbk", "thisArg", "arr", "i", "v", "filledAccessors", "filledarrayBy", "nargs", "dtype", "ctor", "len", "arg", "callback", "value", "aidx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isFunction", "isCollection", "isIteratorLike", "isAccessorArray", "accessorSetter", "setter", "dtype", "format", "iterator2array", "iterator", "thisArg", "fcn", "out", "len", "set", "dt", "i", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "ctors", "afill", "gfill", "format", "full", "length", "value", "dtype", "ctor", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "dtype", "full", "Complex128", "Complex64", "fullLike", "x", "value", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ceil", "isNumber", "isnan", "format", "MAX_LENGTH", "gen", "incrspace", "x1", "x2", "increment", "len", "inc", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Complex128Array", "Complex64Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_generic_real", "__commonJSMin", "exports", "module", "linspace", "start", "stop", "len", "endpoint", "arr", "N", "d", "i", "require_generic_complex", "__commonJSMin", "exports", "module", "Complex64", "Complex128", "real", "imag", "realf", "imagf", "linspace", "dt1", "start", "dt2", "stop", "len", "endpoint", "cmplx", "isf32", "arr", "re1", "re2", "im1", "im2", "re", "im", "dr", "di", "N", "i", "require_typed_real", "__commonJSMin", "exports", "module", "linspace", "out", "start", "stop", "len", "endpoint", "N", "d", "i", "require_typed_complex", "__commonJSMin", "exports", "module", "real", "imag", "realf", "imagf", "linspace", "out", "dt1", "start", "dt2", "stop", "len", "endpoint", "re1", "re2", "im1", "im2", "dr", "di", "N", "i", "j", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isString", "isBoolean", "format", "validate", "opts", "options", "require_defaults", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "isComplexLike", "isNumber", "isNonNegativeInteger", "isnan", "dtype", "ctors", "reinterpret64", "reinterpret128", "format", "genreal", "gencmplx", "typedreal", "typedcmplx", "validate", "defaults", "linspace", "start", "stop", "len", "opts", "ctor", "err", "out", "dt1", "dt2", "flg", "require_accessors_complex", "__commonJSMin", "exports", "module", "Complex64", "Complex128", "real", "imag", "realf", "imagf", "linspace", "out", "dt1", "start", "dt2", "stop", "len", "endpoint", "cmplx", "isf32", "re1", "re2", "im1", "im2", "set", "buf", "re", "im", "dr", "di", "N", "i", "require_accessors_real", "__commonJSMin", "exports", "module", "linspace", "out", "start", "stop", "len", "endpoint", "buf", "set", "N", "d", "i", "require_assign", "__commonJSMin", "exports", "module", "isComplexLike", "isNumber", "isCollection", "format", "isnan", "dtype", "adtype", "reinterpret64", "reinterpret128", "arraylike2object", "acccmplx", "accreal", "typedcmplx", "typedreal", "validate", "defaults", "linspace", "start", "stop", "out", "opts", "err", "dt1", "dt2", "flg", "odt", "o", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "isNumber", "isNonNegativeInteger", "format", "isnan", "gen", "logspace", "a", "b", "len", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isInteger", "isNegativeZero", "isComplexLike", "PINF", "NINF", "FLOAT32_SMALLEST_SUBNORMAL", "FLOAT32_MAX_SAFE_INTEGER", "FLOAT32_MIN_SAFE_INTEGER", "INT8_MIN", "INT16_MIN", "INT32_MIN", "UINT8_MAX", "UINT16_MAX", "UINT32_MAX", "minFloatDataType", "value", "minDataType", "require_lib", "__commonJSMin", "exports", "module", "minDataType", "require_main", "__commonJSMin", "exports", "module", "Complex128", "Complex64", "full", "format", "Z128", "Z64", "DTYPES", "nans", "length", "dtype", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "dtype", "full", "Complex128", "Complex64", "format", "Z128", "Z64", "DTYPES", "nansLike", "x", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_next_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "NEXT_DTYPES", "generateTable", "dtypes", "ntypes", "out", "nextDataType", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "Complex128", "Complex64", "full", "Z128", "Z64", "ones", "length", "dtype", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "dtype", "full", "Complex128", "Complex64", "format", "Z128", "Z64", "onesLike", "x", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isNonNegativeInteger", "format", "validate", "opts", "options", "require_pool", "__commonJSMin", "exports", "module", "pool", "n", "out", "i", "require_bytes_per_element", "__commonJSMin", "exports", "module", "require_factory", "__commonJSMin", "exports", "module", "isString", "isNonNegativeInteger", "isCollection", "isTypedArrayLike", "isArrayBuffer", "isComplex64Array", "isComplex128Array", "setReadOnly", "setReadOnlyAccessor", "ctors", "reinterpret64", "reinterpret128", "accessors", "adtype", "format", "ArrayBuffer", "ceil", "floor", "ceil2", "log2", "min", "defaults", "validate", "createPool", "BYTES_PER_ELEMENT", "Complex64Array", "Complex128Array", "isCmplx64Array", "arr", "isCmplx128Array", "factory", "options", "nbytes", "pool", "opts", "err", "malloc", "calloc", "free", "clear", "getBytes", "arraybuffer", "n", "buf", "i", "typedarray", "ctor", "len", "dtype", "nargs", "out", "set", "get", "tmp", "p", "require_main", "__commonJSMin", "exports", "module", "factory", "typedarraypool", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "factory", "require_promotion_rules", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "PROMOTION_RULES", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "promotionRules", "dtype1", "dtype2", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "Complex64Array", "Complex128Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "isArray", "ctors", "reviveTypedArray", "key", "value", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_safe_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "SAFE_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "generateTable", "safeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_same_kind_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "SAME_KIND_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "o", "j", "i", "generateTable", "sameKindCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isArrayLikeObject", "format", "recurse", "shape", "arr", "v", "check", "ndims", "d", "flg", "len", "i", "arrayShape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ctor", "require_polyfill", "__commonJSMin", "exports", "module", "polyfill", "size", "require_lib", "__commonJSMin", "exports", "module", "hasSharedArrayBufferSupport", "builtin", "polyfill", "ctor", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "hasOwnProp", "isFunction", "isCollection", "isObject", "isNonNegativeInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "circarray2iterator", "src", "thisArg", "options", "count", "opts", "iter", "FLG", "fcn", "get", "dt", "i", "next1a", "next1b", "next2a", "next2b", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "array2iterator", "src", "thisArg", "iter", "FLG", "fcn", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "array2iteratorRight", "src", "thisArg", "iter", "FLG", "fcn", "len", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "Complex64Array", "Complex128Array", "CTORS", "require_type", "__commonJSMin", "exports", "module", "instanceOf", "ctorName", "getPrototypeOf", "CTORS", "typeName", "arr", "v", "i", "require_main", "__commonJSMin", "exports", "module", "isTypedArray", "isComplexTypedArray", "reinterpret64", "reinterpret128", "format", "typeName", "typedarray2json", "arr", "data", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "sparsearray2iterator", "src", "thisArg", "iter", "FLG", "fcn", "get", "dt", "i", "next1", "next2", "end", "factory", "len", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "sparsearray2iteratorRight", "src", "thisArg", "iter", "FLG", "fcn", "len", "get", "dt", "i", "next1", "next2", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isNonNegativeInteger", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "stridedarray2iterator", "N", "src", "stride", "offset", "thisArg", "iter", "FLG", "fcn", "idx", "get", "dt", "i", "next1", "next2", "end", "factory", "v", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "arrayview2iterator", "src", "thisArg", "begin", "nargs", "iter", "FLG", "fcn", "end", "get", "dt", "i", "next1", "next2", "finish", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isCollection", "isInteger", "isAccessorArray", "iteratorSymbol", "accessorGetter", "getter", "dtype", "format", "arrayview2iteratorRight", "src", "thisArg", "begin", "nargs", "iter", "FLG", "fcn", "end", "get", "dt", "i", "next1", "next2", "finish", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "ctors", "reinterpret128", "reinterpret64", "format", "Complex64Array", "Complex128Array", "typedarray", "nargs", "dtype", "ctor", "arg", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Complex128Array", "Complex64Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "format", "ctors", "complexarray", "nargs", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isString", "format", "ctors", "realarray", "nargs", "dtype", "ctor", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Float64Array", "Float32Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Int16Array", "Int32Array", "Int8Array", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray", "ctors", "require_main", "__commonJSMin", "exports", "module", "table", "ctors", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "dtype", "zeros", "zerosLike", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "setReadOnly", "ns"] }